Pull to refresh

Записываем Интернет-радио с помощью Streamripper

Reading time2 min
Views4.2K
Странно, что на Хабре ещё не упоминалась такая полезная программа как Streamripper. Это консольная программа, которая позволяет записывать Интернет-радио с таких ресурсов, как Shoutcast и Icecast. Причём не просто записывать, а вытаскивать из потока отдельные треки вместе с названиями.

Программа работает в 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 секунд

// Первый пост на Хабре. Поправляйте, если что.
Tags:
Hubs:
+6
Comments12

Articles