YtDownloaderでストリーミング動画を保存~多数のサイトに対応しているダウンローダ(yt-dlpのフロントエンドGUI)で簡単操作

プログラミング PC
プログラミング

以前、debian GNU/Linuxデスクトップ環境でYtDownloaderを使ってYouTube動画を手元に保存しておいて、VLCメディアプレーヤー等で好きなタイミングで(ネット接続環境が無くても)視聴できる様なことを記しました。

これがかなり快適にダウンロードできるので、YtDownloader(yt-dlp)の優位性というか、素晴らしさは紹介して置かなきゃいけないなと、改めてWindows用に記しておきます。

実際、Linuxの情報はWindows用の情報に比べると需要が少ないので、Windowsユーザー向けに記事を書かなかったこの記事へのアクセスはほとんど有りません。Windowsでも同様にマルチプラットフォーム環境でYtDownloaderは使えます。故に情報としてはほぼ共通なんですけどね。

私のWindows PC環境

中古で第8世代 Intel Core i5のレッツノートを入手して、Windows11環境を使える様になったので、徐々にWindows10環境から引っ越しをさせています。

個人的な考えでは、WindowsプラットフォームはWindows10で終わりにするつもりでもあったのですが、動画編集アプリ(Pegasys TMPGEncシリーズ)を購入して愛用していることもあり、完全に捨てるのはまだ厳しいという事情があります。一時期はTMPGEncの使用を諦めることも考えていました。

しかし、運良くヤフオクで状態がすごく良いレッツノートの中古を格安で入手出来たこともあり、これならWindows11を使える内は使っても良いかなと考えが変わってきました。最近は用途に応じて使い分けておりLinuxデスクトップが日常用途になってWindowsパソコンの稼働率は下がっています。

それでもVPSの操作やWindows環境でなければ出来ないことは残っています。Linux環境でもVPSの操作は行えますがセキュリティレベルを上げる細工をしているため設定が面倒です。今後、レッツノートをメインのWindowsパソコンに変更するため、SSH接続の制限をレッツノートからもアクセスできるように設定変更しています。

多サイト対応のダウンローダー「YtDownloader」

OSSとして開発が進められている「YtDownloader」を知ったのは、debian GNU/Linuxで娯楽用途の環境整備をしていてのことですが、既に記している通りLinuxだけでなく、Windows環境にもインストールできるように配布してくれています。

このプロジェクトはとても幅広いプラットフォームに対応しています。「Download for Windows」という水色のアイコンからWindows版のYtDownloaderをダウンロードしてインストール出来ます。

とてもシンプルなUIで簡単に誰でも使用できる様に配慮してくれています。右上のハンバーガーアイコンとやら(三本横線)をクリックすると保存フォルダの指定など詳細設定が出来ます。

YouTube動画はほぼ確実に保存可能

私自身、そんなに多くのYouTube動画を保存することは有りませんが、YtDownloader(エンジン部分はyt-dlp)を使えば確実に保存できるという印象です。たまに保存出来ないYouTube動画もあるらしいですが遭遇したことは有りません。

使い方は簡単で保存したいYouTubeページのURLをコピーしておいて(クリップボードに記憶されている)、緑色の「クリックしてクリップボードからビデオリンクを貼り付け[Ctrl+V]」を実行するだけです。

後はサイト構造を解析してくれて目的のYouTube動画を保存するためのステップに進めます。

YouTube動画を保存するのは全然難しくないので詳細は端折ります。一度試してみて貰えれば簡単だと分かる筈です。

YouTube以外でも保存できる

公式に

A modern GUI video and audio downloader supporting hundreds of sites

と記述されており、沢山(数百)の動画配信サイトをサポートしています。知らない動画配信サイトが沢山有りすぎて訳が分からないですが、メジャー処だとTverなんかも対応していますね。Tverはちょっと特殊で動画と音声が分離されて配信されますが、きちんと解析してくれてダウンロードできました。

内部的にyt-dlpffmpegと連携させている仕組みなので、Tverの様に配信サイト側が高速であれば短時間でダウンロードすることが可能です。ダウンロードしてから視聴すれば、回線の途切れもなく安定して視聴できるのが快適です。

また、身近なところだとX(旧Twitter)のポストに動画が含まれる場合は、目的とする動画を含んでいるポストのURLをYtDownloaderに指定すると解析して動画を保存してくれます。とても手軽なので便利です。

おまけ:対応してないサイトでもm3u8のURL指定でダウンロード

もちろんコレは開発者の意図してない使い方ですが、試してみるとサポートしてない動画配信サイトからもダウンロードは可能です。但し、サポートしてないサイトの場合は動画のURLが自動解析されないので、自分で解析してやる必要があります

