
こんにちは。
以前こちらの記事でTwitchの映像とチャットを自動で合成するスクリプトを配布したのですが、
今回絵文字やエモート、取得区間の指定を行えるように改良・・・というか作り直したので再び配布します。
また、さきゅばすを使わずに合成できるようになったので処理時間もクソアップしてます。
1時間の配信は2倍くらい
46分 → 26分
4時間の配信は3倍くらい
2時間11分 → 49分
自環境でテストはしましたが他だとどうなるか分からないのでもし動かなければ教えて下さい。
使えたって場合もよろしければコメントお願いします。
では導入方法を紹介します。
準備
必要なツールは以下になります。
TwitchDownloaderCLI
Twitchのアーカイブ、チャットをダウンロードしたり、チャットを動画化したものを作れたりする便利なツールです。
https://github.com/lay295/TwitchDownloader
リンク先の右側、Releasesからダウンロードできます。

今回も使うのはCLI(コマンドで実行できるもの)なので「TwitchDownloaderCLI-1.xx.x-Windows-x64.zip」をダウンロードしてください。

ダウンロードしたら解凍します。場所はどこでもいいですが私はCドライブ直下に配置しています。

Python
以下からPython3をダウンロードし、インストールします。
https://www.python.org/downloads/
多分最新版で大丈夫だと思います。

「Use admin privileges when installling py.exe」、「 Add python.exe to PATH」をクリックして選択し「Install Now」をクリックします。完了したらCloseしてください。

左下のwindowsアイコンからコマンドと入力してコマンドプロンプトを選択し実行します。

python --version
と入力しEnter→バージョンが確認できれば導入はOKです。

Auto-Editor
無音区間を検知し、カットしてくれるツールです。
インストールはコマンドで行います。コマンドプロンプトを起動し、下記のコマンドを順番に入力してください。
pipをアップグレードします。
pip install --upgrade pip
Auto-Editorをインストールします。
pip install auto-editor
定期的に更新されるので下記のコマンドでアップグレードします。
pip install auto-editor --upgrade
以下のコマンドを実行し、helpが表示されたらインストールは完了です。
auto-editor --help

ffmpeg
コメントの合成に必要なのでffmpegをインストールします。
https://www.gyan.dev/ffmpeg/builds/

リリースビルドの最新リリースにある「ffmpeg-release-full.7z」を選択しダウンロード。
ダウンロードが完了したら解凍してCドライブ直下に配置します。

次に環境変数の設定を行います。これをすることでffmpegをどこからでも実行できます。
スタートメニューからシステム環境変数の編集をクリック

環境変数をクリック

上のPathを選択して編集ボタンをクリック

新規を選択し、先ほどCドライブ直下に置いたffmpegのbinのディレクトリパスを入力します。

↓のアドレスバーの値

OKを選択して閉じます。これで導入は完了です。
コマンドプロンプトを開き、「ffmpeg -version」と入力してエラーにならなければ完了です。

スクリプト
以下からスクリプト類をダウンロードします。
ダウンロードした「run_twitch_nico.bat」「twitch_nico.py」「requirements.txt」を「TwitchDownloaderCLI」フォルダ内に追加します。

これで準備は完了です。
使い方
「TwitchDownloaderCLI」フォルダ内「run_twitch_nico.bat」をダブルクリックで実行します。
初回は初期設定が走ります。必要なライブラリなどがインストールされるので少し待ちます。

初期設定が完了したら入力に移ります。
VOD ID を入力してください:
配信のVOD IDを入力します。URLの数字になっているところです。


処理モードを選択してください。(1: CPU, 2: GPU):
CPUで処理するか、GPUで処理するか選べます。
ffmpegのエンコードをどれでやるかというだけなので好きな方を選んでください。
ちなみにGPUはNVIDIA製のGPUを対象にしています。AMDを使いたい場合は「twitch_nico.py」の「VIDEO_ENCODER_GPU」「NVENC_PRESET」「NVENC_CQ」を弄れば動くかもしれません。AMDのグラボを持っていないので検証できませんが。

取得する区間を指定しますか?(y/n):
取得する区間の時間を指定できます。はいなら「y」いいえなら「n」

