feat(podcasts): add YouTube podcast source with transcript-first discovery
New "podcasts" source that discovers podcast content by scanning transcripts from LLM-resolved YouTube channels. Finds content invisible to title-based search — Acquired's "The NFL" episode mentions Taylor Swift 18x, ESPN 117x, Netflix 102x, none in the title. Architecture: - LLM resolves 6-12 podcast channel @handles per topic - Engine fetches recent episodes via yt-dlp (no video download) - Downloads auto-captions and greps for topic keywords - Episodes with 5+ mentions become podcast results with highlights - Runs in parallel, ~15-20s latency, invisible in 3-min research run Pipeline integration: - New source module: scripts/lib/podcast_yt.py - Registered in pipeline, normalizer, signals, planner, render - CLI flag: --podcast-channels=AcquiredFM,lexfridman,... - SOURCE_QUALITY: 0.88 (above YouTube's 0.85) - Opt-in via INCLUDE_SOURCES=podcasts or --search=podcasts Zero new API keys. Zero new dependencies. Reuses yt-dlp + transcript pipeline. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -53,6 +53,7 @@ def normalize_source_items(
|
||||
"xiaohongshu": _normalize_grounding,
|
||||
"github": _normalize_github,
|
||||
"perplexity": _normalize_grounding,
|
||||
"podcasts": lambda s, i, idx, fd, td: _normalize_youtube(s, i, idx, fd, td),
|
||||
}
|
||||
normalizer = normalizers.get(source)
|
||||
if normalizer is None:
|
||||
|
||||
Reference in New Issue
Block a user