Skip to main content

TouchTunes-style touchscreen jukebox UI for Mopidy

Project description

Mopidy-Jukebox

Mopidy-Jukebox

PyPI CI

A Mopidy extension that turns a touchscreen into a TouchTunes-style jukebox. Guests browse album art, spend free credits, and queue the next song — from the cabinet itself or from their phone.

Built for an actual 1990s TouchTunes Allegro cabinet with a resistive Elo panel, so the UI assumes single-touch, no hover, and no keyboard.

What it does

  • Art-first browsing. Categories come from whatever your backends expose; albums and artists render as tiles, with drill-down to track lists.
  • Dialable selection codes. Track lists page into banks — A1–A10, then B1–B10 — and an on-screen keypad lets you punch in a code, the way the mechanical machines worked.
  • Credits. Free, but rationed: a starting balance and a slow refill, so one person can't own the night.
  • No transport controls for guests. No pause, no skip, no volume. An admin panel hides behind five taps on the credits counter.
  • Attract mode built from album art already in the cache.
  • Phone and kiosk layouts from one page, with the device's own keyboard on phones and a built-in QWERTY on the wall unit.

Served from Mopidy's own web server, so the page and the JSON-RPC endpoint share an origin — there is no CORS configuration to get wrong.

Installation

python3 -m pip install Mopidy-Jukebox

Then open http://<your-host>:6680/jukebox/.

Configuration

Defaults are usable as-is. To change them, add a [jukebox] section to your mopidy.conf:

[jukebox]
enabled = true
start_credits = 4        # credits a guest starts with
max_credits = 8          # ceiling, so credits don't stockpile
refill_seconds = 600     # one more credit every N seconds
cost_per_song = 1
attract_seconds = 90     # idle time before the attract screen
page_size = 10           # rows per selection bank (A1..A10)
title = Jukebox
theme = oxblood          # oxblood | seeburg | diner | phosphor | mono
accent_color =           # optional hex override, e.g. #00b4ff

Themes

Theme Looks like
oxblood Wurlitzer oxblood and marquee amber (default)
seeburg cool blue chrome, closer to a 1950s Seeburg
diner neon hot pink on near-black
phosphor green CRT, reads as equipment
mono no hue at all, pure appliance

accent_color overrides just the accent, keeping the rest of the chosen theme — set it to your cabinet's own colour. Any hex works (#00b4ff, 00b4ff, #0bf); the lighter "hot" variant is derived automatically. All five themes are checked for text contrast in the test suite.

Every client reads these from /jukeboxapi/config.json, so a change here applies to the wall unit and every phone at once.

Project resources

Credits

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

mopidy_jukebox-1.0.1.tar.gz (243.7 kB view details)

Uploaded Source

Built Distribution

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

mopidy_jukebox-1.0.1-py3-none-any.whl (41.6 kB view details)

Uploaded Python 3

File details

Details for the file mopidy_jukebox-1.0.1.tar.gz.

File metadata

  • Download URL: mopidy_jukebox-1.0.1.tar.gz
  • Upload date:
  • Size: 243.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for mopidy_jukebox-1.0.1.tar.gz
Algorithm Hash digest
SHA256 e2fadd15d080784a74bee051a1f9e11a8268ad096920ead1968c74abc4295d26
MD5 1262fcbadff59ea800c386114a934555
BLAKE2b-256 d40187454353cc728e02987aecc92fcb4864651375d3dda821adfced35c881eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for mopidy_jukebox-1.0.1.tar.gz:

Publisher: ci.yml on kingbutter/mopidy-jukebox

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mopidy_jukebox-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: mopidy_jukebox-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 41.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for mopidy_jukebox-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d703f30d73b684e792558633e7b30c1d25994a5ffc877a08c907dc3a952090d5
MD5 b1f571bef7d823e1e2f087a5da7c4467
BLAKE2b-256 ec7efd4e1baaa37c08193e5cc6f8602296f19451394aa98075639f574bb5f6f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for mopidy_jukebox-1.0.1-py3-none-any.whl:

Publisher: ci.yml on kingbutter/mopidy-jukebox

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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