Mopidy-Songhive
Mopidy extension for playing music from a Songhive instance.
Features
- Browse libraries, playlists, artists, albums, genres and tags
- Followed podcasts exposed in their own folder, one sub-folder per show; episodes stream straight from the source enclosure URL
- Favorite tracks exposed as a browsable folder
- Full text search across tracks, albums and artists (plus cached federated objects)
- Playlist editing: create, delete, rename, add/remove/reorder tracks
- Streams through Songhive's
/api/v1/stream/{track_id}endpoint, including optional server-side transcoding - Federated content: remote objects resolve and play through the instance's remote lookup
- Direct URL lookup — paste any Songhive or federated URL prefixed with
songhive:(e.g.songhive:https://music.example.com/tracks/abc123) - Track metadata is cached on disk and seeded straight from collection listings, so queueing a browsed album, playlist or podcast needs no extra requests; metadata is re-fetched when a track plays to stay fresh, and the remaining lookups run concurrently
Requirements
- Mopidy >= 4.0
- Python >= 3.9
Installation
Install by running:
pip install mopidy-songhive
Or install the development version:
pip install -e .
Configuration
Add the extension to your mopidy.conf:
[songhive]
enabled = true
hostname = https://music.example.com
api_token = <your api token>
api_token is optional: without it the extension runs anonymously and
only sees public content; playlists and favorites become read-only.
Create a token on the Songhive web interface under Settings → API
tokens. Tokens are sent as Authorization: Bearer headers and, for
audio streaming, injected into GStreamer's HTTP source — they are only
ever sent to the configured hostname.
Additional options:
# Comma-separated allowlist of library names to show (default: all)
libraries = Music, Audiobooks
# Format for displaying album names (default: {title})
album_format = {title} ({release_year})
# Optional server-side transcoding for streams
transcode_format = opus # mp3|ogg|flac|aac|opus
transcode_bitrate = 128 # kbps
URI scheme
songhive:track:123, songhive:album:123, songhive:artist:123,
songhive:playlist:123, songhive:library:123,
songhive:genre:rock, songhive:tag:favorites,
songhive:podcast:123 / songhive:podcast_episode:123 for podcasts,
songhive:remote:<object_id> for federated content, and
songhive:<http(s) url> for direct URL lookups.
Metadata
Release files for Mopidy-Songhive 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mopidy_songhive-0.1.4.tar.gz | 37.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mopidy_songhive-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 68.5 kB
Release files / mopidy_songhive-0.1.4.tar.gz
| Download URL | mopidy_songhive-0.1.4.tar.gz |
|---|---|
| Size | 37.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1a37ad4411282cadf039a5ed49d47d0fd74558a886c2e8ebb12ae03be7e617e1
|
|
BLAKE2b-256 checksum How to use checksums |
3843d826b4139b91352f072cf9a7209c40eb5ef351e08f94050224a16b842a60
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.14.7
|
Release files / mopidy_songhive-0.1.4-py3-none-any.whl
| Download URL | mopidy_songhive-0.1.4-py3-none-any.whl |
|---|---|
| Size | 30.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fd8f2259cd2359f6f8c534343b9cba811d4b232016d9493ffaf4e05950399919
|
|
BLAKE2b-256 checksum How to use checksums |
95132f9a81eef739adbe78fc1cd1bfe723c791b42dd49d03db02ec811ee7fade
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.14.7
|