задача: иногда пропадает инет и надо иметь в офлайне апру сотен треков любимой станции гуглим в нете список урлов типа вот такого https://gist.github.com/ergoz/e7837a54956116167db93b016dbd51a9
Ставим streamripper и запускаем его в скрине
streamripper https://radiorecord.hostingradio.ru/rr_main96.aac
идем спать ... через пару дней проверяем - да файло есть , но куча дублей - больше так не делаем -
удаляем дубликаты
find . -name "*([0-9]).aac" -type f -exec rm {} \;
и перезапускаем рипер с ключем -o never и на всякий случай с релеем чтобы можно было подключиться и проверить играет ли станция на случай дебага
streamripper https://radiorecord.hostingradio.ru/rr_main96.aacp -o never -r 8090
примерная команда / скрипт запуска будет примерно такой - в крон и спать
#!/bin/bash
cd /mnt/disk1/record
screen -dmS riper_record_main_8090 streamripper https://radiorecord.hostingradio.ru/rr_main96.aacp -o never -r 8090
cd /mnt/disk1/record_rock
screen -dmS riper_record_main_8091 streamripper https://radiorecord.hostingradio.ru/rock96.aacp -o never -r 8091
cd /mnt/disk1/record_Trancemission
screen -dmS riper_record_main_8092 streamripper https://radiorecord.hostingradio.ru/tm96.aacp -o never -r 8092
спим дальше .... тут получили ребут .. надо подумать как загнать в скрипт самопроверки и самозапуска (что то типа streamdetect.sh ) - пока из идей - дамп трафика по порту - но тут ньюанс - все с одного сервака тянуться - отвал одного потока не проявиться до тех порр, пока не упадут все потоки (такого не будет если записывать разные станции с разных серверов, по факру оочень костыльный способ - адреса ресурсов переезжают или меняются CDN-ы и полдня ловишь новый ip - не очень удобно ) - как вариант слушать если порт ретрансмитера (тот что ключ -r) если порт есть - стример запущен и вещает на порту (в моем случае 8090-8092 и каждый прибит к потоку)
из набросов цикл if then и что то типа nc -vz 127.0.0.1 8090 в ответ получаем
Connection to 127.0.0.1 8090 port [tcp/*] succeeded!
вводим команду echo $? в ответ получаем 0 - все окей
если порт закрыт то будет nc: connect to 127.0.0.1 port 8093 (tcp) failed: Connection refused и команда echo $? в ответ даст 1 - в этом случае просто перезапускаем скрипт или команду скрина
итого говнокодик
#!/bin/bash
nc -vz 127.0.0.1 8090
if [ "$?" -eq 0 ]; then
echo " record_main ok"
logger "поток record_main в норме"
else
echo " record_main fail restart"
cd /mnt/disk1/record
screen -dmS riper_record_main_8090 streamripper https://radiorecord.hostingradio.ru/rr_main96.aacp -o never -r 8090
fi
nc -vz 127.0.0.1 8091
if [ "$?" -eq 0 ]; then
echo "record_rock ok"
logger "поток record_rock в норме"
else
echo "record_rock fail restart"
logger "поток record_rock fail перезапуск"
cd /mnt/disk1/record_rock
screen -dmS riper_record_main_8091 streamripper https://radiorecord.hostingradio.ru/rock96.aacp -o never -r 8091
fi
nc -vz 127.0.0.1 8093
if [ "$?" -eq 0 ]; then
echo "radio7 ok"
logger "radio7 в норме"
else
echo "radio7 fail restart"
logger "поток radio7 fail перезапуск"
cd /mnt/disk1/r7
screen -dmS riper_record_main_8092 streamripper https://radio7.hostingradio.ru:8040/radio7256.mp3 -o never -r 8093
fi
nc -vz 127.0.0.1 8092
if [ "$?" -eq 0 ]; then
echo "record_Trancemission ok"
logger "поток Trancemission в норме"
else
echo "record_Trancemission fail restart"
logger "поток record_Trancemission fail перезапуск"
cd /mnt/disk1/record_Trancemission
screen -dmS riper_record_main_8092 streamripper https://radiorecord.hostingradio.ru/tm96.aacp -o never -r 8092
как искался урл радио 7 (да и в принципе можно любые так дергать - открываем страницку с радио https://online-red.com/radio/Radio7.html к примеру - в браузере - режим разработчика - вкладка нетворк - жмакаем плей и видим url потока - он будет самый жирный по трафику =)
Комментариев нет:
Отправить комментарий