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.3
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.3.tar.gz | 37.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mopidy_songhive-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 68.5 kB
Release files / mopidy_songhive-0.1.3.tar.gz
| Download URL | mopidy_songhive-0.1.3.tar.gz |
|---|---|
| Size | 37.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5c4a479da8d49071255152c3c4b0a4797ff250af1826e378e7a455b4ec562c2e
|
|
BLAKE2b-256 checksum How to use checksums |
b8f2aebb27435d2f9b438e0b4c026c89ded6b4d10356df2b2095216f4b8ad121
|
| 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.3-py3-none-any.whl
| Download URL | mopidy_songhive-0.1.3-py3-none-any.whl |
|---|---|
| Size | 30.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
af73f003fa09b68ba2d15b27320ec7aa746d4530204e69bbbc797b7bd8589f49
|
|
BLAKE2b-256 checksum How to use checksums |
15fd0c3a133b25e3f6ded23cbf943f839735fb1728949d05aa743e28f876745b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.14.7
|