Tver配信を便利に録画(保存)するTverRec
TverRecというGitHubで公開されているOSSのソフトウェアがあります。
技術的にはPowerShellで作られたWindows系のアプリなのですが、Linux等のUNIX系(MacOS含む)でもPowerShellを導入してやれば使用可能です。但しGUI操作ができるのはWindows版のみです。
以前Windows版でPowerShell Coreを入れて試してみたことがあったのでTverRecの動作概要はわかっていることから、最近自宅で良く使用しているLMDE6の環境にセットアップすることにしました。Power ShellをインストールできるPCがあれば試せます。
GitHubのページより、緑色のボタン「<>Code」からzip形式でダウンロードしておいて、zipを解凍して任意のフォルダに配置しておけば準備OKです。
ちなみにWindows版の方はセットアップから初めてほぼ自動化されていて手軽なのですが、Linuxで使用するにはちょっと手順を踏まなくてはならなくてクセがある感じです。でもきちんと設定をして行けばLinuxでも問題なくTverRecが使用できました。また一つデスクトップPC用のOSがWindowsじゃなくても良い理由が出来ました。
debian用の手順を参考にしてLMDE6にPowerShellをインストール
まずGitHub公式のドキュメントをきちんと読んで理解します。多分、最初に躓くのはPowerShellをLinuxにインストールするところだと思います。
Redhat、Ubuntu、debianの場合は素直にセットアップ手順に従うのが良いでしょう。LMDE6はdebian 12(Bookworm)がベースなのでdebian用のセットアップ手順を参考にします。
ここにdebianへのPowerShell導入スクリプトが掲載されているので試してみたところ、LMDE6ではdebianのバージョン情報が取得出来ずファイルが見つからない状態でした。LMDE6はbookwormがベースになっています。bookwormはdebian12なのでスクリプトを修正して実行することにしました。
いらない部分はコメントアウトしまくりです。一度こっきりなので結果オーライで良いと思います。wgetも既にインストールされてますのでコメントアウト。
###################################
# Prerequisites
# Update the list of packages
#sudo apt-get update
# Install pre-requisite packages.
#sudo apt-get install -y wget
# Get the version of Debian
#source /etc/os-release
# Download the Microsoft repository GPG keys
#wget -q https://packages.microsoft.com/config/debian/$VERSION_ID/packages-microsoft-prod.deb
wget -q https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb
# Register the Microsoft repository GPG keys
sudo dpkg -i packages-microsoft-prod.deb
# Delete the Microsoft repository GPG keys file
rm packages-microsoft-prod.deb
# Update the list of packages after we added packages.microsoft.com
sudo apt-get update
###################################
# Install PowerShell
sudo apt-get install -y powershell
# Start PowerShell
pwsh
最後にPowerShell 7.5.0と表示されたのでPowerShellのpwshコマンドが通って成功したっぽいです。これでPowerShellをLMDE6にインストール出来ました。

TverRecのファイル群の設定
引き続きTverRec関係の準備をしていきます。Windowsだと自動でやってくれますが、Linuxでは自動ではやってくれません。この辺りはニーズの問題でしょうね。利用者が増えてくればLinux版も充実すると思うのですが。(開発者も少ないユーザーの為に労力をかけてられませんからね)
使い方を知る上でもWikiは必ず読むことになると思いますが、要点だけ続きに記しておきます。
*.ps1と*.shファイルの実行権付与
TverRecはPowerShellで作成されたファイル*.ps1が沢山入っています。また*shファイルも沢山あります。
これらに実行権を与える必要があるみたいなので、プロパティ>パーミッションから実行権(プログラムとして実行可能)にレ点をいれます。読み書きの権限なんかも確認して修正しておく必要が少しありました。コマンドが苦手でもマウスポチポチで出来ますね。
confフォルダ内のファイル編集
confフォルダ内にはkeyword.confファイルがなかったのでresources/sample/からkeyword.sample.confをコピーして、confフォルダ内に配置してkeyword.confにリネームします。そしてテキストエディタで開いて、番組名にお気に入りの番組(シリーズ)を追記します。series/xxxxxxxxxxというのはTverの番組名ページのURLの一部になってますのでTverのサイトにアクセスして調べます。

