Communitygithub.com

VideoScript Transcript Skill

Turn a public media URL (YouTube, Apple Podcasts, 小宇宙, Spotify public episodes, Bilibili) into a timestamped transcript using the user's own VideoScript account and the `videoscript` CLI. Use when the user asks for a transcript, subtitles, SRT/VTT, or "what was said in this video/podcast", when captions are missing or need cleaning, or when a long recording must be turned into text for notes, summaries or further AI work.

What is VideoScript Transcript Skill?

The VideoScript Transcript skill automates transcription from public media URLs (YouTube, Apple Podcasts, 小宇宙, Spotify, Bilibili) by wrapping the `videoscript` CLI. The AI agent submits a URL, polls for completion, and writes the resulting transcript to a file without ever handling API keys or making HTTP calls directly. It supports idempotency to prevent duplicate billing, respects server-side retry-after signals, and handles error exit codes (auth failure, budget exhaustion, content restrictions) with clear, actionable guidance. The skill is designed for Developer Tools and AI agent platforms like Claude Code and Cursor, offering a seamless way to extract timestamped text from long-form audio/video without exposing credentials or spamming transcripts into the conversation.

Works with~Claude Code~Codex CLI~Cursor
npx skills add DrErwin/videoscript-skill

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

VideoScript Transcripts

What This Skill Does

It drives the videoscript command-line client. The CLI talks to the public VideoScript API with a key the user issued for themselves; the service does the extraction, transcription and billing. This skill never speaks HTTP itself and never handles a key.

Before Anything Else

videoscript auth status --json
  • {"authenticated": true, ...} → carry on.
  • Exit code 3 → the user is not signed in. Tell them to create an API key on the VideoScript website and run videoscript auth login --token <key> themselves. Never ask them to paste the key into the conversation, and never echo it.
  • videoscript not found → ask the user to install it (npm install -g videoscript).

The Normal Flow

# 1. Submit (returns a task ID immediately)
videoscript transcribe create "<url>" --json

# 2. Wait for it (honours the server's Retry-After)
videoscript transcribe wait <id> --json

# 3. Write the transcript to a file, not into the chat
videoscript transcript get <id> --format markdown --output notes/<name>.md

Rules That Matter:

  • One submission = one idempotency key. The CLI generates it and echoes it in --json; if a call has to be retried, reuse that key (--idempotency-key) so the user is never charged twice.
  • Long transcripts go to files. Read the file only as far as the user's request needs. Never paste a whole hour-long transcript into the conversation.
  • Consumption is visible. Every completed task spends the user's Credits and appears in their library; say so before submitting something long.
  • Content limits are the service's, not yours to work around. Logins, paid content, DRM, region blocks and live streams are refused by design. Do not suggest proxies, cookies or third-party downloaders.

When Something Goes Wrong

Exit codes: 3 sign-in, 4 no such task, 5 retry later, 6 Credits/budget, 7 the source is refused.

  • 5 → wait for the Retry-After the CLI reports, then retry. The CLI already retries twice by itself.
  • 6 → tell the user their balance or this key's budget is exhausted; never attempt a purchase.
  • 7 → explain the restriction plainly and stop. Do not retry.
  • 1/2 → unexpected error or bad arguments; read the message, fix the call.

Full tables: reference/cli.md and reference/errors.md.

What This Skill Does Not Do

Uploads, bulk jobs, deleting tasks, payments, admin actions, or anything that needs the user's password. The key's scopes are enforced by the service.

Related Skills