Listen Later — LMS Plugin

A plugin for Lyrion Music Server (LMS) that lets you save an album, an individual track, a curated playlist or a streaming-service podcast episode — from your local library or a streaming service (Qobuz, Tidal, Bandcamp, Deezer, Spotify) — into a curated list, browse it like a playlist, and have things move to a Played section once you've heard them. A separate Wish List sits alongside for things you mean to buy, and items move freely between the three lists.

v1.0.0 LMS 9.0.0+ Material Skin Library + Streaming
Download latest Installation

Features at a glance

Add from the "…" menu

Add to Listen Later and Add to Wish List on any album or track

Needs: nothing

Albums, tracks, playlists or podcasts

Save a whole release, a single track, a curated playlist, or a podcast episode

Needs: nothing

Knows what it saved

Each row is marked Album, EP, Single, Track, Playlist or Podcast

Needs: nothing

Three lists

Listen Later, Wish List and Played, each with a live count and icon

Needs: nothing

Plays from the original source

Library albums play locally; streaming albums replay through their service

Needs: The matching service plugin

Automatic Played tracking

A saved item moves to Played once you've heard most of it — from the list or anywhere

Needs: nothing

Move & remove

Move an album between any two lists, or remove it, from the row's "…" menu

Needs: Material Skin

Buy on Bandcamp

Opens a Bandcamp album's purchase page in your browser

Needs: Bandcamp plugin

Auto-tidy Played

Played albums clear themselves after a set number of days

Needs: nothing

Material home shelf

A scrollable Listen Later row on the home screen

Needs: Material Skin

Sorting

Recently added / Artist / Album / Year / Recently played

Needs: nothing

Requirements

Every streaming integration is optional and degrades gracefully — if a service plugin isn't present, albums from it simply can't be replayed.

Installation

Via repository (recommended). In LMS go to Settings → Plugins → Additional Repositories and add:

https://simonarnold002.github.io/LMS-Listen-to-Later/repo.xml

Then install Listen Later from the plugin list and restart.

Manual. Download ListenLater.zip from the repository, unzip it into your LMS Plugins/ directory so it sits as Plugins/ListenLater/, and restart:

sudo rm -rf /var/lib/squeezeboxserver/Plugins/ListenLater
sudo unzip ListenLater.zip -d /var/lib/squeezeboxserver/Plugins/
sudo chown -R squeezeboxserver:nogroup /var/lib/squeezeboxserver/Plugins/ListenLater
sudo systemctl restart lyrionmusicserver

Quick start

  1. Browse to any album or track in your library or a streaming service, or to a podcast episode in Deezer or Spotify.
  2. Open its "…" menu and choose Add to Listen Later (or Add to Wish List).
  3. Open Apps → Listen Later to see your lists. Tap a row to play it.
  4. Play most of it and it moves itself to Played.

Using it

Adding things

Add to Listen Later and Add to Wish List appear in the "…" context menu of albums and tracks — local library and streaming alike. Adding something that's already saved (in any list) does nothing, so an accidental tap can't disturb your lists or bounce a Played item back.

The menu wording is the same everywhere, because the row you're on already tells you what you're saving: an album row saves the album, a track row saves that track. The one exception is Material's Now Playing screen, where there's no surrounding list to make it obvious — there the menu says Add track to Listen Later, and Add album to Listen Later sits in "… → More" if you want the whole release instead.

Albums, tracks, playlists and podcasts

Each saved row is labelled with what it is on the line beneath the title, which carries a small glyph — for a multi-track release, for a single track, for a playlist, for a podcast episode — followed by the type and the source, e.g. ♫ Album · Qobuz. The title line stays a plain Artist – Album (Year):

Saving a streaming single stores it as the Single release rather than a loose track, so adding "the single" and "the track" can't leave you with two rows for the same recording.

Playlists

A curated or service playlist — a Qobuz or Deezer editorial list, a TIDAL or Spotify playlist — can be saved whole, from its "…" menu like anything else. It's stored as a playlist rather than as its tracks, so it stays live: open it later and you get whatever the playlist holds now, replayed through the service it came from. Needs the matching plugin installed: Qobuz, TIDAL, Deezer or Spotify (via Spotty).

Playlists end up under the same two rules as podcast episodes, for the same reason — a playlist isn't a release you buy, and it isn't a fixed thing you can finish:

