В этой статье мы расскажем, как создать простой скрипт на Python, который будет собирать данные об онлайн-радиостанциях из открытых источников и воспроизводить их эфир прямо в терминале Linux. Мы будем использовать API RadioBrowser для получения списка радиостанций и утилиту mpv
для воспроизведения потокового аудио.
Что понадобится:
- Linux-система (Ubuntu, Debian или любой дистрибутив).
- Python 3.
- Установленные пакеты:
requests
(для работы с HTTP-запросами) иmpv
(для воспроизведения аудио).
Шаг 1: Установка необходимых инструментов
Для начала установим все необходимые зависимости:
sudo apt update sudo apt install python3 python3-pip mpv
Теперь установим библиотеку requests
, которая поможет нам работать с API:
pip3 install requests
Шаг 2: Создание скрипта
Создайте новый файл с именем radio_player.py
и вставьте в него следующий код:
#!/usr/bin/env python3 import requests import random import subprocess import sys # Функция для получения списка радиостанций через API RadioBrowser def get_radio_stations(limit=10): url = f"https://de1.api.radio-browser.info/json/stations?limit={limit}" try: response = requests.get(url) response.raise_for_status() stations = response.json() return stations except requests.exceptions.RequestException as e: print(f"Ошибка при получении данных: {e}") sys.exit(1) # Функция для воспроизведения потока с помощью mpv def play_stream(stream_url): try: print(f"Воспроизводится: {stream_url}") subprocess.run(["mpv", stream_url], check=True) except subprocess.CalledProcessError as e: print(f"Ошибка при воспроизведении: {e}") sys.exit(1) def main(): # Получаем список радиостанций stations = get_radio_stations(limit=20) # Ограничим до 20 станций для быстродействия if not stations: print("Не удалось получить список радиостанций.") sys.exit(1) # Выводим список станций print("Доступные радиостанции:") for i, station in enumerate(stations): print(f"{i + 1}. {station['name']} ({station['country']})") # Выбираем случайную радиостанцию random_station = random.choice(stations) print(f"\nВыбрана случайная радиостанция: {random_station['name']} ({random_station['country']})") # Получаем URL потока stream_url = random_station.get('url_resolved', None) if not stream_url: print("URL потока недоступен.") sys.exit(1) # Воспроизводим поток play_stream(stream_url) if __name__ == "__main__": main()
Шаг 3: Как работает скрипт?
1. Получение данных о радиостанциях:
– Скрипт отправляет запрос к API RadioBrowser, который предоставляет информацию о тысячах онлайн-радиостанций по всему миру. Мы ограничиваем количество станций до 20 для ускорения работы.
2. Случайный выбор радиостанции:
– Из полученного списка радиостанций выбирается одна случайная станция.
3. Воспроизведение потока:
– Для воспроизведения выбранного потока используется утилита mpv
. Если вы предпочитаете использовать другой медиаплеер, например, vlc
, замените "mpv"
на "vlc"
в вызове subprocess.run
.
Шаг 4: Запуск скрипта
- Сохраните скрипт в файл, например,
radio_player.py
. - Сделайте его исполняемым:
chmod +x radio_player.py
- Запустите скрипт:
./radio_player.py

Возможные улучшения
Этот скрипт можно расширить, добавив больше функциональности:
- Фильтрация по жанрам: Вы можете модифицировать запрос к API, чтобы фильтровать радиостанции по жанрам, странам или языкам.
- Ручной выбор радиостанции: Вместо случайного выбора можно позволить пользователю выбрать радиостанцию из списка.
- Использование других медиаплееров: Если вам не нравится
mpv
, вы можете использовать другие медиаплееры, такие какvlc
илиmplayer
.
Заключение
Теперь вы знаете, как создать простой скрипт для прослушивания онлайн-радио в Linux. Этот проект можно легко адаптировать под свои нужды, добавив новые функции или изменив логику работы.