diff --git a/docs/podcasts.md b/docs/podcasts.md index 10cb7b3..1ba4193 100644 --- a/docs/podcasts.md +++ b/docs/podcasts.md @@ -92,6 +92,32 @@ One controlled step out (Apple's episode search and fyyd; no key): Show search stays on Apple (best coverage). +## Podcast-Radio (planned 2026-10-25) + +Listening without committing: one button plays the Strom like a station. + +- **The rule**: the radio always plays the **newest** (publication date) Strom episode that is + neither played, nor started (normally), nor done for the radio. So an episode that comes out + while one plays is next (the one playing isn't interrupted); otherwise it goes back in time, + without limit. Auf Abruf podcasts and audiobooks aren't in the Strom, so not in the radio. +- **Leaves no trace**: no progress (no Verlauf, no "Angefangen", no played mark, not counted in + `heard_365`), the Wiedergabeliste and Merkliste unchanged, nothing downloaded (it streams; a + downloaded file plays if there is one), the Strom's marks unchanged. +- **Done for the radio**: run to its end or skipped (⏭, notification, headset, car). Pausing + isn't: the radio keeps its episode and place for itself, ▶ goes on there. +- **Committing**: in the player while the radio plays, + (Merkliste) and "Normal weiterhören" + (first in the Wiedergabeliste at the current place; from then on it plays as usual, with + progress). Playing anything normally switches the radio off (as an audiobook does). +- **Server**: `PodcastRadioHeard(user, episode, at)`, kept apart from progress, pruned after 60 + days. `GET /podcasts/radio/?limit=5` → the next episodes by the rule (`{episodes: [...]}`, the + rows of the episode lists); `POST /podcasts/radio/heard/ {"episode_id"}`. Shared by all devices. +- **Clients** (both at once): Android (`PodcastRadio.kt` beside `BookPlay.kt`: the playlist is + [current, next]; RadioService's `save()` / `markPlayed()` / `followQueue()` leave radio items + alone; reloads before each transition and every 10 minutes while playing — the server fetches + feeds every 15 minutes) and the web player (`podcasts-web.js`, so the browser and the desktop + app). Button "📻 Radio" at the top of the Strom; the mini player's ▶ goes on with the radio. +- Later perhaps: a radio of one folder, a longest length. + ## Moving over - Today's queue (74) becomes the Merkliste; the Wiedergabeliste starts empty.