agentsclimarketplace

Transcribe

Skill Studio-Moser/skills-n-stuff/plugins/transcribe/skills/transcribe

Product research, market intelligence, and content tools for AI-native teams

Install
npx -y skills add Studio-Moser/skills-n-stuff --skill transcribe

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Fetch a spoken-word transcript from a video URL. Supports YouTube, YouTube Shorts, Instagram posts/Reels, TikTok, and Threads. Use whenever you need the words said in a video — for research, summarization, or analysis. Invoke with /transcribe:transcribe <url> or from Bash as `transcribe <url>`.

SKILL.md

4.5 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it

transcribe

Fetch a spoken-word transcript from a video URL. YouTube URLs try the uploader's captions first (seconds, no model download). Everything else — and YouTube videos without captions — falls through to audio extraction + mlx-whisper on Apple Silicon, with a headless-Playwright fallback for Threads and other yt-dlp-unsupported platforms.

When to invoke

  • The user gives you a YouTube, Shorts, Instagram, TikTok, or Threads URL and asks for a transcript, summary, analysis, or quote
  • Another skill needs the spoken content of a video to do its job (e.g. research-scout analyzing a reference video)

How to invoke

From the Bash tool:

transcribe <url>                  # default: captions-first for YouTube, whisper otherwise
transcribe <url> --json
transcribe <url> --force-whisper  # skip YouTube captions, always run whisper

The transcribe executable is on PATH once the plugin is installed.

From another skill, use the Skill tool:

Skill({ skill: "transcribe:transcribe", args: "<url>" })

Output

Default (markdown):

# {title}

**Source:** {url}
**Platform:** {YouTube|Instagram|TikTok|Threads}
**Duration:** {mm:ss or "unknown"}
**Model:** mlx-community/whisper-large-v3-mlx

{transcript}

With --json: structured object with title, url, platform, duration_seconds, model, tier (youtube-captions-manual, youtube-captions-auto, ytdlp, or playwright), text, and segments[] with timestamps. The captions tiers return an empty segments[] — segment timing is only available when whisper runs.

Dependencies

Install with:

bash ${CLAUDE_PLUGIN_ROOT}/scripts/install.sh

Apple Silicon only in v0.1. Install deps: yt-dlp, ffmpeg, Node.js ≥ 20, Playwright Chromium, mlx-whisper.

Model

Default model: mlx-community/whisper-large-v3-mlx (~3GB, downloaded on first use). Override per-call with the WHISPER_MODEL environment variable, for example:

WHISPER_MODEL=mlx-community/whisper-base-mlx transcribe <url>

Smaller models trade accuracy for speed. Use whisper-base-mlx (~140MB) for quick checks.

Tiers

  1. YouTube captions (tier 0)yt-dlp --write-sub --write-auto-sub fetches the uploader's captions directly, no audio download, no whisper. Manual captions preferred; auto-generated is the fallback within this tier. YouTube URLs only. Seconds per video.
  2. yt-dlp + mlx-whisper (tier 1) — downloads audio, converts to 16kHz WAV, transcribes locally. Used for non-YouTube platforms, YouTube videos without any captions, or when --force-whisper is set. Minutes per video.
  3. Playwright + mlx-whisper (tier 2) — headless-browser extraction for Threads and other platforms yt-dlp can't reach.

The Model: line in the output reports which tier ran: youtube-manual-captions, youtube-auto-captions, or the whisper model name.

Known limitations

  • Apple Silicon only for tiers 1 and 2. Tier 0 (YouTube captions) works anywhere with yt-dlp + python3. Tier 1/2 need mlx-whisper, which is Apple Silicon only.
  • YouTube auto-captions are noisy. Auto-generated captions miss punctuation, mis-transcribe names, and don't attribute speakers. Use --force-whisper when accuracy matters more than speed.
  • Silent videos hallucinate (whisper tiers only). Whisper will invent text on silent or music-only audio. The plugin returns the transcript regardless but adds a stderr warning when repeated segments are detected.
  • Login-gated posts. Public content only unless the user has signed into the persistent Playwright profile at ~/.cache/transcribe-plugin/playwright-profile/.
  • No batching. One URL per call. Use a shell loop for multiple.
  • Threads is flaky. Threads post pages also render a feed of suggested videos, and Playwright's network capture can land on a neighbor instead of the target post. The extractor anchors to the <video> element's currentSrc and filters to segments sharing its CDN asset id, but expect occasional failures or mismatches. Retry or fall back to manual download for critical Threads transcripts.

See also

  • references/integration-guide.md — how other skills should invoke transcribe

What ships with it: 1 file

2.1 KB alongside SKILL.md

references/

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.