soulsync/core/video
BoulderBadgeDad bbf7abad1b video discover: wire Netflix-class TMDB filters (keywords/studio/network/cast/runtime/cert/release-window + daily trending)
Foundation for the best-in-class discover build. All additive — existing callers unaffected:
- clients.discover() gains keywords (mood/theme), companies (studio), networks (TV), cast/crew
  (people), min/max_runtime, certification (+country), vote_count_min override, and release_window
  ('last_30/90/365', computed date ranges) — each mapped to the right TMDB /discover param + gated
  to movie/tv where TMDB requires.
- engine.discover_filter() threads them through + into the cache key.
- engine.trending(window) adds the real-time 'day' chart (cache keyed by window) for a Top 10 row.
- /discover/list parses the new query params and a key=trending_today shortcut.

py_compile + ruff clean. Frontend rails (Top 10, mood, studio, new&upcoming, quick-watches) next.
2026-06-23 23:45:41 -07:00
..
enrichment video discover: wire Netflix-class TMDB filters (keywords/studio/network/cast/runtime/cert/release-window + daily trending) 2026-06-23 23:45:41 -07:00
__init__.py
discovery_gaps.py video discover phase 1a: pure gap-engine core (collection + filmography diffs) 2026-06-22 23:26:04 -07:00
discovery_recs.py video discover phase 2: blended 'Recommended for you' wall 2026-06-23 00:05:26 -07:00
download_config.py
download_events.py video automations: post-download scan chain (parity with music's batch→scan→update) 2026-06-20 14:47:00 -07:00
download_monitor.py Video download history: permanent archive snapshotted at terminal status (phase 1) 2026-06-21 14:10:22 -07:00
download_pipeline.py video downloads pipeline: data + pure logic foundation 2026-06-19 14:50:27 -07:00
importer.py Video downloads: best-in-class post-process pipeline 2026-06-21 01:44:35 -07:00
library_paths.py Video downloads: best-in-class post-process pipeline 2026-06-21 01:44:35 -07:00
mediainfo.py Video downloads: best-in-class post-process pipeline 2026-06-21 01:44:35 -07:00
mock_search.py
organization.py Video downloads: best-in-class post-process pipeline 2026-06-21 01:44:35 -07:00
quality_eval.py Video quality: recognize plain WEB + accept resolution-only releases 2026-06-21 02:11:40 -07:00
quality_profile.py
release_parse.py Video quality: recognize plain WEB + accept resolution-only releases 2026-06-21 02:11:40 -07:00
retry.py video downloads Phase C: auto-retry + alternate-query requery 2026-06-19 17:12:44 -07:00
scanner.py Video: two system deep-scan automations (Movie + TV), independently scoped 2026-06-21 12:14:46 -07:00
sidecars.py Video downloads: best-in-class post-process pipeline 2026-06-21 01:44:35 -07:00
slskd_download.py video downloads Phase A: cancelled state, cancel/retry, monitor robustness 2026-06-19 15:31:51 -07:00
slskd_search.py video search: poll the FULL slskd timeout (~60s) + explain audio-only results 2026-06-19 16:55:53 -07:00
sources.py Smart post-download scan: skip the crawl when the server already has the grab (phase 3) 2026-06-21 14:20:49 -07:00
subtitles.py Video downloads: best-in-class post-process pipeline 2026-06-21 01:44:35 -07:00
youtube.py fix: don't pass the 'custom' cookies sentinel to yt-dlp (unsupported browser error) 2026-06-22 23:41:37 -07:00
youtube_enrichment.py
youtube_quality.py