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. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| calendar.py | ||
| dashboard.py | ||
| detail.py | ||
| discover.py | ||
| enrichment.py | ||
| libraries.py | ||
| library.py | ||
| poster.py | ||
| scan.py | ||
| search.py | ||
| watchlist.py | ||
| wishlist.py | ||
| youtube.py | ||