Skip to content
Back to skills

Youtube Transcripter

ASecurity

Extract a YouTube video transcript from a URL and summarize it into important content, learnings, and suggestions. Use when the user provides a YouTube link and wants a clean transcript and structured notes without timestamps, with fallback extraction methods if the primary tool is unavailable.

  • 57 stars
  • 0 votes
  • 3 copies
  • 6 views
  • Added October 17, 2026
developmentjavascriptpythonjavashellbashapi

Works with

  • api

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned October 17, 2026

npx -y skills add diegosouzapw/awesome-omni-skill --skill youtube-transcripter --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Youtube Transcripter?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Youtube Transcripter
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/diegosouzapw-youtube-transcripter/badge)](https://www.skillsdirectory.com/skills/diegosouzapw-youtube-transcripter)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: youtube-transcripter
description: Extract a YouTube video transcript from a URL and summarize it into important content, learnings, and suggestions. Use when the user provides a YouTube link and wants a clean transcript and structured notes without timestamps, with fallback extraction methods if the primary tool is unavailable.
---

# Youtube Transcripter

## Overview

Extract a transcript from a YouTube URL and produce a concise, structured summary focused on key content, learnings, and actionable suggestions.

## Workflow

### 1) Confirm input

- Require a YouTube URL or video ID. Multiple inputs are allowed.
- Assume no timestamps unless the user explicitly asks.
- Default language is auto-detected; ask only if a specific language is required.

### 2) First-time setup (one-time)

Make sure at least one transcript extractor is installed. Prefer `yt-dlp`:

```bash
choco install yt-dlp -y
```

If Chocolatey is not available or not elevated, use pip:

```bash
python -m pip install yt-dlp
```

Optional (API-based):

```bash
python -m pip install youtube-transcript-api
```

### 3) Extract transcript (best-effort with fallback)

Preferred: run the bundled script:

```bash
python scripts/get_transcript.py "https://www.youtube.com/watch?v=VIDEO_ID"
```

Multiple inputs (URLs or IDs) into a folder:

```bash
python scripts/get_transcript.py VIDEO_ID_1 "https://youtu.be/VIDEO_ID_2" --out-dir transcripts
```

Notes:
- `--out` is only for single input.
- `--out-dir` writes `transcript_<id>.txt` for each input. Default is `transcripts/`.
- `--wrap 125` reflows lines to 125 chars; use `--wrap 0` to keep raw line breaks.

To force a language:

```bash
python scripts/get_transcript.py "https://www.youtube.com/watch?v=VIDEO_ID" --lang en --out transcript_VIDEO_ID.txt
```

Fallback order if the script fails:

1) Install `yt-dlp` (prefer Chocolatey if available)

Check:
```bash
choco -v
```

If Chocolatey is available, install (requires admin shell):
```bash
choco install yt-dlp -y
```

If Chocolatey is not available or not elevated, use pip:
```bash
python -m pip install yt-dlp
```

2) `yt-dlp` with auto captions (binary or Python module)
```bash
yt-dlp --skip-download --write-auto-sub --sub-lang en --sub-format vtt "https://www.youtube.com/watch?v=VIDEO_ID"
```
Then strip timestamps and cue markers from the `.vtt` file.

3) If tools are unavailable, ask the user for the transcript text or a downloaded caption file.

### 4) Capture metadata (title + channel)

If `yt-dlp` is available, fetch title and channel:

```bash
yt-dlp --print "%(title)s|%(channel)s|%(uploader)s" "https://www.youtube.com/watch?v=VIDEO_ID"
```

PowerShell-safe quoting:

```powershell
yt-dlp --print '%(title)s|%(channel)s|%(uploader)s' "https://www.youtube.com/watch?v=VIDEO_ID"
```

If tools are unavailable, ask the user for the video title and channel name.
If `yt-dlp` warns about missing JavaScript runtime, note that it may omit some fields; use `channel` if `uploader` is missing.

### 5) Summarize and structure notes

Always save the structured summary to a file for agent-friendly reading, e.g. `transcript_summary.md` in the working directory. Keep the raw transcript as `transcript.txt`.
Always keep raw transcripts in `transcripts/` and save summaries in the working directory.
For multiple videos, include the YouTube ID in filenames: `transcript_<id>.txt` and `transcript_summary_<id>.md`.
Write files as UTF-8 to preserve umlauts and other non-ASCII characters.
Do not paste the full summary into chat; confirm file paths only.

Use this output template. Keep it tight and information-dense.

```markdown
# Title
Channel: <channel name>
URL: <youtube url>
Video ID: <id>

## Summary
- 3-6 bullets capturing the core message

## Key Points
- ...

## Learnings
- ...

## Suggestions / Recommendations
- ...

## Action Items (optional)
- ...

## Open Questions (optional)
- ...
```

## Quality checks

- Remove filler, intros, sponsor reads, and repeated segments.
- Preserve important claims, stats, or steps.
- If advice is speculative, label it as such.
- Keep language plain and direct.
- If you hit HTTP 429 (rate limit), wait and retry later or switch to a different network/IP; changing language rarely resolves rate limits.

## Resources

### scripts/

- `scripts/get_transcript.py` extracts transcripts for one or more URLs/IDs via `youtube-transcript-api` with `yt-dlp` binary or Python module fallback.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.