mcpField
J
justcaptions

justcaptions

远程服务
justcaptions.com媒体与设计03 周前更新

关于 justcaptions

Just Captions 为视频提供语音转录、字幕修正与翻译,并可生成字幕文件或烧录字幕。它面向编码 Agent、MCP 客户端和命令行用户,提供本地渲染及云端音频和字幕处理。

主要功能

  1. 01转录视频语音并生成字幕文件
  2. 02修正和翻译字幕文本
  3. 03将字幕烧录到视频
  4. 04提供 15 种动画字幕样式
  5. 05支持批量处理文件夹中的视频

适用场景

  1. 01为短视频生成带样式的字幕
  2. 02修订字幕后重新烧录到视频
  3. 03批量转录视频并导出 SRT 或 VTT

MCP 相关

本地 MCP 提供视频处理、样式预览和任务状态等工具;远程 MCP 处理音频及字幕文本,不访问本地文件或渲染视频。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://api.justcaptions.com/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://api.justcaptions.com/mcp需要授权

工具

9

此工具无需参数。

详细介绍

面向 Agent 的 Just Captions

通过 Codex、Claude Code、任何 MCP 客户端或终端为视频添加字幕。此技能可转录语音、生成 SRT/VTT/JSON 文件,并将 TikTok/Reels 风格的字幕烧录到视频中。可一次处理一个视频,也可处理整个文件夹。

15 种动画便携预设采用 Just Captions 应用的风格系列。字体排版和采样动画可能与原生 iOS 不同。渲染在你的机器上通过 Pillow 和 ffmpeg 运行。

选择一种风格并复制任务 · API 文档 · OpenAPI · 风格目录

表情符号MegaReveal
表情符号MegaReveal
Neon白色方框黄色方框
Neon白色方框黄色方框
灰色方框黄色轮廓单词高亮
灰色方框黄色轮廓单词高亮
高亮方框ImpactPop In
高亮方框ImpactPop In
打字机CinemaEditorial
打字机CinemaEditorial

MCP 快速入门

打包版 MCP/CLI 需要 Python 3.10+、uv 和 ffmpeg。纯技能仍可在 Python 3.9+ 和 Pillow 环境中运行。

Codex — 添加到 ~/.codex/config.toml:

[mcp_servers.justcaptions]
command = "uvx"
args = ["--from", "https://github.com/SpaceSheepBoy/justcaptions-skill/releases/download/v1.3.1/justcaptions_agent-1.3.1-py3-none-any.whl", "justcaptions-mcp"]
startup_timeout_sec = 120

[mcp_servers.justcaptions_cloud]
url = "https://api.justcaptions.com/mcp"
bearer_token_env_var = "JUSTCAPTIONS_API_KEY"

Claude Code — 合并到项目的 .mcp.json:

{
  "mcpServers": {
    "justcaptions": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--from", "https://github.com/SpaceSheepBoy/justcaptions-skill/releases/download/v1.3.1/justcaptions_agent-1.3.1-py3-none-any.whl", "justcaptions-mcp"]
    },
    "justcaptions_cloud": {
      "type": "http",
      "url": "https://api.justcaptions.com/mcp",
      "headers": {"Authorization": "Bearer ${JUSTCAPTIONS_API_KEY}"}
    }
  }
}

设置 JUSTCAPTIONS_API_KEY,或通过 CLI 的 --signup YOUR_EMAIL 保存密钥。本地 MCP 也会读取 ~/.config/justcaptions/api_key。切勿将密钥放入提示词或提交中。若要在没有密钥的情况下进行语音识别,请在 uvx 参数中的 "--from" 前添加 "--with", "faster-whisper"。离线模型会在首次使用时下载。

请这样提出请求:“用 Word Highlight 为 TikTok 给 ~/Movies/intro.mp4 添加字幕。将 MP4、SRT、VTT 和 JSON 保存到 ./captioned/,并保留原文件。”

