Skip to main content
ClaudeWave
Skill1.6k repo starsupdated 1mo ago

youtube-transcribe-skill

The youtube-transcribe-skill extracts subtitles and transcripts from YouTube videos by URL, supporting multiple formats including youtube.com/watch?v=, youtu.be/, and YouTube Shorts. Use this skill when you need to obtain text transcripts from video content, either through command-line tools like yt-dlp for quick extraction or browser automation as a fallback method, with support for multiple subtitle languages including Chinese and English.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/feiskyer/claude-code-settings /tmp/youtube-transcribe-skill && cp -r /tmp/youtube-transcribe-skill/skills/youtube-transcribe-skill ~/.claude/skills/youtube-transcribe-skill
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# YouTube Transcript Extraction

Extract subtitles/transcripts from a YouTube video URL and save them as a local file.

Input YouTube URL: $ARGUMENTS

## Step 1: Verify URL

Confirm the input is a valid YouTube URL (supports `youtube.com/watch?v=`, `youtu.be/`, and `youtube.com/shorts/` formats). If no URL is provided via arguments, check the conversation context for a YouTube link.

## Step 2: CLI Quick Extraction (Priority Attempt)

Use command-line tools to quickly extract subtitles.

### 2.1 Check Tool Availability

Execute `which yt-dlp`.

- If `yt-dlp` is **found**, proceed to 2.2.
- If `yt-dlp` is **not found**, skip to **Step 3**.

### 2.2 Get Video Title

```bash
yt-dlp --cookies-from-browser=chrome --get-title "[VIDEO_URL]"
```

- **Tip**: Always add `--cookies-from-browser` to avoid sign-in restrictions. Default to `chrome`.
- If it fails with a browser error (e.g., "Could not open Chrome"), ask the user to specify their available browser (e.g., `firefox`, `safari`, `edge`) and retry.

### 2.3 Download Subtitles

```bash
yt-dlp --cookies-from-browser=chrome --write-auto-sub --write-sub --sub-lang zh-Hans,zh-Hant,en --skip-download --output "<Video Title>.%(ext)s" "[VIDEO_URL]"
```

### 2.4 Convert to Plain Text

`yt-dlp` saves subtitles as `.vtt` or `.srt` files. Convert the downloaded file to plain `Timestamp Text` format:

1. Read the downloaded subtitle file (`.vtt` or `.srt`).
2. Strip VTT/SRT headers, styling tags, and duplicate lines.
3. Save as `<Video Title>.txt` with one `Timestamp Text` entry per line.

### 2.5 Verify Results

- **Exit code 0**: Convert and save the subtitle file, then report completion.
- **Exit code non-0**:
  - If error is related to browser/cookies, ask user for correct browser and retry.
  - If other errors (e.g., video unavailable), proceed to **Step 3**.

## Step 3: Browser Automation (Fallback)

When the CLI method fails or `yt-dlp` is missing, use Chrome DevTools MCP to extract subtitles via browser UI automation.

### 3.1 Check Tool Availability

Check if Chrome DevTools MCP tools are available (look for tools matching `chrome__new_page` or similar).

If Chrome DevTools MCP is **not** available and `yt-dlp` was **not** found in Step 2, stop and notify the user: "Unable to proceed. Please either install `yt-dlp` (for fast CLI extraction) or configure Chrome DevTools MCP (for browser automation)."

### 3.2 Open Video Page

Use Chrome DevTools MCP `new_page` to open the video URL.

### 3.3 Analyze Page State

Use Chrome DevTools MCP `take_snapshot` to read the page accessibility tree.

### 3.4 Expand Video Description

The "Show transcript" button is usually hidden within the collapsed description area.

1. Search the snapshot for a button labeled **"...more"**, **"...更多"**, or **"Show more"** (in the description block below the video title).
2. Use Chrome DevTools MCP `click` to click that button.

### 3.5 Open Transcript Panel

1. Use Chrome DevTools MCP `take_snapshot` to get the updated UI.
2. Search for a button labeled **"Show transcript"**, **"显示转录稿"**, or **"内容转文字"**.
3. Use Chrome DevTools MCP `click` to click that button.
4. If the button is not found, the video may not have a transcript available — notify the user and stop.

### 3.6 Extract Content via DOM

Directly reading the accessibility tree for long transcript lists is slow and token-heavy. Use Chrome DevTools MCP `evaluate_script` to run this JavaScript instead:

```javascript
() => {
  const segments = document.querySelectorAll("ytd-transcript-segment-renderer");
  if (!segments.length) return "BUFFERING";
  return Array.from(segments)
    .map((seg) => {
      const time = seg.querySelector(".segment-timestamp")?.innerText.trim();
      const text = seg.querySelector(".segment-text")?.innerText.trim();
      return `${time} ${text}`;
    })
    .join("\n");
};
```

If it returns `"BUFFERING"`, wait a few seconds and retry (up to 3 attempts).

### 3.7 Save and Cleanup

1. Save the extracted text as `<Video Title>.txt`.
2. Use Chrome DevTools MCP `close_page` to release resources.

## Output Requirements

- Save the subtitle file to the current working directory.
- Filename format: `<Video Title>.txt`
- File content format: Each line should be `Timestamp Subtitle Text`.
- Report upon completion: file path, subtitle language, and total number of lines.
command-creatorSkill

Create Claude Code custom slash commands with proper structure, frontmatter, and best practices. Use this skill whenever the user wants to create a new command, add a slash command, build a custom command, or mentions "create-command", "new command", "add command", or "make a command" for Claude Code. Also trigger when the user wants to turn a workflow into a reusable command.

deep-reflectorSubagent

Comprehensive session analysis and learning capture specialist. Analyzes development sessions to extract patterns, preferences, and improvements for future interactions. Use after significant work sessions to capture learnings.

github-issue-fixerSubagent

GitHub issue resolution specialist. Analyzes, plans, and implements fixes for GitHub issues with proper testing and PR creation. Use when fixing specific GitHub issues.

insight-documenterSubagent

Technical breakthrough documentation specialist. Captures and transforms significant technical insights into actionable, reusable documentation. Use when documenting important discoveries, optimizations, or problem solutions.

instruction-reflectorSubagent

Analyzes and improves Claude Code instructions in CLAUDE.md. Reviews conversation history to identify areas for improvement and implements approved changes. Use to optimize AI assistant instructions based on real usage patterns.

pr-reviewerSubagent

Expert code reviewer for GitHub pull requests. Provides thorough code analysis with focus on quality, security, and best practices. Use when reviewing PRs for code quality and potential issues.

ui-engineerSubagent

Expert UI/frontend developer for creating, modifying, or reviewing frontend code, UI components, and user interfaces. Use when building React components, responsive designs, or any frontend development tasks. PROACTIVELY use for UI/UX implementation, component architecture, and frontend best practices.

autonomous-skillSkill

>-