Flat listing has no upload dates, so channels showed one 'All Videos' season. Now real year-seasons, filled from cheap sources and cached so they grow: - core: parse_rss_dates / channel_recent_dates — one public RSS GET dates the ~15 most-recent uploads (no yt-dlp, no bot risk). - db: youtube_video_dates cache table + cache_video_dates / get_video_dates. - /youtube/channel merges cached + RSS dates onto the flat videos (year-seasons) and caches what it learns; /youtube/video caches each fetched date too — so expanding/wishing videos progressively fills the catalog's years, instant on repeat. Dateless tail groups as 'Earlier videos'. Missing-only toggle hidden for channels. 84 db + 84 youtube/api tests green. Full day-one coverage still needs the YouTube Data API's publishedAt (optional, yt-dlp can't match it cheaply) — RSS + cache is the no-key best.
563 KiB
2941x1348px
563 KiB
2941x1348px