diff options
| author | Claude <noreply@anthropic.com> | 2026-09-25 08:13:12 +0000 |
|---|---|---|
| committer | Claude <noreply@anthropic.com> | 2026-09-25 08:13:12 +0000 |
| commit | d9585c40e7f3b6de8b5f0c37e27edec49d565aa8 (patch) | |
| tree | 2b9469f6f8fa8442eb54bee8c31135292f60f71e /.gitignore | |
| parent | 8dc3cbc4569d384c1689c3f9823e40d4f8a277be (diff) | |
Add single videos, make the whole episode row tappable, stamp the build
Sharing a YouTube video now adds that one video rather than subscribing to its
channel -- sharing something interesting is not a request to follow everything
the channel ever posts. They land in one "Saved videos" container instead of a
subscription each, which would otherwise fill the library with entries that
will never publish again. Title, artwork and duration come off the watch page
we already fetch, so adding needs no extractor.
Only the episode title was tappable, which is too fine a target: Peter tapped
the row, nothing happened, and reasonably concluded the details screen wasn't
there. The whole row opens it now.
Settings shows the commit and build time. A cached browser download and a
failed publish look identical from the outside, and "is this the new build?"
had no answer that did not amount to trusting me. publish-apk writes a
companion .txt with the hash for the same reason.
Metadata is entity-decoded. A YouTube thumbnail URL carries query parameters
and the raw attribute encodes the separators as &, so the artwork simply
failed to load -- spotted in the real resolved output rather than by a test.
YouTube URL handling moved to its own YouTubeUrls object. Channel, playlist,
handle and watch URLs each need different treatment and two only resolve by
reading the page; that is its own concern, not a corner of the general
resolver.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018AwnALZL6bD4VBtATDVv3B
Diffstat (limited to '.gitignore')
0 files changed, 0 insertions, 0 deletions