開始時間、終了時間をそれぞれHHMMSSの形式で6桁でで入力します(数字のみでOK)
見どころのみを切り取りたい場合などに使えます。
ノーマライズ処理を行いますか?(y/n):
音量を音割れしないギリギリまで引き上げてくれる処理です(loudnorm)。はいなら「y」いいえなら「n」
例によって、私のよく見ている配信者は音がクソちっせぇアホアホちゃんなのでノーマライズをして音量を底上げしてあげる必要があります。編集ソフトでもできますが面倒なのでここでやっちゃう。多分他の配信者だったらいらないんじゃないかなと思います。完全に私専用。

無音削除を行いますか?(y/n):
無音区間を検知してその部分をカットできます。はいなら「y」いいえなら「n」
そこそこ時間がかかるので注意。一応区間削除した動画は元動画とは別に作成されるので安心してね。

これで入力は完了です。あとは完成するのを待ちましょう。
パラメータの設定について
「twitch_nico.py」にいくつかパラメータを用意しました。「ユーザー設定」の箇所です。

ここでフォント・文字サイズ・余白・高さ・透明度・縁取りの細かい指定などが行えます。
ただフォントは変えない方がいいかなと思います。今メイリオで設定していて、ニコニコ風にするなら本当はMSPゴシックにしないといけないんですが、フォント番号の選択とかが上手くいかなくてボツにしました。なのでこの状態でmsgothic.ttcを指定してもほっそいほっそい字になって出力されます。
一応悪あがきとして疑似太さというパラメータを追加し、文字の太さを変えることでそれっぽくはなるのですがなんか微妙なのでオマケ程度に思っておいてください。
もしフォントをmsgothic.ttcとするなら、FAUX_BOLD_PXは1にしてください。これが一番それっぽいです。
参考
・TwitchDownloaderCLI README.md
https://github.com/lay295/TwitchDownloader/blob/master/TwitchDownloaderCLI/README.md#example-commands
CLIコマンドが様々乗っているのでTwitchからのダウンロード時になんか設定値を変えたい場合は参考にしてください。
・動画編集でジェットカットを無料で自動化する方法
https://rcg.jp/auto_editor/
auto-editorの導入で参考にさせてもらいました。ほかにもパラメータを指定できるので見ておくと良いかもです。
コマンド一覧は公式サイトに載っているので参考にしてください。
https://auto-editor.com/ref/options
・[FFmpeg] 音声を聞きやすく調整する
https://kirinsuki.net/2024/03/17/
ffmpegでの音量調整について纏められています。今回使ったのはloudnormでしたが他にもやり方があるようです。試してみてください。

コメント
さきゅばすからの移行を検討しています。
現在「comeconv」を使ってコメント位置を調整(4秒遅らせて表示)しているのですが、こちらのツールで変換する際、同様の設定を行うことは可能でしょうか?
そういうのは想定してなかったんですが今突貫でコード修正しました。今ドライブに上がっているのが最新です。
twitch_nico.pyのCOMMENT_OFFSET_SEC = 0.0という箇所を直接編集することでコメントのタイミングを調整できるようにしました。
例えば、4秒早く流したい場合は「COMMENT_OFFSET_SEC = 4.0」、4秒遅く流したい場合は「COMMENT_OFFSET_SEC = -4.0」という風に指定してもらえばコメントのタイミングをずらすことができます。
上手く動きました。ご対応ありがとうございます!
とても有益な情報ありがとうございます。
こちらさきゅばすのように表示するコメント数を減らす事って可能ですか?
お待たせしました。こちらで対応しました。
https://youtu.be/V0YBZk4N62U?si=XMFN6tnsccwOBWgw
めちゃくちゃ便利なツールの開発ありがとうございます
このツールでコメント表示時間の調整はできませんか?(長文のコメントほど早く画面に流れるみたいな)
お待たせしました。こちらで対応しました。
https://youtu.be/V0YBZk4N62U?si=XMFN6tnsccwOBWgw
ありがとうございます。有り難く使わせていただきます。m(__)m
ツールの開発ありがとうございます。
KICK用に変更して使わせていただきます。
普段より有難く使わせていただいております。
ただ、先日から動画を出力すると4時間のアーカイブが14時間ほどで出力されてしまい
動画も途中から静止画+音のような状態になってしまうようになりました。
出力中にエラーなどは確認できておらず、原因がわからない状態です。
出力時間を配信開始から終了までの区間で設定しても同様の状態になってしまいます。
なにか解決法はありますでしょうか… 再起動、導入しなおし等は試しましたが改善されず・・・
という状態です…