とは言ってもそれほど難しくなかったりします。ポイントは.m3u8という拡張子のファイルがあるURLを突き止めてYtDownloaderに指定してやるだけです。

githubの説明をそれなりに読むと、サイトの解析とダウンロードにyt-dlpを使用していることが書かれており考え方として間違えていないことが分かります。動画配信サイトの解析に関わる部分はyt-dlpが担っている様です。実際にWindows PCにもyt-dlpが自動でインストールされていました。

yt-dlp.exe単体(コマンド操作)でも同じ結果が得られますが、UIを使えた方がコマンド操作よりわかりやすく操作の敷居は下がると思います。PATHを意識してない人がコマンドで実行するとどこに保存されたか行方不明になったりすることも想定出来ますし。

実験的に適当に動画配信サイトを検索して上位に出てきたサイトでやってみました。動画ページのURLを指定してもエラーになります。

いくつかのエラーが発生しました。ネットワークを確認し、正しいURLを使用してください。

やはりサポート外のサイトなので動画配信の構造解析が出来ないみたいです。

そこで、動画配信サイトのページのソースを表示し、検索で「.m3u8」を探し出します。1ページ中にいくつか見つかる可能性がありますが、URLから雰囲気を読んでアタリとハズレのURLを見分けます。アタリのURLをYtDownloaderに指定してやると、ページタイトル等は解析してくれませんが(自分でダウンロードファイル名は指定できる)、ダウンロードは無事に行えました。

実験メモ
このサイトの場合、動画配信ページでソースを表示し、m3u8ファイルのURLを探すと直ぐに見つかりました。比較的簡単なサイト構造(ソース)でした。

という訳で、サポートされていない動画配信サイトの動画もソースを読んで.m3u8ファイルがあるURLを見つけ出してYtDownloaderに指定してやればダウンロードできました。色々な動画配信サイトでやってみましたが、上手く見つけられればきちんとダウンロード(保存)出来ますね。

気づいたこととして、一部のサイトでは.m3u8ファイルのURLが分かりにくい様に細工がなされていることもある様です。URLを分割、逆転させたり、Base64でエンコードされているサイトもありました。なかなか各サイトの運営者も考えていますね。

実験による探究心が満たされたら削除しておく様にしましょう。特にグレーなサイトからのダウンロードは実験に留めておくべきです。ちなみに各サイトはそれぞれ構造が違うので解析が必要ですがJableTVはとても簡単でした。

興味深いことに、各サイト配信サーバーの性能にも違いがあって、TKTubeはクラウドフレアを使っているのでダウンロードがめちゃくちゃ速かったです。実際に試してみると色々気付かされることがありました。これらは海賊版AV配信サイトと言われているので要注意です。

  • Jable.TV
  • MissAV
  • TKTube

仕組みを見つけたので、ねんのため別途メモに残しておく。

実験が終わったらダウンロードしたファイルは削除しておくこと!

YtDownloaderの立ち位置

ちょっと調べた限りでは、YtDownloaderはUI部分を担っており、配信サイトの解析とダウンロードはyt-dlp、ffmpegが担っているっぽいです。ダウンロード動作中にタスクマネージャでプロセスの稼働状況を見てもわかります。

エンジン部分となっているyt-dlp、ffmpegは多機能で精力的に改良が進められている強力なアプリケーションですが、基本的にコマンド操作で使う必要があります。YtDownloaderはそのGUI操作を補完していて簡単操作を提供してくれます。GUI操作で解決しますが実際は裏でyt-dlpとffmpegが働いてくれます。これらオープンソースのソフトウェアを組み合わせたダウンローダーなのです。

プログラミングスキルの有る方へ

技術的(プログラミング)に興味がある人は、yt-dlpの開発に参加すると楽しいかも知れません。多くの場合は動画配信サイトの構造解析とそれを自動化する(extractor)の開発のために注力する事になると思いますが、世界中からニーズのあるプロジェクトです。

githubにアクセスしてみると世界中の多数の動画配信サイトの解析プログラムのソースコードが読めます。動画配信の仕組みを知っていてPythonで書ける人ならエキストラクターの開発や改良、修正に対応できるでしょう。

私が実験してみた非対応の3サイトも、各サイトの構造に適したエキストラクターを上手く書いてやれば、動画配信ページを指定するだけでダウンロードできる様になるはずです。私はそこまでは出来ませんけどね。

個人的にTverのエキストラクター(tver.py)は興味深いプログラミングになっていて、エキストラクターの書き方について参考になります。Tverは映像配信と音声配信が別々になっているので結構複雑ですね。

コメント

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でスパムコメントを弾いているので無意味です。スパムコメントは掲載されません。

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