次にダウンロードフォルダ等を指定します。
system_setting.ps1をコピーして、user_setting.ps1として並べて配置し、user_setting.ps1をテキストエディタで開いて
- ダウンロード先のフルパス
- ダウンロード中の作業ディレクトリのフルパス
- 移動先のフルパス
この辺りをLinuxのフォルダ(外付けHDDなど)に指定してやります。私の場合はSSDを酷使したくないので、PC内蔵のSSDではなくUSB外付けのHDDを指定しています。
$script:downloadBaseDir = '/media/sasapurin/HDD-1TB/Tver'
$script:downloadWorkDir = '/media/sasapurin/HDD-1TB/Tver/Temp'
$script:saveBaseDir = ''
Code language: PHP (php)
また、番組の整合性検証はデフォルトではffmpegによる完全検証が行われますが、PCの処理能力と処理時間を要するので、ffprobeによるざっくりした検証だけで良ければ下記も修正しておくと良いでしょう。どうせ観終わったら削除するので観られれば良いので私はsimplefiedValidationをTrueにしています。
$script:simplifiedValidation = $true
Code language: PHP (php)
※後で分かったことですがTempフォルダは空っぽになると最終処理でフォルダごと削除されてしまうので、なにかダミーファイルをフォルダ内に配置しておくと消されずに済みます。
高度な設定の編集は必須ではないみたいなので、各自で調べて任意に調整したら良いと思います。カスタマイズ性が高いので不便だなと思った部分は機能が無いか調べて、機能が実装されていたらラッキーと思って任意でお好みに設定するのが正解ですね。
メタデータを動画に埋め込む機能も標準で有効になっていますが、私はまとめて視聴したら削除してしまうので無効にしています。そうすると速く処理が終了します。解説を読んだりする努力は必要ですが使わない機能は無効にしてしまうのも一案ですね。
解説放送版は要らないから除外しとく
Tverでは「解説放送版」や「ダイジェスト」、「予告」なども含まれます。私はコレらは不要なのでダウンロード対象外番組としてキーワード登録しておきます。
confフォルダ内にignore.confというファイルを置いて、除外キーワードを記しておくとダウンロード対象外として扱ってくれます。一度除外扱いされるとダウンロード済みとしてdbフォルダ内のhistory.csvに追記されるので次からはダウンロード候補に上がってきません。
要らない番組をダウンロードすると時間もかかるしリソースも無駄遣いなので除外キーワードは設定しておいた方が合理的です。

この辺りは使っている内に要らないキーワードが分かってくるので、徐々にカスタマイズしてより効率的な自動処理が行えるよう各自で工夫する必要がありそうです。
TverRecを実行してみる
unixフォルダ内の、start_tverrec.shをダブルクリックでターミナル内で実行します。
初回実行時にyotube-dlとffmpegは自動でダウンロードされます。また定期的に更新が無いか確認してくれて更新があれば自動でダウンロードしてくれます。この辺りの動作はWindows用の動作と同じですね。
先に、confフォルダ内のkeyword.confファイルで指定しておいたお気に入りのシリーズだけがダウンロードされたら成功です。yt-dlとffmpegが忙しく動き出してしばらく待たされます。

どうやらLinux版のスクリプトは、ループ処理で3600秒待機してまた一連の処理が走り出すみたいなので、CTRL+Cで終了させます。
CTRL+Cはプロセスを止める操作ですが、まだ裏で動いているみたいで3600秒経つとまた動き出します。実行中はunixフォルダ内にpid-****.txtファイルが生成されています。
stop_tverrec.shを実行すると処理が停止します。stop_tverrec.shを実行するとこのpid-****.txtファイルが消えて完全に終了するみたいです。ちょっとこの辺りの仕様がわかりにくいです。
追記:どうやら常時稼働させているPC上で使用すると、一定時間(3600秒)毎に処理が走り出すループ構造になっていて、新しい配信が見つかったら抜かり無くダウンロードする様に作られているみたいです。常時稼働させているPCで動かすと本領発揮するアプリみたいです。
TverRecの仕組み(簡単に)
TverRecでは、一度ダウンロードが成功したストーリーは、dbフォルダ内のhistory.csvに記録されていきます。これで次はダウンロード対象外としてダウンロード候補から外される仕組みです。なにかしらの原因でダウンロードが不完全だった場合は、このリストをメンテナンスしてリストから削除してやれば再びダウンロード対象となります。
基本的にはconfフォルダ内のkeyword.confファイルに目的とする番組(シリーズ)などを追記して行く運用になるんじゃないかと思います。ごく偶に更新が見つかったのでupdate_tvrec.shを実行する様にとメッセージが表示されることもありますが、素直に従えばTverRecが最新版に更新されます。
Tverからお気に入りジャンルとか、お気に入り俳優とか、キーワードで根こそぎダウンロードすることもできるみたいですが、そういう使い方は止めておいた方が良いと思います。常識を逸脱したダウンロードをしているとTverに対策される可能性があり、このありがたいアプリも使えなくなってしまいます。各自の節度ある利用が必要ですね。
個人的にはコツコツ集めておいて休日等にまとめて一気に視聴するのが気に入ってます。私の場合は観終わったら削除するので細かいことは気にしてませんが、一話観て一週間待ってというのはなんか性に合わないのです。TV放送だとリアルタイムに観なくてはならず何かのイレギュラーで見逃すこともあるので、Tverの配信(一週間猶予あり)はとてもありがたいです。
全話揃えるには数週間かかりますが、揃ってから見るのが私としては一番快適です。私の場合は第一話だけ視聴してみて面白そうだと感じた番組を観ることにしてます。第一話が面白いと感じなかったらパスしてます。この辺りの見極めは必要ですが概ね第一話の感触で当たってます。最初の頃はなんとなく全話保存しておいて、観てみるとやっぱり面白くなかったと見ずに削除して無駄にしてましたので、今は一話目で集めるかどうか見極めるようにしてます。
面白そうな番組のターゲットが定まったら、その後は週に一回程度TverRecを走らして各話保存漏れが無い様にして全話揃えてから観てます。視聴するのにも時間が必要なので無駄を省くのも重要です。
追記:2025/3/17頃からダウンロードが出来なくなっている
TverRecの開発者さんが迅速に対応してくれていることもあり、応急的な対処方法が出来ている様です。私も試してみて成功したので追加記事を記しました。
コメント