Communitygithub.com

luluoneone/japanese-subtitle-polish

日本語SRT字幕の誤字・誤変換・表記ゆれ・固有名詞・改行を、字幕の件数・番号・時刻を変えずに整える。Whisperや動画編集ソフトから書き出したSRTを、動画へ戻す前に直すときに使う。AIは修正候補(番号・原文・修正案・理由・確認根拠)だけを作り、付属スクリプトが原文と照合して適用し、件数・番号・順番・時刻の一致を検査する。「字幕を整えて」「SRTの誤字を直して」「字幕の改行を直して」などで使う。Use to proofread Japanese .srt subtitles without touching timecodes.

japanese-subtitle-polish とは?

japanese-subtitle-polish is a Claude Code agent skill that 日本語SRT字幕の誤字・誤変換・表記ゆれ・固有名詞・改行を、字幕の件数・番号・時刻を変えずに整える。Whisperや動画編集ソフトから書き出したSRTを、動画へ戻す前に直すときに使う。AIは修正候補(番号・原文・修正案・理由・確認根拠)だけを作り、付属スクリプトが原文と照合して適用し、件数・番号・順番・時刻の一致を検査する。「字幕を整えて」「SRTの誤字を直して」「字幕の改行を直して」などで使う。Use to proofread Japanese .srt subtitles without touching timecodes.

対応✓Claude Code~Codex CLI~Cursor
npx skills add luluoneone/japanese-subtitle-polish

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Japanese Subtitle Polish(日本語字幕ととのえ)

日本語SRTの本文だけを整えるSkillです。AIがSRT全文を書き直すことはしません。 AIは修正候補のJSONを作り、scripts/ のPythonスクリプトが原文と照合して適用・検査します。

同じフォルダの app.py(起動ファイルあり)は、利用者がSRTをドロップして使うアプリです。会話から頼まれた場合は、このSKILL.mdの手順で進めます。

このファイルがあるフォルダを SKILL_DIR と書きます。スクリプトはPython 3.9以上の標準ライブラリだけで動きます (macOS・Linuxは python3、Windowsは python または py)。

標準動作で守ること

  • 元のSRTは読むだけ。修正版は <元の名前>.polished.srt に別名で保存する。
  • 字幕の件数・番号・順番・開始時刻・終了時刻は変えない。変えるのは各字幕の本文と、本文の中の改行だけ。
  • 誤字・誤変換・表記ゆれ・指定辞書の固有名詞を直す。数字・単位・否定・断定の強さ・話者の口調は保つ。
  • 音声や資料がないと決められない箇所は直さず、"status": "review"(要確認)にする。自然に見せるための推測で言葉を置き換えない。
  • 「えー」「あの」などのフィラー削除と、発言の要約はしない。利用者がはっきり頼んだときだけ --allow で選ぶ。
  • 表示時間に対して長すぎる字幕は、時刻を変えずに要確認として報告する(スクリプトが自動で出す)。
  • 字幕の分割・結合、時刻の調整、翻訳、音声の聞き直しはこのSkillの範囲外。必要なら利用者に伝える。

手順

1. 条件を確かめる

対象のSRT、辞書(固有名詞の一覧)の有無、用途を確かめる。分からなければ次の初期値で進め、聞くのは必要なことだけにする。

用途プリセット内容
映像制作の現場基準で作るgenba最大2行・1行15字・見やすさの目安 1秒4字
横長の動画(初期値)standard最大2行・1行16字・見やすさの目安 1秒6字
読みやすさを優先(翻訳字幕・高齢の視聴者など)safe最大2行・1行13字・見やすさの目安 1秒4字
縦型のショート動画vertical最大2行・1行12字・見やすさの目安 1秒6字

見やすさの目安(1秒に読む字数)はルールではなく目安で、超えた字幕を報告するだけ。利用者が別の値を言えば --max-cps で変え、「知らせなくていい」なら --max-cps 0。

句読点の扱いも確かめる。標準は「残す」。テロップとして使う場合は、句読点・かっこを外す --punct telop を選べる (ダッシュ・…・!・?は残す。残す記号は --punct-keep で変えられる)。

利用者が字幕の文字の大きさを分かっている場合は、字数の代わりに --video-size 1920x1080 --font-size 80 のように指定する(1行の字数をそこから計算する)。 数え方と変更方法は references/settings.md。辞書を作る場合は references/glossary.md。

2. SRTを読む

