Self-hosted web interface and downloader for Qobuz.

feat(playlist): add playlist service and sidecar cover generation #21

Open glerp.sullen.net
targeting main from glerp.sullen.net/gobuz:feat/playlist-service
Open opened by and assigned to glerp.sullen.net
targeting main from glerp.sullen.net/gobuz:feat/playlist-service

Summary #

  • Add playlist.Service (Preview, Import, OnScan, List, Get, Delete, ReadCover) to orchestrate playlist preview/import, stage missing Qobuz releases on the user download queue, maintain in-memory pending playlists until the download queue drains, and write per-user M3U files and sidecar .jpg covers once settled.
  • Add playlist.ParsePlaylistKey and key the preview cache by canonical resource ID (spotify:<id> / listenbrainz:<uuid>) so Preview followed by Import reuses the resolved playlist without re-querying MusicBrainz or Qobuz.
  • Update queue.UserQueue to invoke onComplete once when the download queue drains rather than after every individual release download, and allow re-staging terminal (StatusFailed / StatusDone) items.
Commits 0