mcpField
C
Caption Checker

Caption Checker

ローカル
markstudios.comメディア・デザイン01 日前に更新

Caption Checker について

Caption Checkerは、字幕編集や動画制作向けにSRTとWebVTTを検査するツールです。Netflix English、BBC、DCMPの基準に照らして問題を示し、CLI、ライブラリ、ローカルMCPサーバーとして利用できます。

主な機能

  1. 01SRTとWebVTTの検査
  2. 023種類の字幕基準に対応
  3. 03速度・行数・表示時間の問題を検出
  4. 04CLI、JavaScriptライブラリ、MCPサーバー
  5. 05アップロード不要のローカル実行

活用シーン

  1. 01公開前に字幕の基準適合を確認
  2. 02CIで基準違反の字幕を検出
  3. 03編集作業中にエージェントで字幕を確認

MCP 対応

ローカルMCPサーバーは、`check_captions` と `list_standards` ツールを提供し、ファイルパスまたは字幕テキストを検査して基準を表示します。キーやネットワーク接続は不要です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
mcpbcaption-checker-1.1.0.mcpb

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

caption-checker

SRT と WebVTT の字幕が、公開されている字幕規格(Netflix English、BBC subtitle guidelines、DCMP Captioning Key)に準拠しているか確認します。字幕の読み上げ速度が速すぎる場合、1 行が長すぎる場合、行数が多すぎる場合、画面に表示される時間が短すぎるか長すぎる場合、最小間隔を下回る場合、字幕が重なっている場合、タイムスタンプが壊れている場合に警告します。

依存関係はありません。Node 18 以降が必要です。インストールもアップロードも不要で、ブラウザーでも同じチェッカーを利用できます。markstudios.com/tools/caption-checker

旅行動画の SRT ファイルの問題を指摘する caption-check。8 件の字幕のうち 2 件が Netflix English の制限を満たしています

$ caption-check examples/travel-vlog.srt
travel-vlog.srt: 2 of 8 captions meet Netflix English, adult programs
  #1  0:00.500 -> 0:03.000  Welcome back to the channel.
      ✗ Gap to the next caption is 0 frames at 24 fps (minimum 2)
  #3  0:06.600 -> 0:07.100  First,
      ✗ On screen 0.50 s (minimum 5/6 of a second)
  #4  0:07.200 -> 0:09.000  we packed water, snacks, a rain jacket and a spare battery for the cam
      ✗ Reading speed 41.1 characters a second (limit 20)
      ✗ Line 1 is 74 characters (limit 42)
  ...

制限値

各制限値は、2026-10-15 に規格の公式ページを確認したものです。

Netflix (English)BBCDCMP Captioning Key
読み上げ速度1 秒あたり最大 20 文字(成人)、17 文字(子ども)1 分あたり 160~180 語1 分あたり最大 130/140/160 語(初級/中級/上級)
1 行あたりの文字数42放送(テレテキスト)では 37文字数の制限なし
1 件あたりの行数22。縦型 9:16 動画では 32 行以下を推奨
画面表示時間の最短5/6 秒1 語あたり約 0.3 秒(推奨)40 フレーム(1 秒と 10 フレーム)
画面表示時間の最長7 秒数値の指定なし6 秒
字幕間の間隔最低 2 フレーム。0.5 秒未満の間隔は 2 フレームに短縮間隔を空ける場合は、少なくとも 1 秒(推奨)規定なし

出典:Netflix English (USA) Timed Text Style Guide · Netflix General Requirements · Netflix Subtitle Timing Guidelines · BBC Subtitle Guidelines · DCMP Captioning Key: Text · DCMP Captioning Key: Presentation Rate

数え方。 文字数には文字、スペース、句読点を含みますが、改行や書式指定(<i> タグ、{\an8} コード、WebVTT の話者スパン)は含みません。読み上げ速度は、文字数 ÷(終了時刻 − 開始時刻)で計算します。単語は、文字または数字を含む文字列のまとまりです。そのため、DCMP の指定どおり、話者ラベルや効果音タグも単語数に含まれます。字幕間の間隔は、指定したフレームレートで、ある字幕の終了時刻から次の字幕の開始時刻までをフレーム数で計算します。規格が推奨として示している項目は、違反ではなく推奨事項として報告します。

CLI

npx github:markksantos/caption-checker captions.srt
# or: git clone https://github.com/markksantos/caption-checker && node caption-checker/bin/caption-check.js captions.srt

caption-check <file.srt|file.vtt> [more files] [options]
  -s, --standard <id>   netflix | netflix-kids | bbc | dcmp-upper | dcmp-middle | dcmp-lower  (default: netflix)
  -f, --fps <rate>      frame rate for frame-gap checks (default: 24)
      --vertical        9:16 video (the BBC allows three lines)
      --json            JSON output
      --advice          also print advice-only notes
      --mcp             run as an MCP server on stdio

いずれかの字幕が制限に違反すると 1 を返すため、字幕を公開する前の CI チェックとして使用できます。

ライブラリ

const { parse, check } = require('caption-checker');
const result = check(parse(fs.readFileSync('captions.vtt', 'utf8')), 'bbc', { vertical: true });
console.log(result.flagged, 'of', result.cues.length, 'captions break a limit');
for (const cue of result.cues) for (const issue of cue.issues) console.log(cue.n, issue.severity, issue.message);

check() は、規格 ID、または index.js の STANDARDS と同じフィールドを持つ独自の規格オブジェクトを受け取ります。

MCP サーバーと Claude Code プラグイン

同じチェックを MCP サーバーとして実行できるため、Claude、Cursor、VS Code などの MCP クライアントが作業中に字幕ファイルを確認できます。ツールは 2 つです。check_captions(ファイルパスまたは貼り付けた SRT/VTT テキスト、規格、fps、vertical)と list_standards(各制限値とその出典ページ)です。ローカルで実行されるため、キーもネットワーク接続も不要です。

# Claude Code plugin (MCP server + a caption QA skill)
/plugin marketplace add markksantos/caption-checker
/plugin install caption-checker@caption-checker

# or the server on its own
claude mcp add caption-checker -- npx -y github:markksantos/caption-checker --mcp

その他のクライアント:

{ "mcpServers": { "caption-checker": { "command": "npx", "args": ["-y", "github:markksantos/caption-checker", "--mcp"] } } }

skills/caption-checker/SKILL.md のスキルでは、エージェントに対して、どの規格を選ぶか、結果をどう報告するか、字幕の文言を変えずに修正する方法を説明しています。

調査

study/ には、このライブラリを使って測定した、NASA の動画と MIT OpenCourseWare の講義動画 387 本に含まれる 339,521 件の字幕を対象とした字幕の読解速度に関する調査のコードとデータが含まれています。

study-auto-captions/ には、299 本の動画を対象に自動生成字幕と人手による字幕を比較し、登録者数上位のチャンネルの字幕カバー率も調べたYouTube 自動生成字幕の精度に関する調査が含まれています。

study-dubbing/ には、登録者数上位 97 チャンネルの動画 485 本に含まれるすべての音声トラックを対象に、各チャンネルが作成した吹き替えと YouTube による自動吹き替えに分けて調べたYouTube の吹き替えに関する調査が含まれています。

study-video-length/ には、登録者数上位のチャンネルにおける最新動画 2,859 本の長さと、最近投稿された動画 1,484 本に占めるショート動画の割合を調べたYouTube 動画の長さに関する調査が含まれています。

バージョン履歴

CHANGELOG.md とリリースをご覧ください。

テスト

npm test

ライセンス

MIT © 動画編集・制作スタジオのMark Studios。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。