全然わからないので、実践で試した知見です。
ちなみに Power Director を使っていますので、ほかの動画編集ソフトでは違ってくるかもしれません。
サンプルはこの動画でやっていきます。
www.youtube.com
この動画は既に字幕を入れていますが、この YouTube 動画の文字起こしを動画の字幕に入れる例で話をしていきましょう。
最終的な結論としての .srt ファイルのイメージはこんな感じです。
1 00:01:34,94 --> 00:01:44,104 <font size="16"><font color="#ffffff">C# Tokyo コミュニティ参加案内 コンパス経由でイベント参加が可能であることを案内</font></font> 2 00:01:40,100 --> 00:01:50,110 <font size="16"><font color="#ffffff">SNS 活用に関する周知 ハッシュタグ「#C#東京」を活用した SNS 発信を推奨</font></font> 3 00:01:46,106 --> 00:01:56,116 <font size="16"><font color="#ffffff">コミュニティ協力のお願い SNS シェアや積極的発言を通じたイベントの盛り上げを依頼</font></font> 4 00:01:53,113 --> 00:02:03,123 <font size="16"><font color="#ffffff">初心者向け発信例の紹介 「#C#東京 に参加しています」のようなライトな投稿例を紹介</font></font> 5 00:02:13,133 --> 00:02:23,143 <font size="16"><font color="#ffffff">イベントの主旨案内 .NET 10 Preview に関する最新情報の共有と議論をテーマとする旨を告知</font></font> 6 00:02:26,146 --> 00:02:36,156 <font size="16"><font color="#ffffff">プレゼンターによる進行開始 須藤氏による .NET 10 Preview アップデート情報の紹介を開始</font></font>
これを動画ソフトにインポートすると、動画に字幕を入れられます。
■ 手順を追ってやっていく
というわけで、ここから手順を追って動画に字幕を入れるための字幕データファイルを作っていきましょう。
■ 文字起こしデータを取得する
この画像の右のもし起こし欄をマウスでドラッグしてコピー。メモ帳なりにペーストしてテキストとして確保しておきます。
YouTube の字幕データをダウンロードする手もあるでしょうが、字幕データは文章の区切りぶつ切りになりすぎてあまり使えなかったです。文字起こし欄の方が現実的です。