**One kind that can't be saved as a playlist: a Qobuz personal playlist with no cover of its own.** Qobuz gives those a constituent track's album art and no identifiable link, which makes them indistinguishable from an album row — so they're saved the way they always were rather than as a playlist. Editorial Qobuz playlists, which have their own artwork, are fine.

Podcasts

Podcast episodes from Deezer and Spotify can be saved to Listen Later. Add one from its "…" menu just like anything else. Both services identify the episode from its own play link:

Source How an episode is saved Shown in your list as
DeezerSaved directly from its own play linkPodcast · Deezer
Spotify (via Spotty)Saved directly from its own play linkPodcast · Spotify

A Deezer or Spotify episode shows its show name only sometimes: the browse row those services hand over carries just the episode title and a description, so the show has to come from the service's own metadata cache — which is filled if you reached the episode by browsing its show, and empty if you didn't. Either way the episode saves, plays and marks itself Played exactly the same; it's only the subtitle that may be shorter.

Qobuz, Tidal and Bandcamp have no podcasts, so there's nothing to save there.

A Deezer or Spotify episode plays through that service, exactly as it would if you'd started it from the service's own menu.

There's no Add to Wish List for a podcast — you don't buy podcast episodes. This holds for both services. The entry can still appear over an episode, because Material builds a menu per surface rather than per row: in a mixed list such as Favourites, and on a Deezer or Spotify episode browsed inside that service's own app. Pressing it saves the episode to Listen Later instead, and the confirmation says so; Move to Wish List isn't offered on the saved row either.

Whole shows can't be saved — only episodes. A podcast series isn't a release: it has no end, and it changes under you, so "have you finished it" has no answer. Adding a show rather than an episode is refused on Deezer and Spotify alike.

The three lists

Open Apps → Listen Later and you'll see one page with three headed sections, each showing a live count:

Moving & removing

Each album row's "… → More" menu offers Move to … for the two lists it isn't in, plus Remove from list. The list refreshes in place.

Playing

Tap an album to play it. Library albums play from your library; streaming albums replay through the service they came from (falling back to that service's own search if the original reference is gone).

Buy on Bandcamp

For a Bandcamp album, the "… → More" menu has Buy on Bandcamp, which opens the album's Bandcamp page in your browser. The page link is found on first use and cached; if the exact page can't be matched it falls back to a Bandcamp search.

Automatic Played tracking

With Automatically move albums to Played on (the default), a Listen Later item moves to Played once you've heard most of it — whether you started playback from the list or anywhere else (Material, the app, a streaming page). Only Listen Later items are watched; Wish List items are left alone.

Material home shelf

On the Material Skin home screen you can show a horizontal Listen Later row of your saved albums, each playable/tappable. It uses Material's standard home-extra mechanism (no skin patching). If it isn't shown, enable it under Material's home-screen customisation.

Sorting

A single Default sort order applies to all three lists: Recently added, Artist, Album, Year, or Recently played.

A note on release years. Albums from your own library and from Qobuz or Spotify carry their year, as do any added through ListenBrainz New Releases or Pitchfork Reviews. Albums added straight from Tidal, Deezer or Bandcamp don't: those plugins hand over a release's track listing rather than its details, so there's no date to read. Adding the same release through one of the companion plugins gets you the year. It's worth having where it's available — the year is part of how a duplicate is recognised, so two copies of an album saved with and without one aren't spotted as the same record.

Settings reference

Open Settings → Advanced → Listen Later (also linked as Plugin Settings at the top of the plugin's page).

Setting What it does Default
Default sort orderOrdering for all three listsRecently added
Automatically move albums to PlayedMaster switch for auto-markingOn
Played thresholdPercent of an album's tracks that must play before it's Played — used whenever the number of tracks is known (your library, and any streaming release that's been looked up). Rounds down, and never below two tracks for a multi-track release90%
Streaming track countFallback for a streaming release whose length couldn't be measured: distinct tracks before it's Played4
Auto-remove played albums afterDays a Played album is kept before being removed (0 = keep forever). Re-playing it resets the clock7
Add to Material context menusAdds the Add to Listen Later / Add to Wish List entries to Material's menus (takes effect after a restart)On

Notes & limitations