Across Posted November 24, 2016 Posted November 24, 2016 Озадачился включить запись онлайн-радио Digitally Imported на своём Keenetic Extra. Решил путём установки screen: opkg install screen и самого рекордера: opkg install streamripper Далее в скрине переходим в директорию, куда и будем всё добро складывать: screen cd /tmp/mnt/Music Записываем: streamripper <url> Выходим из скрина путём нажатия комбинации клавиш <ctrl+a+d>. На usb-носителе streamripper создаст директорию, в моём случае <Progressive Psy - Digitally Imported Premium>, и поддиректорию <incomplete>, в которой формируется сам mp3 файл, а готовый перемещается на уровень выше. Скачал плейлист с актуальным ссылками тут. P.S. Иногда сообщениях streamripper можно увидеть следующее: [skipping] <имя трека> - запись идёт, но начало записи не совпадает с началом трека, в этом случае готовый файл остаётся в incomplete. [ripping] <имя трека> - запись идёт и в этом случае готовый файл также остаётся в incomplete. Пока не понял как это исправить на уровне самого streamripper. 2 Quote
stuhin Posted November 30, 2016 Posted November 30, 2016 без screen все нормально работает В 11/25/2016 в 03:56, Across сказал: Скачал плейлист с актуальным ссылками тут. ссылка не на плейлист Quote
Александр Рыжов Posted November 30, 2016 Posted November 30, 2016 В 24.11.2016 в 23:56, Across сказал: P.S. Иногда сообщениях streamripper можно увидеть следующее: [skipping] <имя трека> - запись идёт, но начало записи не совпадает с началом трека, в этом случае готовый файл остаётся в incomplete. [ripping] <имя трека> - запись идёт и в этом случае готовый файл также остаётся в incomplete. Пока не понял как это исправить на уровне самого streamripper. Старо как мир. Quote
Across Posted December 1, 2016 Author Posted December 1, 2016 В 30.11.2016 в 15:04, stuhin сказал: без screen все нормально работает ссылка не на плейлист Я указал откуда скачал плейлист. По ссылке несколько жанровых направлений от классики до электронной музыки. Сами выбирайте. Quote
Across Posted December 1, 2016 Author Posted December 1, 2016 В 30.11.2016 в 15:44, Александр Рыжов сказал: Старо как мир. Охотно верю, только нет привычки сразу гуглить. А в целом, спасибо! Quote
K1fa Posted February 8, 2017 Posted February 8, 2017 Отлично, записывает музыку с радио для машины, а что будет когда флешка полностью забъётся? Quote
gvan Posted February 10, 2017 Posted February 10, 2017 Сделал небольшой скрипт, который может рипить сразу несколько станций. В примере записываются 3 URL (их намеренно испортил, т.е. замените на свои по ссылке в первом сообщении). На Giga II при рипе одновременно трех станций нагрузка на роутер небольшая. Вполне можно и больше рипить. Этот скрипт можно запустить с параметром "stop" для завершения всех рипов. Создаем файл stream-di.sh. Размещаем в нем указанный код и делаем файл исполняемым командой 'chmod +x stream-di.sh'. Код скрипта: Скрытый текст #!/opt/bin/sh prefix="/opt" PATH=${prefix}/bin:${prefix}/sbin:/sbin:/bin:/usr/sbin:/usr/bin # Каталог, куда будут писаться рипы SDIR='/tmp/mnt/KINGSTON1/DI' # Список URL для рипа в формате 'описание|URL'. На каждой строчке по одной станции SLIST='Ambient|http://___.__.fm/ambient_hi?xxxx AtmosphericBreaks|http://___.__.fm/atmosphericbreaks_hi?xxxx ClassicVocalTrance|http://___.__.fm/classicvocaltrance_hi?xxxx' # Если запустить с ключем stop, то завершаются все копии рипов. Иначе запускаем в screen рип каждого из URL if [ "$1" != "stop" ] then for STATION in $SLIST do # Вычленяем имя станции и URL SNAME=`echo $STATION | cut -d '|' -f 1` SURL=`echo $STATION | cut -d '|' -f 2` echo "Starting ripping $SNAME $SURL" # Запускаем процесс рипа с именем окна, состоящим из имени станции screen -t $SNAME streamripper $SURL -q -d $SDIR done else # Если запущен с ключем stop, завершаем все процессы рипа killall streamripper fi Также рекомендую предварительно настроить screen, разместив в конфигурационном файле код, представленный ниже. В этом случае экраны с запущенными сеансами будут подписаны и между ними можно будет легко переключаться по клавишам F11 и F12, чтобы посмотреть информацию по рипу станций. В принципе этим конфигом screen пользуюсь для всех случаев, но это отдельная тема для обсуждения... Конфиг screen в /opt/etc/screenrc: Скрытый текст # Bind F11 and F12 (NOT F1 and F2) to previous and next screen window bindkey -k F1 prev bindkey -k F2 next startup_message off # Window list at the bottom. hardstatus alwayslastline hardstatus string "%-w%{= BW}%50>%n %t%{-}%+w%<" # From Stephen Shirley # Don't block command output if the terminal stops responding # (like if the ssh connection times out for example). nonblock on # Allow editors etc. to restore display on exit # rather than leaving existing text in place altscreen on # Enable 256-color mode when screen is started with TERM=xterm-256color # Taken from: http://frexx.de/xterm-256-notes/ # # Note that TERM != "xterm-256color" within a screen window. Rather it is # "screen" or "screen-bce" # # terminfo and termcap for nice 256 color terminal # allow bold colors - necessary for some reason attrcolor b ".I" # tell screen how to set colors. AB = background, AF=foreground #termcapinfo xterm-256color 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' Нужно понимать, что объем флэшки и диска небезграничный. Посчитайте через минут 20 объем зарипленных мелодий и определите насколько вам хватит размера диска. Далее можно разместить в cron вызов скрипта с параметром stop, чтоб автоматически прекратить запись станций в нужный момент. Можно, конечно этого и не делать, тогда процесс streamripper завершится сам, когда место на диске кончится. 1 Quote
Across Posted February 11, 2017 Author Posted February 11, 2017 В 08.02.2017 в 17:50, K1fa сказал: Отлично, записывает музыку с радио для машины, а что будет когда флешка полностью забъётся? Я думаю запись на этом остановится. Можно написать простейший скрипт, который будет отслеживать размер свободного пространства и удалять самые старые файлы. Честно говоря, я об этом не задумывался, у меня 4 Тб на роутере висело. Quote
K1fa Posted February 12, 2017 Posted February 12, 2017 15 часов назад, Across сказал: Я думаю запись на этом остановится. Можно написать простейший скрипт, который будет отслеживать размер свободного пространства и удалять самые старые файлы. Честно говоря, я об этом не задумывался, у меня 4 Тб на роутере висело. 4 Tb это понятно, но музыка нужна не дома, где везде есть wifi а в машине, а там флешка всего на 16 Gb. Вышел из положение командой -M [число] Примеры на радио Russian Club Hits из списка по вашей ссылке в первом посте: чтобы записать 10 Gb (10 000 Mb) музыки: streamripper http://prem2.di.fm/russianclubhits_hi?ac4a342212fc9abdccd89eaf -M 10000 можно записать и по времени, ну скажем час (3600 секунд): streamripper http://prem2.di.fm/russianclubhits_hi?ac4a342212fc9abdccd89eaf -l 3600 В 30.11.2016 в 15:44, Александр Рыжов сказал: Старо как мир. Чтобы каждый раз не исправлять сканирование трека на наличие паузы на нужное, вот так: --xs_search_window=1000:1000 Я изменил в файле конфигурации streamripper.ini строчки: xs_search_window_1=6000 xs_search_window_2=6000 на: xs_search_window_1=1000 xs_search_window_2=1000 Также изменил кодировку чтобы корректно отображались русские буквы в id3 тегах и названиях файлов: codeset_metadata=utf-8 codeset_id3=windows-1251 В streamripper.ini можно настроить все необходимое, в терминале пришлось набирать лишь streamripper adress_vashego_radio.ru В streamripper.ini можно зайти командой: nano ~/.config/streamripper/streamripper.ini Мой streamripper.ini для наглядности: Скрытый текст 2 Quote
Mihail_Boyanskiy Posted January 16, 2018 Posted January 16, 2018 Подскажите пожалуйста те кто юзает данную прогу, как сделать так, чтобы в имени файла была дата? Я только смог сделать чтоб папка с датой создавалась, а мне ненужны папки, а нужна дата в имени. Это может быть только дата, или произвольное имя-дата. Делается с помощью аргумента -D %d. Вот как у меня сейчас: streamripper http://sssxxx.ru:666/live -A -a live -D %d -l 555 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.