Host: spotify_engine capability with librespot backend (opt-in build) #86

Closed
opened 2026-10-16 17:04:00 +02:00 by SBDeveloper · 1 comment
Owner

Part of #85

Add the spotify_engine host function for Source plugins: open the audio of a Spotify URI, for a credential and bitrate the plugin passes per call. Backed by embedded librespot crates behind a Cargo feature that is off in official releases; a separate, unofficial build turns it on. Returns passthrough Ogg via StreamInfo (format: Ogg).

See ADR 0020. Acceptance:

  • spotify_engine in plugin.toml capabilities, shown as its own consent line, refused before consent
  • time/memory limits and a cap on open engine streams per instance
  • a build without an engine runs; the plugin gets a clear "playback unavailable"
  • first verify the librespot crates embed cleanly as a library and build on Windows, macOS and Android
  • integration test with a fixture plugin
Part of #85 Add the `spotify_engine` host function for Source plugins: open the audio of a Spotify URI, for a credential and bitrate the plugin passes per call. Backed by embedded `librespot` crates behind a Cargo feature that is **off in official releases**; a separate, unofficial build turns it on. Returns passthrough Ogg via `StreamInfo` (`format: Ogg`). See ADR 0020. Acceptance: - `spotify_engine` in `plugin.toml` capabilities, shown as its own consent line, refused before consent - time/memory limits and a cap on open engine streams per instance - a build without an engine runs; the plugin gets a clear "playback unavailable" - first verify the librespot crates embed cleanly as a library and build on Windows, macOS and Android - integration test with a fixture plugin
SBDeveloper changed title from Host: spotify_engine capability embedding librespot to Host: spotify_engine capability with librespot backend (opt-in build) 2026-10-16 17:17:53 +02:00
Author
Owner

Implemented and merged on integration branch spec/85-spotify-source (not pushed yet). See merge commit 'Merge #86' in its history.

Implemented and merged on integration branch `spec/85-spotify-source` (not pushed yet). See merge commit 'Merge #86' in its history.
Sign in to join this conversation.
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
SBDeveloper/medley#86
No description provided.