Skip to main content

Minimal Squeezebox player for Lyrion Music Server

Project description

Squeezy

Minimal Squeezebox-compatible player for Lyrion Music Server (formerly Logitech Media Server). Advertises as a player on your network, receives streaming audio, and plays it back through your default audio output. Supports synchronized playback with other players.

Requirements

  • macOS (other platforms untested)
  • Python 3.10+
  • ffmpeg

Install

Pick whichever method suits you. All three result in a squeezy command on your PATH.

Option 1: pip/pipx (recommended)

brew install ffmpeg pipx
pipx install squeezy

Option 2: Homebrew tap

brew tap catcatcatcatcatcatcatcatcatcat/tap
brew install squeezy

This installs ffmpeg automatically as a dependency.

Option 3: From source

brew install ffmpeg
git clone https://github.com/catcatcatcatcatcatcatcatcatcat/squeezy.git
cd squeezy
python3 -m venv .venv
source .venv/bin/activate
pip install .

Usage

# Auto-discover server on local network
squeezy

# Specify server and player name
squeezy -s 192.168.1.100 -n "Kitchen Speaker"

# Custom MAC address (for persistent player identity)
squeezy -m aa:bb:cc:dd:ee:ff

# List available audio output devices
squeezy -l

# Use a specific audio output (substring match, case-insensitive)
squeezy -d "HDMI" -n "Living Room"

# Debug logging (shows chosen audio device, connection details, etc.)
squeezy -v

Your player will appear in the Lyrion Music Server web UI. Select it from the player dropdown to start streaming.

How it works

Squeezy implements the SlimProto protocol to communicate with Lyrion Music Server:

  1. Discovers the server via UDP broadcast on port 3483
  2. Registers as a player via TCP (HELO packet)
  3. Receives stream commands from the server
  4. Fetches audio via HTTP, decodes with ffmpeg, outputs via miniaudio
  5. Reports playback status back to the server for sync coordination

Uninstall

# If installed via pipx
pipx uninstall squeezy

# If installed via Homebrew
brew uninstall squeezy
brew untap catcatcatcatcatcatcatcatcatcat/tap

License

MIT

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

squeezy-0.2.0.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

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

squeezy-0.2.0-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file squeezy-0.2.0.tar.gz.

File metadata

  • Download URL: squeezy-0.2.0.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for squeezy-0.2.0.tar.gz
Algorithm Hash digest
SHA256 5fd9e35640397889b01ce91c3d21b3e679fa4120dbb194e37e0aff581e944b60
MD5 f12494a3d289581a13d48314cfb8d67f
BLAKE2b-256 45d4c4697e1ac1fc0b90f479b8d8edb8bea86ff4c4f0d9fb0a2a37e3f07cb35a

See more details on using hashes here.

File details

Details for the file squeezy-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: squeezy-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for squeezy-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 648c46d966203d1ba71d001d8e9416a6f3c5e651ad08c3ba16abbd64d1a09149
MD5 84493658bad8959cb5ebaaa89d4735d0
BLAKE2b-256 cf1b9f6452ad9cb4fc8a9ebc2eb29ca8aacb06294deda92cccf13fa613021f17

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