工具用途
check_environment检查媒体工具以及语音识别/密钥是否可用;绝不会泄露凭据
list_styles15 种预设、可接受的覆盖项、别名和安全区域边距
preview_style根据所选设置渲染的内嵌 PNG,无需调用付费 API
caption_video启动视频/文件夹任务;立即返回任务 ID
get_job轮询阶段和经过验证的各文件输出路径
get_usage当前 API 用量和预计月费

caption_video 接受 input_path、output_dir、style_id、size、position、safe_area、length、overrides、captions_path、engine、language、translate_to、correct、glossary、burn 和 overwrite。有关类型化架构,请参阅 MCP 发现信息。每个文件夹任务最多处理 100 个文件,同时运行两个任务。任务会在本地持久保存,即使进程重启也不会丢失;可使用 list_jobs 和 resume_job 恢复任务。除非明确指定覆盖,否则现有输出会受到保护;文件夹任务会为每个源文件使用独立的输出目录。

远程 MCP

https://api.justcaptions.com/mcp 使用 Streamable HTTP 和你的 API 密钥。它处理音频和字幕文本。它无法访问本地文件、预览样式或渲染 MP4。

对于 Codex:

[mcp_servers.justcaptions_cloud]
url = "https://api.justcaptions.com/mcp"
bearer_token_env_var = "JUSTCAPTIONS_API_KEY"

对于 Claude Code,项目 .mcp.json 条目:

{"mcpServers":{"justcaptions_cloud":{"type":"http","url":"https://api.justcaptions.com/mcp","headers":{"Authorization":"Bearer ${JUSTCAPTIONS_API_KEY}"}}}}

工具:list_styles、get_pricing、get_usage、transcribe_audio、correct_captions、translate_captions、pick_emojis。云端操作使用现有 API 定价和限制。请提供唯一的 request_id,仅在重试完全相同的请求时重复使用。请求哈希和已完成的回复会保留 24 小时,然后在后续请求或每日清理时删除(48 小时内)。重放存储不会保留音频。

样式和自定义

全部 15 种预设都会在视频导出和网站预览中制作动画,效果包括语音词语高亮/显现、弹出入场、淡入淡出、打字效果或脉冲发光。

权威的版本化目录位于 skills/justcaptions/assets/styles.json:Emoji、Mega、Reveal、Neon、White box、Yellow box、Gray box、Yellow outline、Word Highlight、Highlight Box、Impact、Pop In、Typewriter、Cinema 和 Editorial。历史 CLI 名称 karaoke、black-box 和 white-outline 仍受支持。wordHighlight 等应用 ID 会映射到可移植的预设 ID。

本地 MCP 接受 overrides,例如:

{"highlight_color":"#1A9E7A","text_color":"#FFFFFF","font_multiplier":1.2,"max_words":3}

随附的命名字体可确保本地渲染结果一致。运行 justcaptions --list-fonts 或调用 MCP list_fonts;公开的 GET /v1/fonts 端点会返回相同的目录。在 overrides 或样式配置文件中设置 {"font_id":"anton"}。13 种选项包括 Inter、Poppins、Montserrat、Merriweather、Bebas Neue、Oswald、Roboto Flex、Anton、Barlow Condensed、Nunito、Caveat、Patrick Hand 和 Permanent Marker。可变字体使用目录中的粗细轴设置。命名字体优先于 font_family;"font_id":null 会恢复通用字体系列选择。这些命名字体适用于拉丁文字字幕;其他文字系统会继续使用渲染器的系统字体回退。SRT/VTT 仍是纯字幕,不会嵌入字体。

CLI 使用 --style-config FILE.json 接受相同的对象。未知键和无效值会被拒绝。颜色、背景、描边、字体系列、大小、词数和字母大小写均可配置。使用 --safe-area tiktok|reels|shorts|none;保守的边距可让字幕保持水平居中。平台 UI 布局可能有所不同。

