agentleFS
allanninalallanninal/claude-code-skills/skills/youtube-transcribe-skill/SKILL.md

youtube-transcribe-skill

Skill1 starsChanged 9 months agoMITView on GitHub

Extract subtitles/transcripts from YouTube videos. Triggers: "youtube transcript", "extract subtitles", "video captions", "视频字幕", "字幕提取", "YouTube转文字", "提取字幕".

We split this skill into the rules it gives an agent

22 rules. About 0 are common, 8 are distinctive, and 14 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈8

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 14

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Get Video Information: Use WebFetch or firecrawl to fetch the page and extract the video title for subsequent file naming.

    line 17
  2. Distinctive:

    Use command-line tools to quickly extract subtitles.

    line 21
  3. Very specific:

    If yt-dlp is found, proceed to subtitle download.

    line 26
  4. Very specific:

    If yt-dlp is NOT found, skip immediately to Step 3.

    line 27
  5. Very specific:

    Tip: Always add --cookies-from-browser to avoid sign-in restrictions.

    line 31
  6. Very specific:

    Retry Logic: If yt-dlp fails with a browser error (e.g., "Could not open Chrome"), ask the user to specify their available browser (e.g., …

    line 32
  7. Distinctive:

    Check the command exit code.

    line 43
  8. Distinctive:

    If error is related to browser/cookies, ask user for correct browser and retry Step 2.

    line 46
  9. Distinctive:

    If other errors (e.g., video unavailable), proceed to Step 3.

    line 47
  10. Very specific:

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

    line 51
  11. Very specific:

    Check if chrome-devtools-mcp tools (specifically mcp__plugin_claude-code-settings_chrome__new_page) are available.

    line 55
  12. Very specific:

    CRITICAL CHECK: If chrome-devtools-mcp is NOT available AND yt-dlp was NOT found in Step 2:

    line 56
  13. Very specific:

    Call mcp__plugin_claude-code-settings_chrome__new_page to open the video URL.

    line 62
  14. Very specific:

    Call mcp__plugin_claude-code-settings_chrome__take_snapshot to read the page accessibility tree.

    line 66
  15. Distinctive:

    Search the snapshot for a button labeled "...more", "...更多", or "Show more" (usually located in the description block below the video …

    line 72
  16. Very specific:

    Call mcp__plugin_claude-code-settings_chrome__click to click that button.

    line 73
  17. Very specific:

    Call mcp__plugin_claude-code-settings_chrome__take_snapshot to get the updated UI snapshot.

    line 77
  18. Distinctive:

    Search for a button labeled "Show transcript", "显示转录稿", or "内容转文字".

    line 78
  19. Very specific:

    Call mcp__plugin_claude-code-settings_chrome__evaluate_script to execute the following JavaScript:

    line 85
  20. Distinctive:

    If it returns "BUFFERING", wait a few seconds and retry.

    line 104
  21. Very specific:

    Use the Write tool to save the extracted text as a local file (e.g., <Video Title>.txt).

    line 108
  22. Very specific:

    Call mcp__plugin_claude-code-settings_chrome__close_page to release resources.

    line 109

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
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 and Get Video Information

  1. Verify URL Format: Confirm the input is a valid YouTube URL (supports youtube.com/watch?v= or youtu.be/ formats).
  2. Get Video Information: Use WebFetch or firecrawl to fetch the page and extract the video title for subsequent file naming.

Step 2: CLI Quick Extraction (Priority Attempt)

Use command-line tools to quickly extract subtitles.

  1. Check Tool Availability: Execute which yt-dlp.

    • If yt-dlp is found, proceed to subtitle download.
    • If yt-dlp is NOT found, skip immediately to Step 3.
  2. Execute Subtitle Download (Only if yt-dlp is found):

    • Tip: Always add --cookies-from-browser to avoid sign-in restrictions. Default to chrome.
    • Retry Logic: If yt-dlp 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.
    # Get the title first (try chrome first)
    yt-dlp --cookies-from-browser=chrome --get-title "[VIDEO_URL]"
    
    # Download subtitles
    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]"
  3. Verify Results:
    • Check the command exit code.
    • Exit code 0 (Success): Subtitles have been saved locally, task complete.
    • Exit code non-0 (Failure):
      • If error is related to browser/cookies, ask user for correct browser and retry Step 2.
      • 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 browser UI automation to extract subtitles.

  1. Check Tool Availability:

    • Check if chrome-devtools-mcp tools (specifically mcp__plugin_claude-code-settings_chrome__new_page) are available.
    • CRITICAL CHECK: If chrome-devtools-mcp is NOT available AND yt-dlp was NOT found in Step 2:
      • STOP execution.
      • Notify the User: "Unable to proceed. Please either install yt-dlp (for fast CLI extraction) OR configure chrome-devtools-mcp (for browser automation)."
  2. Initialize Browser Session (If tools are available):

    Call mcp__plugin_claude-code-settings_chrome__new_page to open the video URL.

3.2 Analyze Page State

Call mcp__plugin_claude-code-settings_chrome__take_snapshot to read the page accessibility tree.

3.3 Expand Video Description

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

  1. Search the snapshot for a button labeled "...more", "...更多", or "Show more" (usually located in the description block below the video title).
  2. Call mcp__plugin_claude-code-settings_chrome__click to click that button.

3.4 Open Transcript Panel

  1. Call mcp__plugin_claude-code-settings_chrome__take_snapshot to get the updated UI snapshot.
  2. Search for a button labeled "Show transcript", "显示转录稿", or "内容转文字".
  3. Call mcp__plugin_claude-code-settings_chrome__click to click that button.

3.5 Extract Content via DOM

Reason: Directly reading the accessibility tree for long lists is slow and consumes many tokens; DOM injection is more efficient.

Call mcp__plugin_claude-code-settings_chrome__evaluate_script to execute the following JavaScript:

() => {
  // Select all transcript segment containers
  const segments = document.querySelectorAll("ytd-transcript-segment-renderer");
  if (!segments.length) return "BUFFERING"; // Retry if empty

  // Iterate and format as "timestamp text"
  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.

3.6 Save and Cleanup

  1. Use the Write tool to save the extracted text as a local file (e.g., <Video Title>.txt).
  2. Call mcp__plugin_claude-code-settings_chrome__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, total number of lines.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.