Tver配信をTverRecを使って半自動で保存する〜ドラマ全話を後でまとめて一気に観たい人にオススメ

プログラミング Linux
プログラミング

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版の方はセットアップから初めてほぼ自動化されていて操作もGUIなので手軽なのですが、Linuxで使用するにはちょっと手順を踏まなくてはならなくてクセがある感じです。UNIX/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にインストール出来ました。

PowerShell 7.5.0をLMDE6(debianベース)にインストールしている様子のスクリーンショット画像。

TverRecのファイル群の設定

引き続きTverRec関係の準備をしていきます。WindowsだとGUIですし設定を自動でやってくれますが、Linuxでは自動ではやってくれません。confファイル(テキスト形式)をエディタで開いて環境を整えてやります。この辺りはニーズの問題でしょうね。利用者が増えてくれば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のサイトにアクセスして調べます。

./conf/keyword.confをテキストエディタで開いて編集している様子のキャプチャ画像

次にダウンロードフォルダ等を指定します。
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 = $trueCode language: PHP (php)

※後で分かったことですがTempフォルダは空っぽになると最終処理でフォルダごと削除されてしまうので、なにかダミーファイルをフォルダ内に配置しておくと消されずに済みます。

高度な設定の編集は必須ではないみたいなので、各自で調べて任意に調整したら良いと思います。カスタマイズ性が高いので不便だなと思った部分は機能が無いか調べて、機能が実装されていたらラッキーと思って任意でお好みに設定するのが正解ですね。

メタデータを動画に埋め込む機能も標準で有効になっていますが、私はまとめて視聴したら削除してしまうので無効にしています。そうすると速く処理が終了します。解説を読んだりする努力は必要ですが使わない機能は無効にしてしまうのも一案ですね。

解説放送版は要らないから除外しとく

Tverでは「解説放送版」や「ダイジェスト」、「予告」なども含まれます。私はコレらは不要なのでダウンロード対象外番組としてキーワード登録しておきます。

confフォルダ内にignore.confというファイルを置いて、除外キーワードを記しておくとダウンロード対象外として扱ってくれます。一度除外扱いされるとダウンロード済みとしてdbフォルダ内のhistory.csvに追記されるので次からはダウンロード候補に上がってきません。

要らない番組をダウンロードすると時間もかかるしリソースも無駄遣いなので除外キーワードは設定しておいた方が合理的です。

./conf/ignoe.confの記述例のスクリーンショット。除外キーワードを指定しておくことが出来る。

この辺りは使っている内に要らないキーワードが分かってくるので、徐々にカスタマイズしてより効率的な自動処理が行えるよう各自で工夫する必要がありそうです。

私の場合はkeyword.confがカギとなる

TverRecを使っていく上で、人それぞれの使い方が想定されます。

  • 根こそぎダウンロード派
  • 必要な放送のみダウンロード派
  • 特定の番組(ドラマ)を全てダウンロード派

私の場合は、特定の番組(ドラマ)を全てダウンロードして集め、揃ったら一気に視聴するタイプなので③です。この場合の要点はconfフォルダ内の下記ファイルの編集にかかっています。

./conf/keyword.conf

テキストエディタで開くと、#番組名 という行があり、そこにコメントで説明が記載されています。

#----------------------------------------------------------------------
#番組名
#  TVerで番組ページを検索し、「series/srxxxxxxxx」を指定
#----------------------------------------------------------------------Code language: PHP (php)

例えば「マツコの知らない世界」の場合、TverのURLは

https://tver.jp/series/srlblerhueCode language: JavaScript (javascript)

となりますが、このURLから「series/srlblerhue」をコピペしてkeyword.confに記述すると、「マツコの知らない世界」を毎週保存してくれるようになります。新しい週の放送がされると前の週の配信は終わってしまうので確実に毎週TverRecを実行させる必要があります。

参考までに記しておくと、保存された(ダウンロード済みとなる)番組情報は、./db/history.csv に追記されていくので、テキストエディタや、LibreOffice Calc等で開いて確認すると良いでしょう。ここに記載されている番組はダウンロード済みとしてスキップされるので、もう一度保存したい場合はその行を削除してからTverRecを実行すると再びダウンロードしてくれます。

TverRecを実行してみる

unixフォルダ内の、start_tverrec.shをダブルクリックでターミナル内で実行します。もしくはターミナルを開いてから下記の様に実行します。

./start_tverrec.sh

なお、アイコンダブルクリックしてターミナルで開くと、アプリが終了した場合にターミナルが閉じるので、エラーメッセージなんかを見逃します。UNIX系OSのしきたりとしてはターミナルを開いてからコマンド指定するのが標準かな。

初回実行時にyotube-dlとffmpegは自動でダウンロードされます。また定期的に更新が無いか確認してくれて更新があれば自動でダウンロードしてくれます。この辺りの動作はWindows用の動作と同じですね。

先に、confフォルダ内のkeyword.confファイルで指定しておいたお気に入りのシリーズだけがダウンロードされたら成功です。yt-dlとffmpegが忙しく動き出してしばらく待たされます。

