新しくなったTVerへyt-dlpを対応させる [2022年春]

公開 | 更新 

2022年4月にTVerのサイトリニューアルに伴い、youtube-dl派生ダウンローダ、yt-dlpによるダウンロードが異常終了するようになりました。直後からGitHubページでは新TVer対応が早くも始まっていたので、Pythonで組まれているソースをダウンロードして試してみました。

TVerリニューアル

2022年4月1日よりTVerサイトデザインが大幅に変わりました。これまでジャンルごとにカテゴリページが設けられていましたが、

図1.これまでのTVer(アーカイブより)

図1.これまでのTVer(アーカイブより)

変更後は検索ページからジャンルをフィルタリングする仕様のようです。

図2.新しいTVerの検索ページ

図2.新しいTVerの検索ページ

さらに各動画の放送日が併記されなくなった他、閲覧用のURLフォーマットが変わってしまいました。

以前、こちらの記事で紹介したyt-dlpも、TVerが新デザインになってからはこのURLフォーマットが未対応で、エラー終了します。

 

GitHubでは初日から改修の動き

TVerリニューアル初日から、yt-dlpのGitHubページでは早くもスレッドが立ち、改修へ向けて動き始めていて、どうやら動画ダウンロードは出来ていそうな進捗です。

 

Git Clone版をローカルに展開

改修対象は yt-dlp/extractor/tver.py と言うスクリプト1つで済みそうなので、次回のバイナリリリースを前に、 git clone でローカルブランチを作成して改修してみます(以降Ubuntu 18.04を例に進めます)。

作成された ytdlp ディレクトリの中にある yt-dlp.sh が呼び出し用のスクリプトです。

 

yt-dlp/extractor/tver.pyを改修

今回改修する tver.py は、個別サイト向けの振る舞いを定めたスクリプトを数多く収めた、 yt-dlp/extractor/ 内に格納されています。

メンテナーさまによる改修内容な次の通りで、かなりごっそりと変貌していました。

改修を終えたこちらの暫定確定版をコピー&ペーストでローカルの同スクリプトへ上書きしてしまうのが確実です。

 

番組名が抜けてしまう

早速動画をダウンロードしてみると、動画ファイルから番組名が抜けてしまい、サブタイトルしか有りません。TVerから得られる動画のJSONメタデータを確認してみると、例えばこのようになっていてこれは仕様なのでしょう。

図3.TVer動画のJSONメタ情報

図3.TVer動画のJSONメタ情報

そこで tver.py の下端にある、 def _real_extract(self, url): の戻り値で title を渡すのを止めると、番組名も含めたファイル名になりました(元々、改修前のオリジナル版も title は渡していません)。

 

追っかけ再生対象動画は未対応

今回のサイトリニューアルに合わせて、一部番組のリアルタイム配信が始まり、そうした動画はその後多くが「追っかけ再生」扱いになり、その閲覧はログインが必須とのこと。URLフォーマットも次のような別仕様になっているので、yt-dlpでは現状ダウンロード不能です。

 

2022.04.11追記

4月8日のバイナリリリースでプルリクエストされていたTVerリニューアル対応が織り込まれました。

早速試してみると、上述した番組名が抜けてチャプタータイトルしかファイル名に盛り込まれない件は相変わらずでした。

同じ動画を修正したローカルブランチ版でダウンロードしてみると番組名を含んだ形式でファイルが生成されます。

しばらくしても改善が見られないようなら、GitHubページへコメント入れようかと思います(そもそもアカウント作成から…)。

 

 

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA