summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorClaude <noreply@anthropic.com>2026-09-21 09:13:38 +0000
committerClaude <noreply@anthropic.com>2026-09-21 09:13:38 +0000
commit537b729b6837f48483e38d1a5fbe64f487a79a38 (patch)
treebd973e6e5f9d3bf2e631604ce3cdb5af0987c46a /config
parent881447309129e6c3972a3ae1c5dde239a34c5128 (diff)
Episode downloads, with the YouTube path kept separate
Two sources with no fallback between them. A YouTube subscription's media URL is a watch page, not audio: fetching it over plain HTTP would store an HTML document under an .mp3 name that fails to play with nothing to explain why. The subscription kind decides the route. Audio is written to a .part name and renamed only once complete. A truncated file recorded as DOWNLOADED plays as a cut-off episode and reads like the publisher's fault. On failure the partial is removed and localPath cleared, so a FAILED row never points at a file something downstream might try to play. A download recorded as complete whose file has since been deleted is fetched again rather than trusted, because otherwise playback fails on a file the database insists exists. File names are derived from the episode id with separators stripped. Ids come from feeds, and a guid containing a path separator would otherwise write outside the library directory. The Chaquopy-backed source sits behind an interface so the downloader's own logic stays testable off-device; nothing in the real source can run without an Android Python runtime. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018AwnALZL6bD4VBtATDVv3B
Diffstat (limited to 'config')
0 files changed, 0 insertions, 0 deletions