Install any skill in seconds. Free to start, no credit card required.
Get Started Free →YouTube transcripts to summaries, threads, blogs.
.claude/skills/nousresearch-youtube-content/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | -1% | 0% |
| case-16 | ✗→✓ | ▲ Improved | -31% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -30% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -24% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 71% | 0% |
Use when the user shares a YouTube URL or video link, asks to summarize a video, requests a transcript, or wants to extract and reformat content from any YouTube video. Transforms transcripts into structured content (chapters, summaries, threads, blog posts).
Extract transcripts from YouTube videos and convert them into useful formats.
Use uv so the dependency is installed into the same Hermes-managed environment that runs the helper script:
bashuv pip install youtube-transcript-api
SKILL_DIR is the directory containing this SKILL.md file. The script accepts any standard YouTube URL format, short links (youtu.be), shorts, embeds, live links, or a raw 11-character video ID.
bash# JSON output with metadata uv run python SKILL_DIR/scripts/fetch_transcript.py "https://youtube.com/watch?v=VIDEO_ID" # Plain text (good for piping into further processing) uv run python SKILL_DIR/scripts/fetch_transcript.py "URL" --text-only # With timestamps uv run python SKILL_DIR/scripts/fetch_transcript.py "URL" --timestamps # Specific language with fallback chain uv run python SKILL_DIR/scripts/fetch_transcript.py "URL" --language tr,en
After fetching the transcript, format it based on what the user asks for:
00:00 Introduction — host opens with the problem statement
03:45 Background — prior work and why existing solutions fall short
12:20 Core method — walkthrough of the proposed approach
24:10 Results — benchmark comparisons and key takeaways
31:55 Q&A — audience questions on scalability and next steps--text-only --timestamps via uv run python.--language to get any available transcript. If still empty, tell the user the video likely has transcripts disabled.--language to fetch any available transcript, then note the actual language to the user.uv pip install youtube-transcript-api and retry.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-09 | fail→pass | 5,616 | 1,585 | -72% | 1 | 1 | 0% | 1,036 | 1,022 | -1% | 0 | 0 | — |
case-15 | fail→fail | 2,097 | 4,227 | +102% | 1 | 1 | 0% | 349 | 979 | +181% | 0 | 0 | — |
case-16 | fail→pass | 7,544 | 1,762 | -77% | 1 | 1 | 0% | 1,446 | 1,004 | -31% | 0 | 0 | — |
case-01 | fail→fail | 8,214 | 5,390 | -34% | 1 | 1 | 0% | 1,687 | 1,020 | -40% | 0 | 0 | — |
case-02 | fail→fail | 2,508 | 4,304 | +72% | 1 | 1 | 0% | 430 | 1,022 | +138% | 0 | 0 | — |
case-03 | fail→fail | 14,470 | 4,296 | -70% | 1 | 1 | 0% | 2,288 | 991 | -57% | 0 | 0 | — |
case-04 | fail→fail | 5,750 | 4,917 | -14% | 1 | 1 | 0% | 995 | 1,071 | +8% | 0 | 0 | — |
case-05 | fail→pass | 8,654 | 2,011 | -77% | 1 | 1 | 0% | 1,633 | 1,138 | -30% | 0 | 0 | — |
case-06 | fail→pass | 9,802 | 6,375 | -35% | 1 | 1 | 0% | 2,028 | 1,539 | -24% | 0 | 0 | — |
case-07 | fail→fail | 6,007 | 4,566 | -24% | 1 | 1 | 0% | 1,249 | 1,064 | -15% | 0 | 0 | — |
case-08 | fail→pass | 3,886 | 3,029 | -22% | 1 | 1 | 0% | 839 | 1,432 | +71% | 0 | 0 | — |
case-10 | fail→pass | 5,185 | 1,706 | -67% | 1 | 1 | 0% | 918 | 1,085 | +18% | 0 | 0 | — |
case-11 | pass→pass | 10,160 | 2,725 | -73% | 1 | 1 | 0% | 1,844 | 1,346 | -27% | 0 | 0 | — |
case-12 | pass→pass | 7,977 | 1,995 | -75% | 1 | 1 | 0% | 1,580 | 1,115 | -29% | 0 | 0 | — |
case-13 | fail→fail | 8,860 | 1,845 | -79% | 1 | 1 | 0% | 1,934 | 1,066 | -45% | 0 | 0 | — |
case-14 | fail→fail | 7,702 | 4,361 | -43% | 1 | 1 | 0% | 1,259 | 1,079 | -14% | 0 | 0 | — |
case-17 | fail→pass | 5,636 | 1,475 | -74% | 1 | 1 | 0% | 934 | 991 | +6% | 0 | 0 | — |
case-18 | fail→fail | 2,836 | 4,448 | +57% | 1 | 1 | 0% | 477 | 994 | +108% | 0 | 0 | — |
case-19 | fail→fail | 6,682 | 4,873 | -27% | 1 | 1 | 0% | 1,250 | 983 | -21% | 0 | 0 | — |
case-20 | pass→pass | 6,025 | 20,422 | +239% | 1 | 1 | 0% | 1,027 | 4,694 | +357% | 0 | 0 | — |
case-21 | pass→pass | 5,696 | 3,058 | -46% | 1 | 1 | 0% | 1,160 | 1,278 | +10% | 0 | 0 | — |
case-22 | fail→fail | 12,414 | 10,424 | -16% | 1 | 1 | 0% | 2,127 | 2,413 | +13% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 13 counted toward the lift figure. The other 9 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +32 percentage points is the difference between those two pass rates over the 13 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/7/2026 | +14% |
Other measured skills in the registry, with their headline benchmark lift.