Agent skill

VideoCaptioner Subtitles

by WEIFENG2333 in WEIFENG2333/VideoCaptioner

Adds subtitles to video with the videocaptioner CLI: transcribes speech, tidies and translates the text, and burns styled subtitles into the video or exports SRT and ASS files.

GPL-3.0Auto-check passedMedia & Creative

Install VideoCaptioner Subtitles

skills CLI
$ npx skills add WEIFENG2333/VideoCaptioner --skill videocaptioner -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install WEIFENG2333/VideoCaptioner videocaptioner --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/WEIFENG2333/VideoCaptioner.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills .claude/skills/videocaptioner && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
videocaptioner
GitHub stars
16k
Token cost
~1.7k tokens
SKILL.md length
428 words
Files
1
Skills in repo
1
Repo updated
First seen
Licence
GPL-3.0

At a glance

Adds subtitles to video with the videocaptioner CLI: transcribes speech, tidies and translates the text, and burns styled subtitles into the video or exports SRT and ASS files.

  • Works in 10 steps: Give a Chinese video English subtitles… → Transcribe a video to SRT (free) → Translate existing subtitles → …
  • Adding subtitles to a video
  • SKILL.md covers When to use, Before you start, Common scenarios and Command reference, plus 5 more sections
  • Calls pip and brew; needs OPENAI_API_KEY

What it does

The pipeline transcribes speech, optimizes the subtitles, translates them and burns them into the video with a chosen style, and each stage can also be run on its own. Several scenarios are spelled out: one command that gives a Chinese video English subtitles using free transcription and Bing translation, transcription to SRT, translating an existing subtitle file with bilingual layouts, a styled full pipeline such as an anime look with colored outlines, subtitle-only ASS output without video synthesis, step-by-step control and audio-only input, which skips video synthesis.

Some stages are free and need no API key, namely transcription through the bijian or jianying engines and translation through Bing or Google. Subtitle optimization, re-segmentation and LLM translation need an LLM API key, set with the `OPENAI_API_KEY` variable or the `--api-key` flag. Install with `pip install videocaptioner`; FFmpeg is required for video synthesis. The agent is told to run the command's `--help` before executing it because the help output outranks the examples, and online videos can be downloaded and subtitled.

When your agent uses it

  • Adding subtitles to a video
  • Transcribing audio or video to an SRT file
  • Translating subtitles into another language
  • Customizing subtitle colors, fonts and backgrounds

Example prompts

  • “Give interview.mp4 English subtitles and burn them in.”
  • “Transcribe lecture.mp4 to an SRT file.”
  • “Translate subtitles.srt into Japanese with Bing and put the translation above the original.”
  • “Add anime-style subtitles to clip.mp4 in high quality.”

Requirements

  • Python, to install `videocaptioner` with pip
  • FFmpeg, for burning subtitles into video
  • An LLM API key, for subtitle optimization and LLM translation
  • Pre-approved tools (allowed-tools): Bash(videocaptioner *, ffprobe *, ffmpeg -ss *)

Workflow steps

10 steps, taken from the step headings in SKILL.md.

  1. Give a Chinese video English subtitles (one command, all free)
  2. Transcribe a video to SRT (free)
  3. Translate existing subtitles
  4. Full pipeline with beautiful styled subtitles
  5. Subtitle only, output as ASS format (no video synthesis)
  6. Step-by-step control (transcribe → translate → synthesize separately)
  7. Process audio file (auto-skips video synthesis)
  8. Transcribe other languages (whisper-api)
  9. Only optimize subtitles with LLM (fix ASR errors, no translation)
  10. Custom rounded background style with custom font

What it can do on your machine

Read from SKILL.md and the folder at commit 95842ec. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(videocaptioner *
    • ffprobe *
    • ffmpeg -ss *)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • pip
    • brew

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • OPENAI_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

VideoCaptioner Subtitles loads about 1.7k tokens when it runs. Until then it costs about 59 tokens; SKILL.md has 428 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~59
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from WEIFENG2333/VideoCaptioner at commit 95842ec, republished under its GPL-3.0 licence (© WEIFENG2333). 428 words, ~1,700 tokens.

