Доброго всем времени суток! Для автоматизации записи трансляций нашкрябал скриптик. Авось пригодится кому. Идея простая. Запускаем и останавливаем wget по крону. Настройка скриптика заключается в задании STORE_PATH - папка, в кот. будут сохраняться mp3 и лог. Остальное по вкусу. Надо проверить где лежит бинарь wget'a и при необходимости подкорректировать wgetbin. Пользоваться просто. ./script_name.sh start и пошла запись. ./script_name.sh stop запись остановлена. Для автоматизации процесса добавляем в crontab два вызова. 0 0 * * 5 /path/to/sctipt/script_name.sh start 0 2 * * 5 /path/to/sctipt/script_name.sh stop Код ниже. Не нашёл как прикрепить файл. Код: #!/bin/bash STORE_PATH=~/MDS/MDS_radiorip LOG=mds_load.log wgetbin=/usr/bin/wget pidfile=/tmp/wgetpid TIME=`date +%H:%M` DATE=`date +%d.%m.%Y` FILE_NAME=MDS_$DATE-$TIME.mp3 URL="http://online.pionerfm.ru:8000/pionerfm" if [ "$1" = "start" ]; then if [ -e $pidfile ]; then exit 1 fi echo -n "Started at " >> $STORE_PATH/$LOG date +%d.%m.%Y-%H:%M >> $STORE_PATH/$LOG $wgetbin --directory-prefix=$STORE_PATH -a $STORE_PATH/$LOG -O $STORE_PATH/$FILE_NAME $URL & WGETPid=`ps aux | grep wget | grep pionerfm | awk '{print $2}'` echo $WGETPid > $pidfile fi if [ "$1" = "stop" ]; then WGETPid=`ps aux | grep wget | grep pionerfm | awk '{print $2}'` if [ $WGETPid ]; then kill $WGETPid rm $pidfile echo >> $STORE_PATH/$LOG echo -n "Wget (pid=$WGETPid) stoped at " >> $STORE_PATH/$LOG date +%d.%m.%Y-%H:%M >> $STORE_PATH/$LOG fi fi exit 0;
У меня не работает, то есть создает лог, а файла с музыкальным потоком не появляется Где явно лежит wget указывать не надо. Еще надо все пути взять в кавычки. Еще вопрос -- что за амперсант на конце wget-a?
Автор забыл указать, что это только для ОС linux. Если кому интересно, могу сделать похожее только для Windows, тока запуск и остановка будет вручную, или используя встроенный планировщик Windows, или аналог крона. Преимущества записи через wget в том, что запись идет непосредственно потока, т.е. никакого кодирование, потери качества и прочего.
Было скучно, написал скриптик для Windows. Как пользоваться 1) Открываем файл Запись.cmd любым текстовым редактором, можно даже блокнотом (ПКМ -> Изменить). 2) Находим и правим строки: Код: set URL_STREAM=http://server.freshmeradio.globalzone.su:8000/2bios.ogg // Ссылка на трансляцию * set FILE_NAME=%_da%.%_mo%.%_cy%%_yr%_%_hh%-%_mm%-%_ss%.ogg // Формат выходного файла. По умолчанию: ДД:ММ:ГГГГ_ЧЧ-ММ-СС * set STORE_PATH=REC // Папка, куда будет записываться эфир set PROGRESS=bar // Тип прогресс бара. (bar или dot) set BINDDIR=%~dp0 // Текущая папка. Поменять нужно только строки, помеченные *, остальное более тонкая настройка. PS> Данная настройка сделана под мой сервер, которые вещает в формате OGG, если выбранный Вами сервер транслирует радио или видео в любом ином формате, то необходимо на строчках, помеченные *, поменять формат OGG на свой. 3) Сохраняем изменения и запускаем файл. Остальное написано в самом скрипте. 4) Если есть вопросы или предложения, то пишите в эту тему, думаю автор темы не будет против... 5) Скачать скрипт: Посмотреть вложение WGET_RECORD.zip
Да, простите, забыл указать - скрипт для линкса. Работает в Debian в представленном виде. Амперсант указывает оболочке запустить wget в фоне. И да, указаывать обсолютный путь не обязательно, можно обойтись просто wget Если путь настроены корректно будет работать. Kontakter, а что в логе wget и какую ос используете?
Это конечно здорово, при наличии свободного времени написать скрипт и поделиться им. Но ведь можно полазить в репозиториях и найти уже готовое приложение. Я, к примеру, использую KStreamRipper и всем доволен. Еще нужно учитывать что подавляющее большинство пользователей использует виндовс и не привыкло сильно заморачиваться. З.Ы. За старания, тем не менее, спасибо
В своём скрипте Я постарался максимально упростить настройку. Если есть пожелания, могу поправить... А так я не доверяю всяким таким программам, а если программа не пишет поток напрямую, а кодирует его налету, то вообще ужоос...
Самый простой способ, который я знаю, это просто в терминале набрать "wget http://online.pionerfm.ru:8000/pionerfm". wget автоматом кидает файл без расширения в домашнюю папку. Как надоест писать, процесс останавливается по ctlr+C. Остается только прописать расширение к файлу и вуаля - имеем напрямую записаный поток. Как говорится - на вкус и цвет все фломастеры разные , мне проще было взять прогу из репозиториев и не морочиться.
Вот ведите сколько вы действий сделали: написали строчку с полным адресом до трансляции, потом полезли переименовывать файл. А не проще 1 раз сделать скрипт, в который вбить адрес, имя, разрешение, складывать сразу в папку MDS и просто запускать и нажимать ctlr+C когда надо, или вообще использовать Cron PS> Так-же незабываем, что мой скрипт написано под windows, где wget нету в помине, да и не забываем, что для большинства пользователей wget это ругательство... ИХМО
ИМХО: имею мнение, фиг(Грубее слово) оспоришь {или я это уже писал?}. Самый логичный ответ. Dragon_Knight, зачёт. :good: з.ы.Или -=Stranger=-?
Конечно проще, не спорю. Но ведь еще проще поставить готовое приложение и использовать его, тем более для пользователей виндовс (читай - для тех кому лень думать). кстати, wget был портирован под винду аж в 2008 году и успешно под ней работает. По этому могу предложить включить в скрипт еще и возможность закачки и установки его. Вот так и вырастет из маленького скрипта вполне достойное приложение для записи эфиров
alkaline, -=Stranger=- это ник в прошлом.... bobson, портирован, я его и использую в скрипте. (Я имею ввиду в дистрибутиве его нету, хотя бы отдалённо напоминающего...) Конечно я не спорю, что каждый возьмёт своё, как ему лично удобнее, Но когда есть выбор это всегда хорошо... Я-бы конечно написал программку для записи на основе wget, но с GUI (Графический интерфейс), но я не умею программировать на таких языках -_- , поэтому и приходиться делать всё на cmd\bat скриптах, но они значительно упрощают жизнь