Summary
Add first-class support for Spotify's spoken-audio catalog: podcasts, episodes, audiobooks, and chapters.
The experience should include:
- Searching for shows, episodes, and audiobooks
- Browsing saved shows, saved episodes, and saved audiobooks
- Drilling from a show into its episodes
- Drilling from an audiobook into its chapters
- Showing useful spoken-audio metadata such as release date, description, duration, played state, and resume position when available
- Playing, queueing, saving, and unsaving supported items through the same action model used by music
Why
The playback model already recognizes episodes, but users cannot meaningfully discover or browse spoken audio. Treating these as proper content types makes the app reflect more of a user's actual Spotify library and avoids forcing episode playback to begin elsewhere.
Important behavior
- Respect market availability, explicit-content restrictions, and
is_playable rather than assuming every returned item can play.
- Preserve episode and chapter resume information in the UI where Spotify provides it.
- Validate native playback support for episode and chapter URIs. Unsupported content should remain browsable and fail clearly instead of destabilizing the local receiver.
- Keep shows, episodes, audiobooks, and chapters distinct in metadata and navigation; do not force them into track/album semantics.
- Paginate long episode and chapter lists rather than fetching an entire catalog up front.
- Audiobooks are only available in selected markets, so an empty or unavailable audiobook section should not be treated as an account failure.
Out of scope
- Downloading or offline playback
- Podcast transcripts
- Treating lyrics as episode transcripts
- Local listening-history and statistics features
References
Summary
Add first-class support for Spotify's spoken-audio catalog: podcasts, episodes, audiobooks, and chapters.
The experience should include:
Why
The playback model already recognizes episodes, but users cannot meaningfully discover or browse spoken audio. Treating these as proper content types makes the app reflect more of a user's actual Spotify library and avoids forcing episode playback to begin elsewhere.
Important behavior
is_playablerather than assuming every returned item can play.Out of scope
References