Skip to main content

A GTK music player for Jellyfin with CD burning support

Project description

jellyburn

A GTK3 desktop app for Linux to browse your Jellyfin music library, build playlists, and burn them directly to audio CD.

Python License Platform Status

Features

  • Connects to any Jellyfin server via API key or username/password
  • iTunes-style column browser — filter by artist, then album, then tracks
  • Track number column, search by title, artist or album
  • Album art display fetched directly from Jellyfin
  • Playback via mpv with now-playing info, progress bar and scrubbing
  • Collapse to a compact mini player that stays on top while you use other apps
  • Playlist builder with drag-and-drop reordering, save/load as JSON
  • Delete tracks from playlist with the Delete key or right-click
  • Real-time CD capacity bar (green → yellow → red, max. 74 min)
  • Burn directly to audio CD in Disc At Once mode — no extra steps
  • Auto-detects optical drives, shown as a dropdown in settings
  • Library cached locally for instant startup, refreshed in the background
  • Checks for missing system dependencies on startup with clear instructions

Requirements

System packages (Debian/Ubuntu/Mint):

sudo apt install python3-gi gir1.2-gtk-3.0 gir1.2-gdkpixbuf-2.0 mpv ffmpeg cdrskin

cdrskin is the recommended burn backend. wodim is supported as a fallback but may require extra permissions on modern kernels:

sudo setcap cap_ipc_lock+ep $(which wodim)

Python: 3.10 or newer. The only Python dependency (requests) is installed automatically via pip.

Your user must be in the cdrom group to access the optical drive without root:

sudo usermod -aG cdrom $USER
# log out and back in for the change to take effect

Installation

pip install jellyburn

Or run from source:

git clone https://github.com/oemerhamzaoglu/jellyburn
cd jellyburn
pip install -e .
jellyburn

Setup

  1. Click the settings icon (⚙) in the top right
  2. Enter your Jellyfin server URL, e.g. https://jellyfin.example.com
  3. Enter an API key — Jellyfin Dashboard → Administration → API Keys → New Key
  4. Select your CD drive from the dropdown (auto-detected)
  5. Set burn speed (default: 4×)
  6. Save — the app connects and loads your library

Config is stored in ~/.config/jellyburn.json. Passwords are never saved — only the API token obtained after login. Library cache is stored in ~/.cache/jellyburn/.

Usage

Action How
Browse Click an artist → albums update; click an album → tracks filter
Search Type in the search bar — filters title, artist and album live
Play Double-click a track, or select it and press Play
Scrub Click or drag the progress bar to seek within a track
Mini player Click the collapse button (⧉) in the header; click ⤢ to restore
Add to playlist Select tracks (Ctrl+click for multiple), then „+ Auswahl hinzufügen"
Reorder playlist Drag and drop rows
Remove from playlist Select rows and press Delete, or right-click → remove
Save/load playlist Use the save/open icons in the playlist header
Burn Click „● CD BRENNEN" — tracks are downloaded, converted and burned

The CD capacity bar turns yellow above 85 % and red when the playlist exceeds 74 minutes.

Burn process

  1. Tracks are downloaded from Jellyfin one by one
  2. Each track is converted to WAV (44100 Hz, 16-bit stereo) via ffmpeg
  3. All WAV files are written to CD as an audio disc in DAO mode via cdrskin (or wodim)

Temporary files in /tmp/jellyfin_burn_*/ are cleaned up automatically after burning.

Contributing

Open an issue before starting larger changes. PRs welcome.

License

MIT — see LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jellyburn-0.3.0.tar.gz (23.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jellyburn-0.3.0-py3-none-any.whl (24.6 kB view details)

Uploaded Python 3

File details

Details for the file jellyburn-0.3.0.tar.gz.

File metadata

  • Download URL: jellyburn-0.3.0.tar.gz
  • Upload date:
  • Size: 23.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for jellyburn-0.3.0.tar.gz
Algorithm Hash digest
SHA256 8d5ce6c61f98119ab3dd652f6b46f68cf942a2039d1bef5825a3aed7701fafcb
MD5 6ffbad437f33652beae651240116bb9c
BLAKE2b-256 2f7778368a10461b3f1a3d94d37c150d6aa4e68e0c4f3f5d3ed27d0de5ffb7df

See more details on using hashes here.

File details

Details for the file jellyburn-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: jellyburn-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 24.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for jellyburn-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 86315f39505659244b63d24c8b78442a79130ce82dc20771836ac735eb839d87
MD5 1146909bb12b6ba12e8909a99fd56c3f
BLAKE2b-256 f7a3f9e676db2552d181bbaeb3360b5ed99bfc51c3735b56b85a66449077dd9e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page