FFmpegを使ってなるべく簡単にTverの番組をダウンロードする方法

番組視聴はTverで

Tver

Tver

家族でテレビ番組を視聴するのは基本的にTverを利用しています。
ただTverだと再生速度を速めて視聴するとPCと回線の負荷が大きいのか、カクカクになったり音声とズレたりするなどの不具合が発生します。

番組は一旦ダウンロードして

そこで一旦PCにダウンロードしてからPotoPlayerを使っています。
PotoPlayerならば0.1倍単位で速度調整できるので基本は2.8~3.0倍、トークが中心の番組やお笑いのネタ番組は1.8~2.2倍で。

対応ソフトでもエラーが出てダウンロードできない番組もある

そこでTverをPCにダウンロードする方法にとなります。
Tverに対応したダウンローダーがフリーソフトで配布されているのですが、一部の番組はエラーが出てダウンロードすることができません。
そこでFFmpegを直接使います。

FFmpegを使ってダウンロード

FFmpegとは、オープンソースのマルチメディアフレームワークです[1]。これは、ビデオや音声をエンコード、ストリーミング配信、変換などを行うために使用されます[1]。FFmpegは、様々なオペレーティングシステム(OS)で動作し、多くのコーデックをサポートしています[1]。FFmpegを使用すると、ビデオや音声ファイルを他のフォーマットに変換できます[1]。また、FFmpegを使用してiPhoneやiPadの画面収録も行うことができます[2]。さらに、H.264ビデオのRTPペイロードフォーマットに関連したRFC 6184もサポートしています[3]。

Just a moment...

「FFmpegを直接使います」と書いたのは、以前はTverのm3u8ファイルを保存して、それをFFmpegで動かすBATファイルを使っていました。
毎日エラーが出るのも数回のことですが、しだいに作業が面倒になってきて、もっと簡単にできないかなと考えていました。
プログラムとか全く書けないのですが、手元にあるものを組み合わせて何とかしようと考えるの好きなんです。

必要なもの

今回、必要なものは下記の通り

  • ブラウザ ※拡張機能 Video DownloadHelper が使えるもの
  • ブラウザ拡張機能”Video DownloadHelper”
  • FFmpeg
  • PhraseExpress_USB ※あると楽
  • コマンドランチャー ※あると楽
  • メディア再生プレイヤー ※自分はPotPlayer

ブラウザと再生プレイヤーは普通あると思うので、あると便利な2ソフトは別にして必須なのはFFmpegとなります。

コマンドラインを準備する

FFmpegを直接操作するためコマンドプロンプト上でコマンドラインを入力して動かします。
簡単にダウンロードを開始するためのコマンドラインの雛形を用意します。
今回のコマンドラインの基本形は “FFmpeg.exeのフルパス” -i “m3u8ファイルのURL” “ダウンロードしたファイル名.ts” です。
なお後で簡単に書きますが、コマンドラインの記述でダウンロードする際にファイル形式をmp4などに変換できますが、自分は視聴したら削除しますし、視聴に使用しているPotPlayerはtsファイルもそのまま再生できるので基本はこのままです。

あったら便利なPhraseExpress

これをある程度簡単に準備できたらいいなぁと考えたのがPhraseExpress_USB
これを使ってm3u8ファイルのURLをコピーするだけでダウンロード用のコマンドラインを自動で生成するようにします。

PhraseExpressは、文章を効率的に作成するためのスニペットツールであり、キーワードを入力するだけで文章を呼び起こすことが可能である[1]。また、テンプレートを使用して文章を作成したり、既存の文章を編集したりすることも可能である[1]。さらに、フォントや行の高さなどの設定も変更可能であり、日本語にも対応している[2]。PhraseExpressは2017年から日本国内でサービスが開始されており、他の画像編集ツールと比較しても非常に便利なツールとなっている[3]。

Just a moment...

