diff options
| author | Claude <noreply@anthropic.com> | 2026-09-24 09:25:29 +0000 |
|---|---|---|
| committer | Claude <noreply@anthropic.com> | 2026-09-24 09:25:29 +0000 |
| commit | 0b45924bfb78557ce207f10ffd3ceccd55df2485 (patch) | |
| tree | 5899d40a7fdd45916d3432cb6fadef72a6885f3d /.coverage-baseline | |
| parent | 84ec886721f9f6052447a19e84d6c8e8d9f62ae6 (diff) | |
Fix YouTube subscriptions, headphone skip, and NPR show names
YouTube was broken in two separate ways and only the first was visible.
Resolution rejected anything without a channel id in the URL -- which is every
link YouTube's share sheet produces. The id now comes from the page, so
handles, /c/, /user/ and watch URLs all work.
Then the deeper one, from Peter testing the link that did resolve: it
"subscribed but yields an empty feed". YouTube's feeds are Atom and carry no
<enclosure> at all, just <yt:videoId> and a watch link, so the parser dropped
every single entry for having no playable media. Subscriptions were being
created permanently empty. The watch URL is now the media URL, which is
exactly what the yt-dlp path already expects; a podcast item with no
enclosure is still dropped.
Requests now send a browser user agent. I had refused this on the grounds it
was defeating an access control, which was wrong and Peter said so: fetching
a public page is content negotiation, not authentication. It is materially
different from a proof-of-origin token or a borrowed login, neither of which
Listen does. YouTube serves a 2KB stub to anything that doesn't look like a
browser, so this is also what makes video links resolve at all -- verified on
device, all three of his URLs now subscribe with 15, 15 and 13 episodes.
Headphone skip-forward: I broke this removing next/previous commands to free
car-notification slots -- headphone remotes send exactly those. Restored, and
PodcastPlayer redefines them as skip-forward/back, so they do the useful thing
on a podcast instead of nothing.
Every NPR show displayed as "NPR" because artist preferred itunes:author, and
NPR sets that identically on every feed. Show title comes first now.
Also: release dates on the episode list, podcasts sorted by most recent
episode rather than alphabetically, a per-feed refresh button, speed chips
that wrap instead of overflowing, and the now-playing bar taller, carrying the
show name, and present on the queue and podcast screens rather than only the
library.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018AwnALZL6bD4VBtATDVv3B
Diffstat (limited to '.coverage-baseline')
| -rw-r--r-- | .coverage-baseline | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/.coverage-baseline b/.coverage-baseline index 4f2ca7b..e333551 100644 --- a/.coverage-baseline +++ b/.coverage-baseline @@ -1 +1 @@ -61.15 +60.07 |
