Выкладываю скрипт для захвата потокового радио и магического превращения записанной передачи в подкаст.
Первоисточник и некоторе количество исходного кода позаимствовано вот тут.
Для работы потребуется:
- Локальный или удаленный веб-сервер с шелл-доступом.
- Утилита streamripper (есть в стандартных репозитариях Debian)
- Perl и модули:
- XML::RSS
- XML::Simple
- Audio::Cuefile::Parser
Помимо этого неплохо бы иметь работающий cron, чтобы автоматизировать задачу.
Скачиваем по этой ссылке архив.
Распаковываем.
В ay_podcast.pl нужно подправить начальные значения:
my $file_name = "aypodcast";
my $location = "/home/zno/aypodcast/";
my $url = "http://192.168.1.3/aypodcast/";
my $run_seconds="7200";
my $radio_url="http://radio.ayland.x.pl:8000/ayland128";
my $podcast_name = "DIY AY PodCast ";
А именно – базовое имя файла подкаста (оно же используется для генерации mp3) -в нашем случае aypodcast
Расположение, где в файловой системе на сервере расположен подкаст – в нашем случае /home/zno/aypodcast
URL, по которому будет доступен подкаст с вебсервера – фактически, это предыдущая директория, доступная через веб.
Также, задается длительность захвата, URL для радио (см. man для streamripper по вопросам совместимости) и описание подкаста.
В архиве также есть файл aypodcast.xml.def. Это шаблон для xml, его нужно переименовать следующим образом – вместо aypodcast выбрать базовое имя, указанное в скрипте и убрать .def. Сам файл нужно положить в директорию, где будет генериться подкаст.
Для тестирования скрипта можно указать время завхата – 60 секунд и запустить вручную. После минутной паузы в дириектории «народится» файл вида базовое_имяXXXYYYZZZ.mp3 и базовое_имя.xml будет изменен соответственно.
Feature! Теги, которые «вещает» радио автоматом попадают в поле «description» скрипта и их можно комфортно просматривать на iPod/PSP или другом подкаст-enabled устройстве.
Траблшутинг =)
При вызове из крона скрипт захватывает 500кб и все.
Верните на место параметр –quiet. Это баг стримриппера.
Создается файл со странными именем.
Не используйте пробелы и сомнительные символы в базовом имени.
MP3 файл появился, но не больше ничего не произошло.
Возможно, радиостанция не вещает метаинформацию о тегах, которая используется для генерации описания. Для этого удалите из скрипта код, парсящий cue-файл и вбейте заглушку для переменной description (просто присвойте ей константное значение).
Have fun.
Скрипт распространяется без каких-либо ограничений и авторы скрипта не несут никакой ответственности за последствия его применения.