A DVR for YouTube subscriptions, laid out so Jellyfin presents each channel as a show and each video as an episode. Cron-driven, idempotent, with a public admin UI for a non-operator. Verified end to end on susan against three real channels: PO tokens, h264 downloads, Jellyfin resolution from local NFOs with all providers disabled, retention and tombstones. Corrections to the original design handover (specs.md documents each with the evidence, and specs.handover-original.md preserves the original): - The format sort selected 360p. Ranking acodec above res makes `bv*` prefer the combined 360p stream, which carries AAC, over the 720p video-only stream whose acodec is none. vcodec now leads, so a video without h264 at 720p yields h264 lower down rather than VP9 this hardware cannot transcode. - yt-dlp now requires a JS runtime and the yt-dlp-ejs solver scripts, which only ship with the [default] extra. Without them the n challenge fails and the mweb formats disappear entirely. - --flat-playlist carries no upload dates, so the specced client-side date filter for backfill was impossible. Backfill is RSS-first. - skipped_old was terminal, so raising a channel's retention appeared to do nothing. Added an explicit rescan. - is_upcoming premieres now defer and retry instead of being skipped forever. - TubeArchivist is gone, so the media root and the tube.jihakuz.xyz vhost were both reclaimed; the latter still pointed at its dead port. 240 offline tests, no network and no real yt-dlp invocation. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
38 lines
1.4 KiB
XML
38 lines
1.4 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<feed xmlns:yt="http://www.youtube.com/xml/schemas/2015"
|
|
xmlns:media="http://search.yahoo.com/mrss/"
|
|
xmlns="http://www.w3.org/2005/Atom">
|
|
<id>yt:playlist:UULFW7jUEpYT_t0Gsf632d6_wQ</id>
|
|
<title>Uploads from clabretro</title>
|
|
<entry>
|
|
<id>yt:video:08Ajr5fP52I</id>
|
|
<yt:videoId>08Ajr5fP52I</yt:videoId>
|
|
<yt:channelId>UCW7jUEpYT_t0Gsf632d6_wQ</yt:channelId>
|
|
<title>Learning to Design 3D Prints</title>
|
|
<published>2026-08-07T15:00:11+00:00</published>
|
|
<media:group>
|
|
<media:description>Tinkercad & a cheap printer. Part 1/3 <of a series>.</media:description>
|
|
</media:group>
|
|
</entry>
|
|
<entry>
|
|
<id>yt:video:8k8nAQq0s_s</id>
|
|
<yt:videoId>8k8nAQq0s_s</yt:videoId>
|
|
<yt:channelId>UCW7jUEpYT_t0Gsf632d6_wQ</yt:channelId>
|
|
<title>Trying to use a Nortel PBX: part two</title>
|
|
<published>2026-08-02T14:30:00+00:00</published>
|
|
<media:group>
|
|
<media:description>Telephony experiments.</media:description>
|
|
</media:group>
|
|
</entry>
|
|
<entry>
|
|
<id>yt:video:vcYYcQyecNQ</id>
|
|
<yt:videoId>vcYYcQyecNQ</yt:videoId>
|
|
<yt:channelId>UCW7jUEpYT_t0Gsf632d6_wQ</yt:channelId>
|
|
<title>IBM Director on an xSeries 346 from 2004</title>
|
|
<published>2026-06-17T12:00:00+00:00</published>
|
|
<media:group>
|
|
<media:description>Old enterprise management software.</media:description>
|
|
</media:group>
|
|
</entry>
|
|
</feed>
|