今回はクリップボードにコピーしたm3u8ファイルのURLを定型文の中に挿入して、ファイル名にはマクロ使って現在の年月日時分秒を挿入することで乱数的な役割を果たし、連続して処理をしても他ファイルと名前の重複を起こさせないというところがポイントです。
…ごめんなさい、さすがにファイル名に番組情報を持ってくることは自分のスキル中ではできません。
PhraseExpressの定型文に

C\…\ffmpeg.exe -i “{#INSERTCLIPBOARD}” “C:\Users\owner\Videos\{#datetime -f yyyymmdd-hhnnss}.ts”

でセットしておくと

“ffmpegがあるディレクトリまでのフルパス” -i “現在クリップボードにコピーされているテキスト” “マイドキュメントのビデオフォルダ内に現在の年月日-時分秒.ts”

となり、m3u8ファイルのアドレスをコピーすることにより自動的に

“C:\…\ffmpeg.exe” -i “m3u8ファイルのURL” “C:\Users\owner\Videos\20230101-000000.ts”

というコマンドラインが生成されます。
これで準備完了。

m3u8ファイルのアドレスを取得する

次にブラウザの拡張機能 Video DownloadHelper を使ってm3u8ファイルのアドレスを取得します。
ダウンロードしたい番組のページを開いて「Video DownloadHelper」から画面サイズの表示されている項目(4~5個あるはずです)の右側にある矢印をクリックし詳細を表示します。

Video DownloadHelperをクリック

Video DownloadHelperをクリック

右側にある矢印をクリック

右側にある矢印をクリック

詳細を表示

詳細を表示

ちなみに「URLのコピー」で取得できるURLをダウンロードしても音声が出ませんのでご注意ください。
詳細から「masterManifest」の項目あるURLをコピーします

「masterManifest」の項目あるURLをコピー

「masterManifest」の項目あるURLをコピー

そうすると

“C:\…\ffmpeg.exe” -i “https://manifest.(中略)master.m3u8?fastly_token=(中略)%3D%3D” “C:\Users\owner\Videos\20230101-000000.ts”

というコマンドラインが完成します。

コマンドプロンプトを起動

次にコマンドプロンプトを起動します。
手っ取り早いのはcmd.batというテキストファイルをデスクトップ上に作成し、テキスト

C:\Windows\system32\cmd.exe

を記述するだけ。
ダブルクリックしてcmd.batを起動すると、コマンド入力待ち状態でコマンドプロンプトが起動します。
なお自分はクリックが面倒なのでコマンドランチャーに C:\Windows\system32\cmd.exe を登録してキーワード入力で起動するようにしてあります。

ここに先程の完成したコマンドラインを貼り付けてEnterキーをポッチとすればダウンロードが始まります。
番組時間と回線状況によりますが数分はかかります。
ダウンロードが完了したらコマンドプロンプトを閉じて終了。
必要に応じてファイル名を番組名などに変更してください。

あとは番組をじっくり楽しみましょう!!

ダウンロードする時にサイズやファイル形式などを変換する

さて、非力な自分のPCでは最高画質である1920×1080で再生すると負荷がかかりすぎてとんでもないことになってしまいます。まして速度を上げようものなら全く操作を受け付けなくなる始末。どんなPC使ってんだって突っ込まれそうですが。
なので、自分の場合はサイズを小さめの1280×720にしています。

この場合、
“C:\…\ffmpeg.exe” -i “m3u8ファイルのURL” -s 1280×720 “C:\Users\owner\Videos\20230101-000000.ts”
URLと出力ファイルの間にサイズを指定します。

また.mp4に変換したい場合は出力するファイル名の拡張子を変更します。
“C:\…\ffmpeg.exe” -i “m3u8ファイルのURL” “C:\Users\owner\Videos\20230101-000000.mp4

これで大丈夫のはず…です。
FFmpegは他にも設定ができ、それらを解説するページも多数あるのでそちらをど覧ください。

ひとまず自分はここまでで。

コメント受付中です どなたでもコメントできますがスパム対策を施しています

タイトルとURLをコピーしました