如果文本未更改,则会保留语音识别的词语时间戳。修正/翻译后的文本和导入的纯字幕文件使用的是估算的词语时间,而非强制对齐。衬线/常规字体系列使用可用的系统字体,并以随附的 Geist 作为回退字体。

安装

你需要 ffmpeg 和带有 Pillow 的 Python 3.9+:

brew install ffmpeg          # or: sudo apt install ffmpeg
pip install Pillow
pip install faster-whisper   # optional: offline transcription

作为 Claude Code 插件

/plugin marketplace add SpaceSheepBoy/justcaptions-skill
/plugin install justcaptions@justcaptions

作为普通技能

git clone https://github.com/SpaceSheepBoy/justcaptions-skill
cp -r justcaptions-skill/skills/justcaptions ~/.claude/skills/

然后可以向 Claude 提出类似这样的请求:“为 interview.mp4 添加 emoji 样式的字幕”,或 “为 ./clips 中的所有视频烧录西班牙语字幕”。

不使用 Claude

S=skills/justcaptions/scripts
python3 $S/jc.py talk.mp4 --burn                      # talk.srt, talk.json, talk.captioned.mp4
python3 $S/jc.py clips/ --style karaoke --burn        # batch: every video in the folder
python3 $S/jc.py talk.mp4 --style emoji --burn
python3 $S/jc.py talk.mp4 --formats srt,vtt           # subtitle files only
python3 $S/jc.py talk.mp4 --captions talk.srt --burn  # burn a subtitle file you edited
python3 $S/jc.py talk.mp4 --style word-highlight --safe-area tiktok --burn --json
python3 $S/jc.py --help
选项取值
--style全部 15 种预设 ID 及旧名称;--list-styles --json 会返回目录
--positiontop、middle、bottom,或类似 0.7 的分数
--sizesmall、medium、large
--lengthshort、medium、long:屏幕上显示的词数
--language语音语言提示,例如 en、zh、es
--glossary拼写正确的名称和术语:"Kila Labs, Just Captions"
--engineapi 或 local(设置密钥时默认使用 API)
--correctAI 修正识别错误(需要 API 密钥)
--translate LANG翻译字幕(需要 API 密钥)

若要在烧录字幕前修改措辞:运行脚本时不加 --burn,编辑 NAME.json 或 NAME.srt,然后再次运行并添加 --captions NAME.json --burn。JSON 文件会保留逐词时间信息,供 karaoke 和 emoji 使用。

Just Captions API

无需密钥,所有操作都会使用 faster-whisper 离线运行。有了密钥,你还可以使用:

  • 云端转录(在处理口音、嘈杂音频和多种语言时表现更好)
  • --correct 和 --translate
  • 为 Emoji 样式选择 AI 表情符号(离线备用方案使用关键词表)

获取密钥即时完成,无需银行卡:

python3 skills/justcaptions/scripts/jc.py --signup [email protected]

密钥会保存到 ~/.config/justcaptions/api_key(仅你可读取)。如果设置了 JUSTCAPTIONS_API_KEY,则会改用该值。

python3 skills/justcaptions/scripts/jc.py --account   # usage this month and estimated charge
定价
价格每月免费额度
转录每分钟音频 $0.01,按秒计费30 分钟
校正、翻译、表情符号每发送 1,000 个字幕字符 $0.0150,000 个字符
  • 免费方案(无需银行卡):免费额度用完后即停止。如果已安装 faster-whisper,转录会继续在本地进行。
  • 按量付费:在 https://justcaptions.com/api/account/ 添加银行卡,即可在免费额度用完后继续使用。Stripe 会按月向你开具账单,默认月度消费上限为 $100。
  • 失败的请求不会计费。

API 仅接收音频。脚本会从视频中提取一段单声道音轨,因此视频本身绝不会上传,字幕烧录也始终在你的设备上完成。API 参考:https://justcaptions.com/api/

想在 iPhone 上使用?