Download SKILL.mdSave it as .claude/skills/videocaptioner/SKILL.md (or your agent's skills folder).
name
videocaptioner
description
Process video subtitles — transcribe speech, optimize/translate text, burn styled subtitles into video. Use when you need to add subtitles to a video, transcribe audio, translate subtitles, or customize subtitle styles.
allowed-tools
Bash(videocaptioner *, ffprobe *, ffmpeg -ss *)

VideoCaptioner CLI

AI-powered video captioning: transcribe speech → optimize subtitles → translate → burn into video with beautiful styles.

When to use

  • User wants to add subtitles to a video
  • User wants to transcribe audio/video to text
  • User wants to translate subtitles to another language
  • User wants to customize subtitle appearance (colors, fonts, rounded backgrounds)
  • User wants to download and subtitle online videos

Before you start

Always run videocaptioner <command> --help first to check the latest options and defaults before executing a command. The examples below are common patterns, but --help is the source of truth.

  • Install: pip install videocaptioner
  • FFmpeg required for video synthesis (brew install ffmpeg on macOS)
  • Free (no API key): transcription (bijian/jianying), translation (Bing/Google)
  • Requires LLM API key: subtitle optimization, subtitle re-segmentation, LLM translation. Set via OPENAI_API_KEY env var or --api-key flag

Common scenarios

1. Give a Chinese video English subtitles (one command, all free)
bash
videocaptioner process video.mp4 --asr bijian --translator bing --target-language en \
  --subtitle-mode hard --quality high -o output.mp4
2. Transcribe a video to SRT (free)
bash
videocaptioner transcribe video.mp4 --asr bijian -o output.srt

# Output as JSON format to a directory
videocaptioner transcribe video.mp4 --asr bijian --format json -o ./subtitles/
3. Translate existing subtitles
bash
# Free Bing → English, bilingual output with translation above original
videocaptioner subtitle input.srt --translator bing --target-language en --layout target-above -o translated.srt

# Free Google → Japanese, translation only (discard original text)
videocaptioner subtitle input.srt --translator google --target-language ja --no-optimize --layout target-only -o output_ja.srt

# High quality LLM translation with reflective mode
videocaptioner subtitle input.srt --translator llm --target-language en --reflect \
  --api-key $OPENAI_API_KEY -o output_en.srt
4. Full pipeline with beautiful styled subtitles
bash
# Anime-style subtitles (warm color + orange outline), high quality video
videocaptioner process video.mp4 --asr bijian --translator bing --target-language ja \
  --subtitle-mode hard --style anime --quality high -o output_ja.mp4

# Modern rounded background subtitles
videocaptioner process video.mp4 --asr bijian --translator google --target-language ko \
  --subtitle-mode hard --render-mode rounded -o output_ko.mp4

# Custom colors: white text with red outline, ultra quality
videocaptioner process video.mp4 --asr bijian --translator bing --target-language en \
  --subtitle-mode hard --quality ultra \
  --style-override '{"outline_color": "#ff0000", "primary_color": "#ffffff"}' -o output_en.mp4
5. Subtitle only, output as ASS format (no video synthesis)
bash
videocaptioner process video.mp4 --asr bijian --translator bing --target-language en \
  --format ass --no-synthesize -o ./output/
6. Step-by-step control (transcribe → translate → synthesize separately)
bash
# Step 1: Transcribe
videocaptioner transcribe video.mp4 --asr bijian -o video.srt

# Step 2: Translate (bilingual, original text above translation)
videocaptioner subtitle video.srt --translator bing --target-language en --layout source-above -o video_en.srt

# Step 3: Burn into video with rounded background, high quality
videocaptioner synthesize video.mp4 -s video_en.srt --subtitle-mode hard \
  --render-mode rounded --quality high -o video_with_subs.mp4
7. Process audio file (auto-skips video synthesis)
bash
videocaptioner process podcast.mp3 --asr bijian --translator bing --target-language en -o ./output/
8. Transcribe other languages (whisper-api)
bash
videocaptioner transcribe french_video.mp4 --asr whisper-api \
  --whisper-api-key $OPENAI_API_KEY --language fr -o french.srt
9. Only optimize subtitles with LLM (fix ASR errors, no translation)
bash
videocaptioner subtitle raw_subtitle.srt --no-translate --api-key $OPENAI_API_KEY -o optimized.srt
10. Custom rounded background style with custom font
bash
videocaptioner synthesize video.mp4 -s subtitle.srt --subtitle-mode hard \
  --style-override '{"text_color": "#ffffff", "bg_color": "#000000cc", "corner_radius": 10, "font_size": 36}' \
  --font-file ./NotoSansSC.ttf --quality high -o styled_video.mp4

Command reference

CommandPurpose
transcribeSpeech → subtitles. Engines: bijian(free) jianying(free) whisper-api whisper-cpp
subtitleOptimize (LLM) and/or translate (LLM/Bing/Google) subtitle files
synthesizeBurn subtitles into video with customizable styles
processFull pipeline: transcribe → optimize → translate → synthesize
downloadDownload video from YouTube, Bilibili, etc.
configManage settings (show set get path init)
styleList all subtitle style presets with parameters

Run videocaptioner <command> --help for full options.

Show full SKILL.md (151 more words)Show less

Subtitle styles

Two rendering modes for beautiful subtitles:

ASS mode (default) — outline/shadow style:

  • Presets: default (white+black outline), anime (warm+orange outline), vertical (portrait videos)
  • Customizable fields: font_name, font_size, primary_color, outline_color, outline_width, bold, spacing, margin_bottom

Rounded mode — modern rounded background boxes:

  • Preset: rounded (dark text on semi-transparent background)
  • Customizable fields: font_name, font_size, text_color, bg_color (#rrggbbaa), corner_radius, padding_h, padding_v, margin_bottom

Style options only work with --subtitle-mode hard.

Target languages

BCP 47 codes: zh-Hans zh-Hant en ja ko fr de es ru pt it ar th vi id and 23 more.

Environment variables

VariablePurpose
OPENAI_API_KEYLLM API key
OPENAI_BASE_URLLLM API base URL

Exit codes

0 success · 2 bad arguments · 3 file not found · 4 missing dependency · 5 runtime error

Tips

  • Use -q for scripting (stdout = result path only)
  • Bing/Google translation is free, no API key needed
  • bijian/jianying ASR is free but only supports Chinese & English
  • Run videocaptioner style to see all style presets

© WEIFENG2333, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills of WEIFENG2333/VideoCaptioner.

Open the folder on GitHubat commit 95842ec

Compare with similar skills

VideoCaptioner Subtitles next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

VideoCaptioner Subtitles compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
VideoCaptioner Subtitles this skillWEIFENG2333/VideoCaptioner16k—~1.7kAutomated safety check: PassGPL-3.0
Video Clip Extractorlinzzzzzz/openclip569—~2.8kAutomated safety check: WarnMIT
Automated Video Studioforyourhealth111-pixel/Vibe-Skills3.6k—~838Automated safety check: PassApache-2.0
Embedded Video Captionsheygen-com/hyperframes59k3 repos~8.6kAutomated safety check: PassApache-2.0
Video Understandcalesthio/OpenMontage65k—~841Automated safety check: PassAGPL-3.0
KrillinAI CLI Operatorkrillinai/OpenCreator13k—~869Automated safety check: PassApache-2.0

Similar skills

  • Video Clip Extractor

    linzzzzzz/openclip

    Processes videos to identify engaging moments, generate transcripts, and create highlight clips with artistic titles and custom cover images.

    569 GitHub stars~2.8k tokensUpdated 1 mo ago
    Media & CreativeAuto-check: warnings
  • Automated Video Studio

    foryourhealth111-pixel/Vibe-Skills

    Turns footage, audio and a storyboard plan into a finished short video with FFmpeg jump-cuts, subtitle burn-in and a final polish pass.

    3.6k GitHub stars~838 tokensUpdated 1 mo ago
    Media & CreativeAuto-check passed
  • Embedded Video Captions

    heygen-com/hyperframes

    Adds captions to a single-subject talking-head video without editing the footage, from plain subtitles to cinematic text placed behind the speaker.

    59k GitHub starsUsed in 3 repos~8.6k tokens
    Media & CreativeAuto-check passed
  • Video Understand

    calesthio/OpenMontage

    Understand video content locally using ffmpeg frame extraction and Whisper transcription.

    65k GitHub stars~841 tokensUpdated 5 days ago
    Media & CreativeAuto-check passed
  • KrillinAI CLI Operator

    krillinai/OpenCreator

    Routes agents to the right KrillinAI command for subtitles, dubbing, video rendering, covers and speech, and explains how to read its JSON and manifest output.

    13k GitHub stars~869 tokensUpdated 3 days ago
    Media & CreativeAuto-check passed
  • KrillinAI Render Vertical

    krillinai/OpenCreator

    Renders a source video as a portrait video with the KrillinAI CLI, with short bilingual subtitles or a dubbed audio track, then checks the result.

    13k GitHub starsUsed in 1 repo~527 tokens
    Media & CreativeAuto-check passed

Works with

Questions about VideoCaptioner Subtitles

What does VideoCaptioner Subtitles do?

Adds subtitles to video with the videocaptioner CLI: transcribes speech, tidies and translates the text, and burns styled subtitles into the video or exports SRT and ASS files. The pipeline transcribes speech, optimizes the subtitles, translates them and burns them into the video with a chosen style, and each stage can also be run on its own. Several scenarios are spelled out: one command that gives a Chinese video English subtitles using free transcription and Bing translation, transcription to SRT, translating an existing subtitle file with bilingual layouts, a styled full pipeline such as an anime look with colored outlines, subtitle-only ASS output without video synthesis, step-by-step control and audio-only input, which skips video synthesis.

When should I use VideoCaptioner Subtitles?

VideoCaptioner Subtitles fits situations like: adding subtitles to a video; transcribing audio or video to an SRT file; translating subtitles into another language; customizing subtitle colors, fonts and backgrounds.

How do I install VideoCaptioner Subtitles in Claude Code?

Run `npx skills add WEIFENG2333/VideoCaptioner --skill videocaptioner -a claude-code`. Or copy the skill folder (skills in WEIFENG2333/VideoCaptioner) into .claude/skills/videocaptioner in your project. Claude Code loads it when a task matches its description.

How do I install VideoCaptioner Subtitles in Codex?

Run `npx skills add WEIFENG2333/VideoCaptioner --skill videocaptioner -a codex`. Or copy the skill folder (skills in WEIFENG2333/VideoCaptioner) into .agents/skills/videocaptioner in your project. Codex loads it when a task matches its description.

Can I use VideoCaptioner Subtitles in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add WEIFENG2333/VideoCaptioner --skill videocaptioner -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/videocaptioner, .gemini/skills/videocaptioner, .github/skills/videocaptioner and .opencode/skills/videocaptioner in your project.

What does VideoCaptioner Subtitles need to run?

Going by SKILL.md and its folder, VideoCaptioner Subtitles needs the command-line tools its instructions call (pip and brew) and credentials named OPENAI_API_KEY. Our summary lists: Python, to install `videocaptioner` with pip; FFmpeg, for burning subtitles into video; An LLM API key, for subtitle optimization and LLM translation. Its frontmatter pre-approves these tools: Bash(videocaptioner *, ffprobe *, ffmpeg -ss *).

Does VideoCaptioner Subtitles access the network?

SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is VideoCaptioner Subtitles safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does VideoCaptioner Subtitles use?

VideoCaptioner Subtitles is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does VideoCaptioner Subtitles use?

About 1.7k tokens (SKILL.md is roughly 6.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to VideoCaptioner Subtitles?

Skills that share tags, products or a category with VideoCaptioner Subtitles: Video Clip Extractor (linzzzzzz/openclip, 569 stars), Automated Video Studio (foryourhealth111-pixel/Vibe-Skills, 3.6k stars), Embedded Video Captions (heygen-com/hyperframes, 59k stars) and Video Understand (calesthio/OpenMontage, 65k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains VideoCaptioner Subtitles?

WEIFENG2333 (a GitHub user) maintains it in WEIFENG2333/VideoCaptioner, which has 16,181 GitHub stars. The repository was last updated on September 12, 2026.

Source: WEIFENG2333/VideoCaptioner on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.