python3 SKILL_DIR/scripts/inspect_srt.py 入力.srt --glossary 辞書.json --template 入力.candidates.json

辞書は .json と .tsv のどちらでもよい。辞書がなければ --glossary を省く。

  • 構造の問題、字幕ごとの本文・表示時間・1秒あたりの文字数、改行の問題、辞書と一致した箇所、表記ゆれの手がかりが出る。
  • --template で、SRTのSHA-256と辞書由来の候補(ID G…)を入れた候補ファイルの下書きができる。
  • 読み込みエラーが出たら、内容を利用者にそのまま伝える(Shift_JISなら --encoding cp932)。
  • 字幕一覧は全件読む。長い場合は区切って読み、読んでいない字幕について判断しない。

3. 修正候補を作る

references/rules.md の基準で判断し、候補ファイルの candidates に追記する。 形式は references/candidates-format.md。

  • original は inspect の出力から一字一句写す。同じ字幕に同じ文字列が複数あるときは、前後の文字を含めて一意にする。
  • reason(なぜ直すか)と evidence(何で確かめたか)を必ず書く。どちらかが空の候補は適用されない。
  • 辞書由来の候補 G… も文脈を読み、誤一致なら削除するか review にする。
  • 改行はスクリプトが整えるので、通常は候補にしない(inspect の「⚠ 改行」も、適用時にスクリプトが直す)。
  • 固有名詞の公式表記をWebで確かめられる環境なら確かめ、evidence に確認先のURLを書いてよい。確かめていなければ review。
  • 字幕の重複・分け方の誤りなど、本文の修正では直せない疑いも review で報告する(proposed は空、type は「その他」でよい)。
  • 迷ったら review。要確認は失敗ではなく、利用者が音声で確かめるための一覧。

4. 適用する

python3 SKILL_DIR/scripts/apply_candidates.py 入力.srt 入力.candidates.json --glossary 辞書.json

プリセットや --punct を変える場合は、inspect と apply の両方に同じ指定を付ける。 --punct telop のときは句読点をスクリプトが外すので、句読点の候補は作らない。

  • 修正版・変更一覧・要確認一覧・確認画面(.review.html)・適用ログを、元のSRTと同じフォルダに書き出す。既存の出力は上書きしない(再実行は --overwrite)。
  • 照合に失敗した候補・安全チェックで止まった候補は適用されず、要確認一覧の「適用しなかった修正候補」に理由が載る。
    • 原文の写し間違いなら、候補を直して再実行してよい。
    • 安全チェック(数字・否定・口調などが変わる)で止まった候補を、AIの判断で approved にしない。利用者に見せ、承認を得たものだけ "approved": true にする。
  • フィラー削除・要約は、利用者が頼んだときだけ --allow フィラー削除 / --allow 要約 を付ける。

5. 検査を確かめる

apply は書き出したあと、自動で検査を行い結果を表示する(変更一覧の末尾にも載る)。単独で行う場合:

python3 SKILL_DIR/scripts/verify_srt.py 入力.srt 入力.polished.srt --log 入力.apply-log.json

1件でも NG があれば、修正版を使わないよう利用者に伝え、原因を調べる。

6. 確認画面を案内する

入力.review.html をブラウザで開くと、字幕を映像の枠に重ねた見え方、タイムライン上の要確認の位置、修正前後の差分を確認できる。 利用者はここで候補ごとに「採用/見送り」を選び、要確認の箇所に確かめた表記を入れ、字幕を直接直せる。 画面はSRTを書き換えない。「決定を保存」で 入力.candidates.reviewed.json ができるので、利用者に頼まれたらそのファイルで手順4を --overwrite 付きでやり直す。 保存されたファイルの approved: true は、利用者が画面で承認したものとして扱ってよい。

7. 報告する

次の順で短く報告する。機械検査の結果と、日本語・映像の確認を混ぜない。

  1. 出力したファイル(修正版・変更一覧・要確認一覧・確認画面)
  2. 機械検査:件数・番号・順番・時刻・BOM・改行コードが原本と一致したか。「時刻が一致した」はこの検査の結果だけを指す。
  3. 主な修正を数件(修正前 → 修正後)と、改行だけ整えた件数
  4. 要確認:音声で確かめてほしい箇所、見やすさの目安より速い字幕(誤りではない)、上限に収まらない字幕、適用しなかった候補
  5. 確認していないこと:日本語の意味・読みやすさ・音声や映像との同期は、人が修正版を再生して確かめる必要がある

関連スキル