App Store 上的 Just Captions 可在手机上提供原生字幕样式,以及设备端转录、编辑和批量导出功能。

开发

使用 uv pip install -e . 在隔离环境中安装。Worker MCP 适配器是开源的,位于 remote/mcp.mjs;宿主会注入现有的已认证 API 处理程序。tools/sync-agent-assets.py --site SITE_DIR --backend BACKEND_DIR 会将规范目录、OpenAPI 和适配器发布到网站和 Worker 源码中。请勿单独编辑生成的副本。

python3 -m unittest discover -s tests
python3 tools/smoke-mcp.py  # exercise the installed MCP with synthetic media
python3 tools/agent-previews.py --site SITE_DIR  # regenerate videos/posters and animated README previews
python3 tools/gallery.py   # regenerate the legacy five-style PNG gallery

字幕烧录方式:每个字幕状态(卡拉 OK 和表情符号字幕中每个词对应一个状态)都会绘制为一张全帧透明 PNG。concat 解复用器会按精确时长将这些 PNG 播放为单个图像流,再通过一个 overlay 滤镜将其叠加到视频上。这样,无论字幕数量有多少,ffmpeg 命令的长度都保持不变。

许可证

代码采用 MIT 许可证。字体名称对应的许可证和原始来源网址记录在目录中;许可证文本包含在 assets/fonts/licenses/ 中(SIL OFL 1.1,以及 Permanent Marker 使用的 Apache 2.0)。随附的 Geist 字体采用 SIL OFL 1.1 许可证(skills/justcaptions/assets/fonts/OFL.txt)。

完成首次导出

安装 Python 3.10+、ffmpeg 和此软件包后,运行 justcaptions --demo --out-dir ./demo --style word-highlight。随附的人声旁白示例包含逐词时间戳,无需 API 密钥或下载模型。在 MCP 中使用 run_demo,然后使用 get_job。旁白署名见演示鸣谢。

持久化任务与账户控制

list_jobs、get_job、cancel_job 和 resume_job 用于操作保存在 ~/.local/share/justcaptions 中的任务(可通过 JUSTCAPTIONS_STATE_DIR 覆盖)。恢复任务时会跳过已完成的文件,并复用成功的云端响应。源文件必须保持不变。取消任务后,正在进行的云端请求仍可能完成并产生费用。超过服务器重放窗口的未确定云端请求需要手动检查用量,不能在不提示的情况下重复执行付费操作。

识别前请使用 estimate_video;对于编辑任务,请提供已知的 text_chars。估算不包括未知的后续文本,也不会预留额度。API 会为并发请求以原子方式预留容量,所有专用密钥共用一个账户的额度。在 https://justcaptions.com/api/account/ 管理月度支出限额、作用域密钥、有效期和撤销操作。降低限额不会移除已有费用和正在运行的预留额度。

设置和导出统计信息为可选项。只有网站访客选择加入后,JUSTCAPTIONS_METRICS_ID 才会启用复制配置中包含的计数器。这些计数器不会发送文件路径、字幕或 API 密钥。若要停用已安装客户端的统计报告,请移除该变量并重启 MCP 服务。

分发

从最新的 GitHub 发布版本安装标准 wheel:

pip install https://github.com/SpaceSheepBoy/justcaptions-skill/releases/download/v1.3.1/justcaptions_agent-1.3.1-py3-none-any.whl

GitHub Actions 会构建并检查 wheel/sdist 工件,将其附加到发布版本,并使用 GitHub OIDC 将 server.json 发布到官方 MCP Registry。所有者启用后,PyPI 发布会使用受信任的发布者;完成该注册前,网站会使用发布版本中的 wheel。

PyPI 待配置的受信任发布者信息:项目 justcaptions-agent;GitHub 所有者 SpaceSheepBoy;仓库 justcaptions-skill;工作流 release.yml;环境 pypi。注册完成后,启用仓库变量 PYPI_PUBLISH_ENABLED=true 并重新运行发布工作流。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。