取得した文字起こしデータの例
1:34 コンパスのところから入れますんでこちら から是非参加してみてくださいハッシュ 1:40 タグはですね各種SNSこのC#東京と いうのでやっていますコミュニティからの 1:46 お願いとしてえっとコミュニティでやっ てることですねSNSのシェアなどして いただけるととても嬉しいのでこのSNS 1:53 の発達卓ですねC#東京というのでえ是非 積極的な発言をよろしくお願いしますま 2:01 まずはですね軽くあの今日はシャープC# 東京のイベントに参加していますみたいな 2:07 ものからちょっと刀らしで投稿して いただけたらなと思いますはいさあという 2:13 わけで今回のイベントもよろしくお願いし ますはいで今回のイベントはえっとNET 2:19 10のプレビューevですねを話題として やっていきたいと思いますはいじゃあいつ 2:26 ものことながら須藤さんえちょっと4の アップデートの情報を表示しながらお願い
■ 生成 AI に整形してもらう
この取得したデータそのままでは字幕としては入れにくいので要約をします。
こんなプロンプトで要約をしてみました。
どのような話題があったか、見出しを付けてください、その際、タイムラインの分秒の表示は残し、話題ごとに mm:ss 話題 のようにしてください。話題の文体は microsoft learn 風にお願いします。 一行のフォーマットを mm:ss タイトル 内容 に変換してください。
こんなのが出てきます。
01:34 C# Tokyo コミュニティ参加案内 コンパス経由でイベント参加が可能であることを案内 01:40 SNS 活用に関する周知 ハッシュタグ「#C#東京」を活用した SNS 発信を推奨 01:46 コミュニティ協力のお願い SNS シェアや積極的発言を通じたイベントの盛り上げを依頼 01:53 初心者向け発信例の紹介 「#C#東京 に参加しています」のようなライトな投稿例を紹介 02:13 イベントの主旨案内 .NET 10 Preview に関する最新情報の共有と議論をテーマとする旨を告知 02:26 プレゼンターによる進行開始 須藤氏による .NET 10 Preview アップデート情報の紹介を開始
この形式、YouTube の概要欄に貼ると動画内のジャンプ機能のある目次になるので、そこも使いやすいです。
■ 自作のプログラムの出番
ここからは自作のツールを使っていきます。手作業はつらいので。
ビルドしてできた実行ファイルで変換をしていきます。
ToSrt.exe 0 .\文字起こし.txt -10 0 > out.txt
変換をしますといいましたが、すみません。それは嘘です。まずは、先の目次に使えるデータの時間をずらしました。
動画は一般にオープニングを入れたり、不要な先頭を削除したり、開始位置がえてして変わるものです。その場合に、データ内のすべての時刻を書き換えるのは面倒。そんな面倒もプログラムで一瞬です。↑ のコマンドで、開始を 10 秒削った (時刻を全部 -10 秒する) ことができます。この例では、結果を out.txt というファイルに保存しています。
00:01:24 C# Tokyo コミュニティ参加案内 コンパス経由でイベント参加が可能であることを案内 00:01:30 SNS 活用に関する周知 ハッシュタグ「#C#東京」を活用した SNS 発信を推奨 00:01:36 コミュニティ協力のお願い SNS シェアや積極的発言を通じたイベントの盛り上げを依頼 00:01:43 初心者向け発信例の紹介 「#C#東京 に参加しています」のようなライトな投稿例を紹介 00:02:03 イベントの主旨案内 .NET 10 Preview に関する最新情報の共有と議論をテーマとする旨を告知 00:02:16 プレゼンターによる進行開始 須藤氏による .NET 10 Preview アップデート情報の紹介を開始
■ いよいよ .srt
00:01:24 C# Tokyo コミュニティ参加案内 コンパス経由でイベント参加が可能であることを案内 00:01:30 SNS 活用に関する周知 ハッシュタグ「#C#東京」を活用した SNS 発信を推奨 00:01:36 コミュニティ協力のお願い SNS シェアや積極的発言を通じたイベントの盛り上げを依頼 00:01:43 初心者向け発信例の紹介 「#C#東京 に参加しています」のようなライトな投稿例を紹介 00:02:03 イベントの主旨案内 .NET 10 Preview に関する最新情報の共有と議論をテーマとする旨を告知 00:02:16 プレゼンターによる進行開始 須藤氏による .NET 10 Preview アップデート情報の紹介を開始
このデータをプログラムで .srt ファイルに変換します。
ToSrt.exe 1 .\文字起こし.txt 0 10 > 字幕.srt
時刻をずらすオプションはこの変換でも有効ですが、すでにインプットのファイルの時点でずらしてあるので、0 を指定しています。
10 の部分は、字幕の表示時間です。10 秒間字幕を表示する、という設定です。
出来上がったファイル
1 00:01:34,94 --> 00:01:44,104 <font size="16"><font color="#ffffff">C# Tokyo コミュニティ参加案内 コンパス経由でイベント参加が可能であることを案内</font></font> 2 00:01:40,100 --> 00:01:50,110 <font size="16"><font color="#ffffff">SNS 活用に関する周知 ハッシュタグ「#C#東京」を活用した SNS 発信を推奨</font></font> 3 00:01:46,106 --> 00:01:56,116 <font size="16"><font color="#ffffff">コミュニティ協力のお願い SNS シェアや積極的発言を通じたイベントの盛り上げを依頼</font></font> 4 00:01:53,113 --> 00:02:03,123 <font size="16"><font color="#ffffff">初心者向け発信例の紹介 「#C#東京 に参加しています」のようなライトな投稿例を紹介</font></font> 5 00:02:13,133 --> 00:02:23,143 <font size="16"><font color="#ffffff">イベントの主旨案内 .NET 10 Preview に関する最新情報の共有と議論をテーマとする旨を告知</font></font> 6 00:02:26,146 --> 00:02:36,156 <font size="16"><font color="#ffffff">プレゼンターによる進行開始 須藤氏による .NET 10 Preview アップデート情報の紹介を開始</font></font>
こんな感じ。このファイルを動画ソフトにインポートすると、今回の記事の参照動画のように字幕が動画に入りました。
■ 字幕データのフォーマット
どうやら実践で見てみると、こんな感じのフォーマットのようです。
連番 字幕表示開始時刻,字幕表示開始時刻の秒での値 --> 字幕表示終了時刻,字幕表示終了時刻の秒での値 <HTMLタグで文字修飾>字幕の文字列</<HTMLタグで文字修飾>>
■ 簡単ですね
これであなたも動画マスターです。