Skip to content

About

Internet radio player for any audio stream, with a station list and system tray controls. Radio Famka preconfigured (Python, Tkinter, VLC)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

13 Commits

Folders and files

Repository files navigation

Radio Player

Python Tkinter VLC Pillow pystray PyInstaller

A simple internet radio player written in Python with a graphical user interface. It plays any audio stream (HTTP/HTTPS, RTSP, RTMP, MMS) and ships with Radio Famka as the default station. The application keeps running in the background as a system tray icon, so playback continues without occupying space on the taskbar.


Features

  • Play any internet radio stream; Radio Famka is preconfigured
  • Station list: switch, add, edit and remove stations from the station menu (click the station name) or the tray menu
  • Stations added without a name pick up the name broadcast by the stream (icy-name)
  • Connection status (stopped, connecting, live, offline) with automatic reconnect
  • "Now playing" title and artist from the stream metadata
  • Volume slider with mute, mouse wheel support and remembered settings
  • Keyboard shortcuts
  • Audio spectrum visualizer driven by the actual sound (falls back to an animation without numpy/sounddevice)
  • System tray icon with play/pause and station selection
  • Build to a single .exe file with no external dependencies

Technologies

Library Purpose
Tkinter Graphical interface of the application window
python-vlc Audio stream handling via the libVLC library
Pillow Anti-aliased interface graphics and the tray icon
numpy + sounddevice Audio output with spectrum analysis for the visualizer (optional)
pystray System tray icon and context menu
PyInstaller Compilation to a standalone .exe file

Running

pip install -r requirements.txt
python radio_player.py

Open a specific stream directly (it is added to the station list):

python radio_player.py https://example.com/stream.mp3

The libVLC library is required. On Linux and macOS, install VLC from your package manager. On Windows, copy libvlc.dll, libvlccore.dll and the plugins folder from your VLC installation (e.g. C:\Program Files\VideoLAN\VLC) into the project directory; VLC must match the architecture of Python (usually 64-bit). These files are not stored in the repository.

Keyboard shortcuts

Key Action
Space / Enter Play / pause
↑ / ↓, mouse wheel Volume
M Mute
Ctrl+Q Quit

Closing the window hides the player to the system tray; use the tray menu to restore it or quit.

Configuration

Stations, the selected station, volume and mute state are saved to:

  • Windows: %APPDATA%\RadioPlayer\config.json
  • Linux: ~/.config/radio-player/config.json

Building .exe

With the VLC files copied as described in Running:

pip install pyinstaller
pyinstaller radio_player.spec

The finished radio_player.exe file will be located in the dist/ directory.

Project structure

Path Contents
radio_player.py Entry point
radioplayer/app.py Main window, playback, stations and tray
radioplayer/audio.py Audio output with spectrum analysis
radioplayer/graphics.py Anti-aliased images for the interface
radioplayer/dialogs.py Add/edit station dialog
radioplayer/config.py Paths, settings and station helpers
radioplayer/theme.py Colors and layout
radioplayer/vlc_loader.py Loading libVLC

License

MIT

About

Internet radio player for any audio stream, with a station list and system tray controls. Radio Famka preconfigured (Python, Tkinter, VLC)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages