Странно, что на Хабре ещё не упоминалась такая полезная программа как Streamripper. Это консольная программа, которая позволяет записывать Интернет-радио с таких ресурсов, как Shoutcast и Icecast. Причём не просто записывать, а вытаскивать из потока отдельные треки вместе с названиями.
Программа работает в Linux, FreeBSD, BeOS, Windows и OS/2. У Streamripper есть несколько графических оболочек, например StationRipper для Windows. Полный список оболочек есть на домашней странице Streamripper.
Теперь немного об использовании и возможностях программы. При этом я буду считать (при именовании файлов и пр.), что поток имеет формат mp3. В простейшем случае программа используется так:
Такая команда натравит Streamripper на заданный URL (URL можно легко вытащить из содержимого плейлиста). Streamripper по названию потока (которое тоже транслируется) создаст директорию в текущей и будет складировать туда треки. Треки, записанные не полностью, будут складироваться в поддиректорию c названием incomplete. Завершать работу программы нужно принудительно (например, нажав Ctrl-C).
Чтобы создавать директорию не в текущей директории, а в произвольной, можно использовать ключ -d.
Чтобы Streamripper не создавал директорию с названием потока, надо использовать ключ -s.
Streamripper умеет завершать работу по истечению заданного промежутка времени (в секундах) или в момент, когда размер полученных файлов превышает заданную величину (в Мб). Для этого используются ключи -l (строчная L) и -M, соответственно. Если ключи -l и -M используются одновременно, программа завершит работу, когда будет превышено одно из значений.
Работать в течение двух часов.
Работать, пока не накопится 50Мб музыки.
С помощью Streamripper можно одновременно слушать и записывать радио, избегая дублирования трафика. Для этого с помощью ключа -r создаём relay-сервер. По умолчанию, он будет висеть на порту 8000. Пользователи Linux могут делать, например, так:
и в другом окне
Об остальных опциях можно узнать, набрав
Если разбиение на треки не требуется, для записи интернет-радио можно использовать консольную программу для скачивания wget. В дистрибутивах Linux он обычно установлен по умолчанию, в противном случае он наверняка есть в репозитории. Пользователи Windows могут забрать wget для Windows, например, здесь.
В этом случае завершать работу wget надо принудительно. Чтобы ограничить время скачивания можно использовать стороннюю утилиту timeout. В Ubuntu достаточно установить пакет timeout. Использование:
Записывать в течение 30 секунд
// Первый пост на Хабре. Поправляйте, если что.
Программа работает в Linux, FreeBSD, BeOS, Windows и OS/2. У Streamripper есть несколько графических оболочек, например StationRipper для Windows. Полный список оболочек есть на домашней странице Streamripper.
Использование Streamripper
Теперь немного об использовании и возможностях программы. При этом я буду считать (при именовании файлов и пр.), что поток имеет формат mp3. В простейшем случае программа используется так:
streamripper URL
Такая команда натравит Streamripper на заданный URL (URL можно легко вытащить из содержимого плейлиста). Streamripper по названию потока (которое тоже транслируется) создаст директорию в текущей и будет складировать туда треки. Треки, записанные не полностью, будут складироваться в поддиректорию c названием incomplete. Завершать работу программы нужно принудительно (например, нажав Ctrl-C).
STREAM_NAME
|-A.mp3
|-B.mp3
|-incomplete
|-C.mp3
Чтобы создавать директорию не в текущей директории, а в произвольной, можно использовать ключ -d.
streamripper URL -d DIR
DIR
|-STREAM_NAME
|-A.mp3
|-B.mp3
|-incomplete
|-C.mp3
Чтобы Streamripper не создавал директорию с названием потока, надо использовать ключ -s.
streamripper URL -d DIR -s
DIR
|-A.mp3
|-B.mp3
|-incomplete
|-C.mp3
Streamripper умеет завершать работу по истечению заданного промежутка времени (в секундах) или в момент, когда размер полученных файлов превышает заданную величину (в Мб). Для этого используются ключи -l (строчная L) и -M, соответственно. Если ключи -l и -M используются одновременно, программа завершит работу, когда будет превышено одно из значений.
streamripper URL -l 7200
Работать в течение двух часов.
streamripper URL -M 50
Работать, пока не накопится 50Мб музыки.
С помощью Streamripper можно одновременно слушать и записывать радио, избегая дублирования трафика. Для этого с помощью ключа -r создаём relay-сервер. По умолчанию, он будет висеть на порту 8000. Пользователи Linux могут делать, например, так:
streamripper URL -r
и в другом окне
mplayer http://127.0.0.1:8000
Об остальных опциях можно узнать, набрав
streamripper -h
или man streamripper
(для Unix-подобных систем).Использование для записи интернет-радио утилиты wget
Если разбиение на треки не требуется, для записи интернет-радио можно использовать консольную программу для скачивания wget. В дистрибутивах Linux он обычно установлен по умолчанию, в противном случае он наверняка есть в репозитории. Пользователи Windows могут забрать wget для Windows, например, здесь.
wget -O радио.mp3 URL
В этом случае завершать работу wget надо принудительно. Чтобы ограничить время скачивания можно использовать стороннюю утилиту timeout. В Ubuntu достаточно установить пакет timeout. Использование:
timeout 30 wget -O радио.mp3 URL
Записывать в течение 30 секунд
// Первый пост на Хабре. Поправляйте, если что.