字幕ファイルを使って動画を自動切り抜き・リネームするスクリプト

皆さんごきげんよう。まいまいです。今回は記事タイトル通り、字幕ファイルを使用して動画や音声ファイルをセリフごとに自動切り抜き・リネームするPythonスクリプトを作成したので紹介し、使用法を解説します。一応exe版も用意してあります。

実行すると画像のように本編内の時間、セリフがファイル名に指定されたファイルが作成されます。

準備するもの

このスクリプトを実行するために必要なものは以下の通りです。

  • 切り出す元の動画・音声ファイル
  • 動画ファイル用の字幕ファイル(srtファイルとass,ssaファイルに対応)
  • ffmpeg実行ファイル(既に導入済みでパス通ってる人は不要)

字幕ファイルの用意は各自で行ってください。質問等は受け付けません。

Youtubeの動画の場合は、J Downloader2を用いると(字幕がある場合は)字幕をsrt形式で保存してくれるので、それを利用するのも良いかもしれません。

需要があれば他の形式の字幕ファイルにも対応させたいとは思っています。

ffmpegの導入方法については以下の記事を参考にしてください。面倒な場合はffmpeg.exeをスクリプト本体と同じ場所に置くだけでもOK。

[汎用説明記事] ffmpegの導入とパスの通し方 – YTPMV.info
他の記事で説明を端折るための記事です。簡潔に説明します。 ffmpegとは、動画や音声のエンコード、デコードを
ytpmv.info
No Image

スクリプトのダウンロード

スクリプト本体はGithubに公開しているので、下のリンクにアクセスしダウンロードしてください。

GitHub – maimai22015/SubtitleVideoSplitter
Contribute to maimai22015/SubtitleVideoSplitter development by creating an account on GitHub.
github.com
No Image

<> CodeからDownload ZIPを選択するとダウンロードできます。

Pythonスクリプト(main.py)とexe版(main.exe)を用意していますが、なるべくpython版を使用してください。exe版については動作検証行っていません。

使い方

使い方を解説します。

まずはコマンドプロンプトやpower shellを起動し、そこでスクリプトを実行してください。(なにかエラー吐いた場合に原因を分かりやすくするためです。)

(以下はテキストでコマンドプロンプトの出力を表示します)

[2023-02-02 13:24:42] __main__ INFO: 字幕ファイルを選択 ファイルパスもしくは「*.srt」の形式で拡張子を入力
>

字幕ファイルのパスの入力を求められるので、字幕ファイルのファイルパスを入力します。絶対パス相対パスどっちでもOKです。

*.srt*.assの形式で、拡張子だけど指定して一括処理することも可能です。

> D:\document\MAD\ytpmvinfo\subtitle.srt
[2023-02-02 16:00:35] __main__ INFO: 動画・音声ファイルを選択 ファイルパスもしくは「*.mp4」の形式で拡張子を入力
>

次に動画ファイルのパスの入力を求められます。同様に動画ファイルのパスを入力してください。動画ファイルから抽出した音声ファイルでもOKです。

字幕ファイルの設定で拡張子のワイルドカードで設定した場合は動画ファイルも同様にワイルドカードで設定してください。

一括処理する場合は、処理はファイル名順に行われます。適当なファイル名にしていると正常動作しないので気をつけてくださいね。

> D:\document\MAD\ytpmvinfo\movie.mp4
[2023-02-02 16:11:13] __main__ INFO: 事前にffmpegを導入しておく必要があります。
[2023-02-02 16:11:13] __main__ INFO: フォルダ作成成功 : 'D:\document\MAD\ytpmvinfo\movie'
[2023-02-02 16:11:14] __main__ INFO: ffmpeg -ss 00:00:05.809 -i "D:\document\MAD\ytpmvinfo\movie.mp4" -t 00:00:07.680 -c copy "D:\document\MAD\ytpmvinfo\movie\3_00-00-06-309_00-00-12-989_ダム.mp4"
[2023-02-02 16:11:14] __main__ INFO: ffmpeg -ss 00:00:06.950 -i "D:\document\MAD\ytpmvinfo\movie.mp4" -t 00:00:06.540 -c copy "D:\document\MAD\ytpmvinfo\movie\4_00-00-07-450_00-00-12-990_[音楽].mp4"
[2023-02-02 16:11:14] __main__ INFO: ffmpeg -ss 00:00:13.830 -i "D:\document\MAD\ytpmvinfo\movie.mp4" -t 00:00:08.549 -c copy "D:\document\MAD\ytpmvinfo\movie\5_00-00-14-330_00-00-21-879_ています.mp4"
以下省略

すると、動画ファイルの場所にフォルダが作成され、動画や音声ファイルが書き出されます。

指定した動画・音声ファイルと同じ形式で書き出されます。

(※ エンコードを挟まずに書き出す設定のため、動画ファイルの場合はちょっと前のフレームから書き出されます。厳密にファイル名の時間と同じではない、ということです。)

以上。

なにか問題が発生したり改善点があった場合は私まで連絡をください。ノシ

コメントする?

メールアドレスが公開されることはありません。