Automated summary
Burns word-by-word on-screen captions into an already-edited video by uploading it directly to the Submagic API and downloading the finished file.
Strengths
- Uploads the mp4 straight to Submagic's multipart endpoint, avoiding Google Drive and the virus-scan redirect issue on large files
- Polls the project every 15 seconds until it reports completed or failed
- Warns when Submagic silently swaps the requested theme
- Downloads the captioned video to a predictable output folder named after the original file
Limitations
- Strictly scoped to burning captions: it does not write social post copy for any platform
- Requires SUBMAGIC_API_KEY and SUBMAGIC_THEME_ID in ~/.claude/.env, and there is no public API to list custom themes
- Preset templates such as Beast or Hormozi are not wired into the script yet
Use it when you already have a finished mp4 and want animated word-by-word captions rendered without running a separate transcription step.
Don't use it when you need a raw transcript or subtitle text file (use /transcribe) or when you need the platform post copy written (use /social-copy).
Security analysis
CautionThe skill invokes a Python script via Bash that uploads an mp4 to Submagic's API and downloads the result. This is a legitimate use of network and filesystem tools, but the external upload of user media and use of stored API keys warrant caution. No destructive, exfiltrating beyond intended service, or obfuscated actions are present.
- •Uploads video files to a third-party API (Submagic), which involves external data transfer and may include sensitive or private content.
- •Reads API credentials from ~/.claude/.env, which could be exposed if the environment file is mishandled.
Examples
Burn captions into ~/content/episode-12-final.mp4 with Submagic/submagic /Users/me/content/podcast-clip-03.mp4Add captions to this video and tell me where the captioned file landed: /Users/me/content/reel-raw.mp4name: submagic description: Burn word-by-word on-screen captions onto an edited video using the Submagic API. Uploads the mp4 directly to Submagic (bypassing Google Drive), polls until done, and downloads the captioned video. Does NOT generate platform post copy (use /social-copy or manual captions.md for that) and does NOT replace /transcribe. Triggers on: submagic, burn captions, add captions to video, caption this video, submagic caption. argument-hint: /path/to/edited-video.mp4 allowed-tools: Bash(python3:*), Read, Write user-invocable: true
Burn word-by-word on-screen captions onto the video at $ARGUMENTS using Submagic.
Scope
- This skill ONLY burns visual captions onto the video via Submagic.
- It does NOT generate social media post copy (YouTube Shorts / TikTok / Reels / LinkedIn).
- It does NOT replace
/transcribe- Whisper stays the source for raw transcripts.
How it works
Uses Submagic's direct upload endpoint POST /v1/projects/upload with multipart/form-data. The mp4 is streamed straight to Submagic, so there is no Google Drive dependency, no virus-scan redirect problem on large files, and the requested userThemeId is preserved reliably (the older Drive-URL path sometimes got themes silently swapped under concurrent jobs).
Instructions
-
Verify the file exists and is an mp4.
-
Run the script:
python3 ~/.claude/skills/submagic/submagic_caption.py "$ARGUMENTS" -
The script will:
- Upload the mp4 directly to Submagic (multipart)
- Poll
GET /v1/projects/{id}every 15s untilcompletedorfailed - Warn if Submagic silently swapped the requested theme (happens if the theme UUID was very recently edited in the dashboard - propagation delay)
- Download the captioned mp4 to
~/content/submagic/<original-name> - captioned-<short-project-id>.mp4
-
If the script fails, check
~/.claude/.envfor:SUBMAGIC_API_KEYSUBMAGIC_THEME_ID(the custom theme UUID - grab it from the Submagic dashboard if changing)
-
Report the output path to the user. Do NOT generate platform captions unless asked.
Finding a theme UUID
Submagic's public API has no "list my custom themes" endpoint. To switch themes:
- Log into https://app.submagic.co
- Open DevTools (Cmd+Opt+I) -> Network tab
- Navigate to the themes page
- Find the XHR that returns a JSON array of themes - each has an
idfield - Copy the
idof the theme you want and paste it intoSUBMAGIC_THEME_IDin~/.claude/.env
Preset templates (Beast, Hormozi 1-5, Doug, etc.) are available via a separate templateName field if ever needed - not wired into the script today.
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/burn-captions-with-submagic-ms2s7cag/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/burn-captions-with-submagic-ms2s7cag' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/burn-captions-with-submagic-ms2s7cag/download' --output '.skill-downloads/burn-captions-with-submagic-ms2s7cag/SKILL.md.part' && mv '.skill-downloads/burn-captions-with-submagic-ms2s7cag/SKILL.md.part' '.skill-downloads/burn-captions-with-submagic-ms2s7cag/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
This file does not provide a usable name/description header for this native procedure. It remains available to download and inspect; use the manual method below.
Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/burn-captions-with-submagic-ms2s7cag/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
Writing Fragments
Content
Mine raw writing fragments through a relentless interview, without imposing structure. Capture ideas, quotes, and leading words for later use.
UI Copywriting & Auditing
Content
Write or audit user-facing UI copy including buttons, errors, empty states, and tooltips across the monorepo, following the design system source of truth.
Music MIDI Extraction
Content
Extracts the MIDI or score from an existing music production via the CogMusic MCP tool and confirms availability.