Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Youtube Transcribe Skill

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

MIT-0 · Free to use, modify, and redistribute. No attribution required.
1 · 281 · 1 current installs · 1 all-time installs
byPengfei Ni@feiskyer
MIT-0
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
The skill's name and description align with its instructions: it uses yt-dlp when available and falls back to browser automation to extract transcripts. Minor inconsistency: SKILL.md mentions using 'WebFetch' or 'firecrawl' to fetch the page/title, but those tools are not listed in the allowed-tools block. Otherwise the declared allowed tools (yt-dlp and the chrome-devtools mcp plugin) are appropriate for the stated purpose.
Instruction Scope
Instructions stay focused on extracting transcripts and saving them locally. Privacy-relevant behaviors: recommending yt-dlp with --cookies-from-browser=chrome means the tool will read browser cookie stores to bypass sign-in restrictions; the mcp__plugin evaluate_script step runs arbitrary JS on the video page (reads DOM/transcript). These are coherent for scraping transcripts but can expose local browser cookies or other page content if the environment/tool implementation is broad.
Install Mechanism
No install spec (instruction-only), so nothing is being downloaded or written by the skill itself. This is low-risk from an install perspective.
Credentials
The skill does not request environment variables, credentials, or config paths. It does rely on local tools (yt-dlp and a chrome-devtools mcp plugin) and on access to the browser's cookie store via yt-dlp, which is proportional to the goal but privacy-sensitive; no extra unrelated credentials are requested.
Persistence & Privilege
always is false and the skill is user-invocable. It does not request permanent presence or modifications to other skills or system-wide settings.
Assessment
This skill appears to do what it says: extract YouTube transcripts using yt-dlp or browser automation. Before installing, consider: (1) yt-dlp --cookies-from-browser will access your browser cookie store to handle sign-in-protected videos — only proceed if you are comfortable with that and trust the runtime. (2) The fallback uses a chrome-devtools plugin to open pages and run JavaScript on them; review what that plugin can access in your environment. (3) SKILL.md mentions 'WebFetch'/'firecrawl' but those tools aren't declared — if the agent attempts those, verify what implementation will be used. (4) No external credentials are requested and nothing is downloaded by the skill itself, which reduces risk. If you plan to use this skill, ensure yt-dlp and/or the specified mcp plugin are installed from trusted sources and avoid running it in environments where exposing browser cookies would be unacceptable.

Like a lobster shell, security has layers — review code before you run it.

Current versionv0.1.0
Download zip
latestvk97dt5tzpyes848zz6a4jyf4mh8216j4

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

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.

Files

1 total
Select a file
Select a file to preview.

Comments

Loading comments…