Прошло года два с того момента как появилась эта тема , радио в консоли линукс. Использую его по сей день что на компьютере что на телефоне(через termux) . На днях слушал это радио настроение никакущее, начальник в тот день с утра был не в духе, в общем пришел домой включил радио, и тут просто прекраснейший трек, хорошо название успел снять, и тут я подумал а ведь же в линухе можно всё, можно ведь наваять скрипт который запишет мне трек на борт, сел и написал скрипт . Подвесил его на горячую клавишу ctr+super+s , и при его запуске в каталоге ~/Music/streams запишет трек с текущим названием стрима. Скрипт это умеет.
ПРИМЕЧАНИЕ: скрипт расчитан на работу в паре со скриптом radio_dialog и его следует запускать при работающем radio_dialog информацию о потоке радио он извлекает из файла для получения линка radio_dialog, остановить нажатием на клавиши ctrl+c.
Вот код дополнения для записи треков из текущего стрима для radio_dialog
#!/bin/bash
cd $HOME/Music/streams/
link=$(cat $HOME/r_di_011/playlist/.l.txt)
rm ./stream_metadata.txt
ffmpeg -i "$link" -f ffmetadata -loglevel error -hide_banner stream_metadata.txt
sed -i 's/StreamTitle=//g' ./stream_metadata.txt
sed -i '/;FFMETADATA1/d' stream_metadata.txt
sed -i '/icy/d' stream_metadata.txt
sed -i '/encoder/d' stream_metadata.txt
name=$(cat stream_metadata.txt)
wget -O "$name".mp3 "$link"
что пока напрягает ffmpeg слегка задумчивый, перед записью трека ждет секунд 5-7, многовато но терпимо, если кто знает другой способ может подскажете? Второе что напрягает, если на входе трек со сломаной кодировкой, то в имя mp3 файла это сломаное имя и придёт, тоже с этим не знаю что делать, но пусть со сломаным именем но трек будет записан.
Вот ссылка на radio_dialog с текущим плэйлистом
https://disk.yandex.ru/d/PHAo77SkIR9UZw плэйлист сильно уменшился, но вы можете подкинуть свой, напомню он умеет читать плейлисты в формате m3u