Консольное приложение для воспроизведения интернет-радиостанций с использованием VLC Media Player. Поддерживает управление с клавиатуры, редактирование списка станций и сохранение/загрузку плейлистов.
- 🎵 Воспроизведение интернет-радиостанций через VLC
- 📋 Управление списком станций (добавление, удаление, редактирование)
- 🔧 Интуитивный интерфейс с навигацией клавишами
- 💾 Сохранение и загрузка плейлистов в CSV формате
- 🔊 Управление громкостью во время воспроизведения
- 📱 Перемещение станций в списке
- 🚀 Автоматическое воспроизведение при запуске
- Python 3.6+
- VLC Media Player
- Библиотеки Python:
curses(встроенная в Unix-системы)clicktelnetlib(встроенная)
Windows:
- Скачайте и установите VLC с официального сайта
- Убедитесь, что VLC установлен в стандартную папку
C:\Program Files (x86)\VideoLAN\VLC\
Ubuntu/Debian:
sudo apt install vlcFedora:
sudo dnf install vlcmacOS (с Homebrew):
brew install vlc# На Unix-системах (Linux, macOS)
curl -LsSf https://astral.sh/uv/install.sh | sh
# На Windows (PowerShell)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# Через pip
pip install uv# Установка зависимостей
```bash
uv init # если нет файла pyproject.toml
uv add click python-vlc для windows необходимо установить
uv add windows-cursesuv run atradio.py
uv run atradio.py --autoplay 0
### 4. Подготовка структуры проекта
Создайте следующую структуру папок:
atradio/ ├── atradio.py ├── pyproject.toml # будет создан автоматически при использовании uv ├── data/ │ └── radio_stations.csv └── ui/ ├── ui_interface.py └── ui_app.py
### 5. Сборка приложения в запускаемый файл
pyinstaller --onefile --collect-all python-vlc --collect-all click atradio.py
запускаемый файл после сборки находится в папке dist
## Использование
### Основной запуск
```bash
uv run atradio.py
uv run atradio.py --autoplay 0 # Запустить первую станцию
uv run atradio.py --autoplay 5 # Запустить шестую станцию- ↑/↓ - Перемещение по списку станций
- Enter - Воспроизвести выбранную станцию
- Esc - Остановить воспроизведение
- Q и F10 - Выход из программы
- Insert - Добавить новую станцию
- Delete - Удалить текущую станцию (с подтверждением)
- F3 - Войти в режим перемещения станции
- F4 - Редактировать текущую станцию
- F2 - Сохранить станции в файл
- F5 - Загрузить станции из файла который находится в папке проекта
- + - Увеличить громкость на 10%
- - - Уменьшить громкость на 10%
- ↑/↓ - Перемещение станции вверх/вниз
- Enter - Подтвердить новое положение
- Esc - Отменить перемещение
Файл со станциями должен иметь следующий формат:
Name;URL
Радио Маяк;http://icecast.vgtrk.cdnvideo.ru/mayakfm
Европа Плюс;http://ep256.hostingradio.ru:8052/europaplus256.mp3
Поля разделяются точкой с запятой (;).
atradio.py- Основной файл приложенияdata/radio_stations.csv- Файл с радиостанциями по умолчаниюui/ui_interface.py- Модуль пользовательского интерфейсаui/ui_app.py- Дополнительные UI компоненты
Приложение управляет VLC через telnet-интерфейс на localhost:5000. VLC запускается с параметрами:
--intf rc- отключение графического интерфейса--rc-host localhost:5000- включение удаленного управления
- Windows (путь к VLC:
C:\Program Files (x86)\VideoLAN\VLC\vlc.exe) - Linux (команда:
vlc) - macOS (команда:
vlc)
- Убедитесь, что VLC правильно установлен
- Проверьте, что порт 5000 не занят другими приложениями
- Перезапустите приложение
- Убедитесь, что CSV файл сохранен в UTF-8
- Проверьте правильность разделителей в CSV файле
- Увеличьте размер терминала для корректного отображения
- Убедитесь, что терминал поддерживает цвета
Проект распространяется под лицензией MIT.
При возникновении проблем создайте issue в репозитории проекта или обратитесь к разработчику.