Communitygithub.com

kaylon-he/video-subtitle-skill

動画ファイルまたはURLに自動生成したハードサブ(焼き込み字幕)を追加し、字幕付きMP4とSRTを出力します。ユーザーが動画に字幕やキャプションを追加したいと依頼した場合に使用します。既存の字幕のみを編集する場合には使用しないでください。

video-subtitle-skill とは?

このスキルは、動画ファイルまたはURLに対して、自動的に字幕(SRT)を生成し、それをMP4に焼き込んで出力するためのものです。ワークフローは、まずffmpegで動画から16kHzのモノラル音声を抽出した後、whisper.cppを使用して音声をテキストに変換しSRT字幕を作成します。その後、PythonスクリプトでSRTをASS形式に変換し、画面幅に応じた自動改行やCJKフォント設定、半透明の背景ボックスを適用します。最後に、libass対応のffmpegを用いてASSを動画に焼き込み、完成した字幕付きMP4とSRTファイルを出力します。このスキルはClaude CodeやCline、Cursorなど、シェルスクリプトやCLIツールを実行できるAIエージェント向けに設計されており、ユーザーに字幕付き動画を提供したい場合に便利です。ただし、出力前に生成されたSRTの内容を確認し、人名や地名の誤認識を修正する必要があるため、AIエージェントはユーザーに確認を促すことが推奨されます。

対応~Claude Code~Codex CLI~Cursor
npx skills add kaylon-he/video-subtitle-skill

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

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

ドキュメント

Video Subtitle

動画に自動で字幕を追加し、その字幕を画面に焼き付けて、"字幕付きMP4 + SRT"を出力します。

パイプライン

  1. 16kHzモノラルwavを抽出(ffmpeg)
  2. whisper.cppでSRTに文字起こし(whisper-cli)
  3. SRT → ASS:画面幅に合わせて自動改行、CJKフォント、下部中央の半透明背景枠
  4. libass対応のffmpegでASSを焼き込み、音声はそのままコピー

使い方

bash scripts/add_subtitles.sh input.mp4 -o output.mp4 -l zh
  • -l/--language 元の言語、デフォルトは zh、auto も指定可
  • -f/--fontsize フォントサイズ、デフォルトは42
  • -s/--srt-only SRTのみ出力し、焼き込みは行わない

遵守事項

  • 文字起こしの内容を確認してから納品すること:スクリプトはSRTをターミナルに出力します。人名、地名、慣用句は誤認識されることがよくあります(例:「重阳姐」→「重阳节」、「久久重扬」→「九九重阳」)。誤りがある場合は、-s で一度SRTのみ出力し、修正した後に焼き込みを行ってください。
  • 最終成果物を検証すること:完成した動画から2〜3フレームを抽出し(-ss <秒> -frames:v 1)、字幕が完全で、切れたり画面からはみ出していないことを確認してください。
  • Homebrewの軽量版 ffmpeg を使用しないこと:そのビルドにはlibassが含まれておらず、subtitles/ass/drawtext フィルターがすべて欠けています。スクリプトは自動的にlibass対応のffmpegを選択します。インストール方法はREADME.mdを参照してください。
  • 長い文は必ず改行すること:ASSでは WrapStyle: 2(\N のみ認識)を使用しており、srt_to_ass.py が「画面幅 / フォントサイズ」に基づいて自動的に \N を挿入します。それでも文が画面からはみ出る場合は、-f のフォントサイズを小さくしてください。

環境依存関係

ffmpeg(libass対応)+ whisper-cli + ggmlモデル + python3。不足がある場合、スクリプトは明確なエラーを表示します。完全なライブラリリスト、インストールコマンド、トラブルシューティングについては README.md を参照してください。

関連スキル