Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Extract subtitles/transcripts from YouTube videos. Triggers: "youtube transcript", "extract subtitles", "video captions", "视频字幕", "字幕提取", "YouTube转文字", "提取字幕".
Extract subtitles/transcripts from YouTube videos. Triggers: "youtube transcript", "extract subtitles", "video captions", "视频字幕", "字幕提取", "YouTube转文字", "提取字幕".
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Extract subtitles/transcripts from a YouTube video URL and save them as a local file. Input YouTube URL: $ARGUMENTS
Verify URL Format: Confirm the input is a valid YouTube URL (supports youtube.com/watch?v= or youtu.be/ formats). Get Video Information: Use WebFetch or firecrawl to fetch the page and extract the video title for subsequent file naming.
Use command-line tools to quickly extract subtitles. 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. 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]" 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.
When the CLI method fails or yt-dlp is missing, use browser UI automation to extract subtitles. 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)." Initialize Browser Session (If tools are available): Call mcp__plugin_claude-code-settings_chrome__new_page to open the video URL.
Call mcp__plugin_claude-code-settings_chrome__take_snapshot to read the page accessibility tree.
Reason: The "Show transcript" button is usually hidden within the collapsed description area. Search the snapshot for a button labeled "...more", "...更多", or "Show more" (usually located in the description block below the video title). Call mcp__plugin_claude-code-settings_chrome__click to click that button.
Call mcp__plugin_claude-code-settings_chrome__take_snapshot to get the updated UI snapshot. Search for a button labeled "Show transcript", "显示转录稿", or "内容转文字". Call mcp__plugin_claude-code-settings_chrome__click to click that button.
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.
Use the Write tool to save the extracted text as a local file (e.g., <Video Title>.txt). Call mcp__plugin_claude-code-settings_chrome__close_page to release resources.
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.
Agent frameworks, memory systems, reasoning layers, and model-native orchestration.
Largest current source with strong distribution and engagement signals.