start_tverrec.shの実行によりTverRecの動作が走っている様子のスクリーンショット。ターミナルから起動している。

どうやらLinux版のスクリプトは、ループ処理で3600秒待機してまた一連の処理が走り出すみたいなので、CTRL+Cで終了させます。

CTRL+Cはプロセスを止める操作ですが、まだ裏で動いているみたいで3600秒経つとまた動き出します。実行中はunixフォルダ内にpid-****.txtファイルが生成されています。

stop_tverrec.shを実行すると処理が停止します。stop_tverrec.shを実行するとこのpid-****.txtファイルが消えて完全に終了するみたいです。ちょっとこの辺りの仕様がわかりにくいです。

追記:どうやら常時稼働させているPC上で使用する前提で開発されている様で、一定時間(3600秒)毎に処理が走り出すループ構造になっていて、新しい配信が見つかったら抜かり無くダウンロードする様に作られているみたいです。常時稼働させているPCで放ったらかしにして動かすと本領発揮するアプリみたいです。

Downloadプロセスの確認

TverRecのダウンロード自体はyt-dlpが行うので、システムモニターを起動して確認すれば現在動作中のプロセスを確認することができます。Linux Mintに標準搭載されているシステムモニターの場合はマウスオーバーすると実行コマンドが確認出来るので、何の動画をダウンロードしているか確認できます。

下図はダウンロード中のプロセスの内容を表示してみたものですが、めちゃくちゃ長いパラメータ指定されたコマンドが実行されているとわかります。手作業でこんなコマンドを打とうなんて考えると嫌になりますから、TverRecがどれだけ便利にしてくれているのかわかります。

TverRecによるyt-dlpが実行されているプロセス状況を表示したキャプチャ画像。プロセスとしてpythonスクリプトで多くのパラメータが付随して実行されていることが分かる。人力による手入力は考えられない長さだ。

また動いているプロセス数から残りのダウンロード数も確認できます。

TverRec自体、現在も活発に改良されていることもあり、モニター機能的なものも将来実装されるやも知れません。でもUNIX系のOSを使っている人ならわざわざ実装してもらわなくても事足りるというのが実情でしょう。

TverRecの仕組み(簡単に)

TverRecでは、一度ダウンロードが成功したストーリーは、dbフォルダ内のhistory.csvに記録されていきます。これで次はダウンロード対象外としてダウンロード候補から外される仕組みです。なにかしらの原因でダウンロードが不完全だった場合は、このリストをメンテナンスしてリストから削除してやれば再びダウンロード対象となります。

基本的にはconfフォルダ内のkeyword.confファイルに目的とする番組(シリーズ)などを追記して行く運用になるんじゃないかと思います。ごく偶に、更新が見つかったのでupdate_tvrec.shを実行する様にとメッセージが表示されることもありますが、素直に従えばTverRecが最新版に更新されます。

Tverからお気に入りジャンルとか、お気に入り俳優とか、キーワードで根こそぎダウンロードすることもできるみたいですが、そういう使い方は止めておいた方が良いと思います。常識を逸脱したダウンロードをしているとTverに対策される可能性があり、このありがたいアプリも使えなくなってしまいます。各自の節度ある利用が必要ですね。

個人的にはコツコツ集めておいて休日等にまとめて一気に視聴するのが気に入ってます。私の場合は観終わったら削除するので細かいことは気にしてませんが、一話観て一週間待ってというのはなんか性に合わないのです。TV放送だとリアルタイムに観なくてはならず何かのイレギュラーで見逃すこともあるので、Tverの配信(一週間猶予あり)はとてもありがたいです。

全話揃えるには数週間かかりますが、揃ってから観るのが私としては一番快適です。第一話だけ視聴してみて面白そうだと感じた番組を観ることにしてます。第一話が面白いと感じなかったらパスしてます。この辺りの見極めは必要ですが概ね第一話の感触で当たってます。最初の頃はなんとなく全話保存しておいて、観てみるとやっぱり面白くなかったと観ずに全部削除して無駄にしてましたので、今は一話目で集めるかどうか見極めるようにしてます。

面白そうな番組のターゲットが定まったら、その後は週に一回程度TverRecを走らせて各話保存漏れが無い様にして全話揃えてから観てます。視聴するのにも時間が必要なので無駄を省くのも重要です。

追記:2025/3/17頃からダウンロードが出来なくなっている

TverRecでダウンロードが出来なくなっていましたが、TverRecの開発者さんが迅速に対応してくれていることもあり、応急的な対処方法が出来ている様です。私も試してみて成功したので追加記事を記しました。

その後もちらほらとバージョンアップしている様で細かい部分を修正してくれている様です。個人的には何ら不満は無いので安定的に保存できれば十分です。TverRecはとてもありがたいアプリですね。

コメント

Comment spam is annoying.

There has been an increase in comment spam, but we decline it. It’s pointless because we use Akismet to block spam comments. Spam comments will not be posted.

コメントスパムが増えていますがお断りします。akismetでスパムコメントを弾いているので無意味です。スパムコメントは掲載されません。

ブロックしたスパム

DMM広告

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