A web app that converts audio streams into video streams with metadata overlays, making it easy to add radio stations to Jellyfin with proper song information display. This works only if the radio station directly supplies ICY Metadata.
Here some screenshots how the app looks, a simple UI is enough here.
Here how it looks in a player like VLC or Jellyfin.
Adding radio streams to Jellyfin is cumbersome and doesn't show currently playing song information. Radio-Tagger solves this by creating video streams with dynamic overlays that display current song metadata.
- Converts audio streams to video streams with metadata
- Dynamic overlay showing station name and current song
- Web interface for managing multiple streams
- Direct HTTP URLs for easy Jellyfin integration
- Optional station icons/artwork
- Dark/light mode support
- Python 3.8+
- FFmpeg
- Dependencies: see
requirements.txt
- Clone the repository:
git clone https://github.com/CrazyWolf13/radio-tagger.git
cd radio-tagger- Install dependencies:
cd app
pip install -r requirements.txt- Ensure FFmpeg is installed and in your PATH
Run the development server with auto-reload:
uvicorn main:app --reload --host 127.0.0.1 --port 8000Access the web interface at http://localhost:8000
For production deployment:
- Configure your firewall to allow incoming connections
- Run the app on your Jellyfin host:
cd app
uvicorn main:app --host 0.0.0.0 --port 8000 --workers 1Create /etc/systemd/system/radio-tagger.service:
[Unit]
Description=Radio-Tagger Service
After=network.target
[Service]
User=your-user
WorkingDirectory=/path/to/radio-tagger/app
ExecStart=/usr/local/bin/uvicorn main:app --host 0.0.0.0 --port 8000 --workers 1
Restart=always
[Install]
WantedBy=multi-user.targetEnable and start the service:
sudo systemctl enable radio-tagger
sudo systemctl start radio-taggerThe app will bind to 0.0.0.0:8000 allowing external access.
- Add a radio station through the web interface
- Copy the "Redirect URL"
- In Jellyfin:
- Go to Dashboard → Libraries → Add Media Library
- Choose "Movies" as content type
- Add the stream URL
Click "Find Radios" in the top right or visit radio-browser.info for stream URLs.
- Connection refused: Check Windows/Linux Firewall settings and allow FFmpeg through
- No metadata: Some streams simply don't provide any ICY metadata
- Stream stops: Use the refresh button to restart a stream
GPL-3.0 License - see LICENSE file for details

