Youtube channel search
Research topics inside a known YouTube channel without a YouTube Data API key. Use when the user provides a YouTube channel URL/handle and wants to find, rank, shortlist, or investigate videos relevant to a topic using channel metadata and optional transcript text.From its SKILL.md
npx -y skills add dedene/skills --skill youtube-channel-searchAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 13 stars13 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
2.9 KB, as published. Nobody here has run it
YouTube Channel Search
Search inside a known YouTube channel with a reproducible local workflow:
- Build a channel catalog with
yt-dlp. - Rank likely videos from metadata.
- Fetch transcripts only for the shortlist.
- Rank transcript text for the final answer.
Prefer this over browser automation. Use agent-browser only for manual UI checks or auth/consent fallbacks.
Quick Start
python3 <this-skill-dir>/scripts/youtube-channel-search.py catalog \
'https://www.youtube.com/@CHANNEL/videos' \
--output-dir /tmp/channel-research \
--mode flat \
--limit 300
python3 <this-skill-dir>/scripts/youtube-channel-search.py catalog \
'https://www.youtube.com/@CHANNEL/videos' \
--output-dir /tmp/channel-research \
--mode full \
--limit 140
python3 <this-skill-dir>/scripts/youtube-channel-search.py search \
/tmp/channel-research \
'landing pages storytelling websites' \
--since 2024-06-17 \
--top 20
python3 <this-skill-dir>/scripts/youtube-channel-search.py fetch-transcripts \
/tmp/channel-research \
'landing pages storytelling websites' \
--since 2024-06-17 \
--top 15
python3 <this-skill-dir>/scripts/youtube-channel-search.py rank-transcripts \
/tmp/channel-research \
'landing pages storytelling websites' \
--top 10
Workflow
- Start with
catalog --mode flatfor a fast title-only index. - Use
catalog --mode full --limit Nwhen dates/descriptions matter. Full mode is slower because it visits each video page, but it enables--sinceand better ranking. - Use
searchfor the metadata shortlist. This prints compact ranked results and storessearch-results.json. - Use
fetch-transcriptsonly for likely candidates. It calls the siblingyoutube-transcriptskill and writes transcript artifacts undertranscripts/. - Use
rank-transcriptsfor the final list. It readstranscript.txt, scores local content, and prints snippets.
Files
Default output directory:
channel-research/
├── catalog-flat.ndjson
├── catalog-full.ndjson
├── search-results.json
└── transcripts/
└── VIDEO_ID/
├── metadata.compact.json
├── transcript.json
├── transcript.md
└── transcript.txt
Notes
yt-dlpis required.- Date filters use
YYYY-MM-DDorYYYYMMDD. Records with no date are kept, not discarded, because flat catalogs usually omit upload dates. - The search ranking is lexical, not embedding-based. For broad conceptual research, fetch more transcripts and let the final agent reasoning judge the shortlist.
- Keep large channel artifacts in
/tmpunless the user asks to persist them in the repo.