Video DownloadHelperとYtDownloader
先日、FirefoxにVideo DownloadHelperという機能拡張(アドオン、プラグイン)を追加してストリーミング動画を保存する機能を追加する的なことを記しました。Webブラウザを機能拡張する「Video DownloadHelper」の柔軟性は高いですが、使いこなすにはそれ相応の知識が必要です。
そこで、より簡単に使えるダウンローダーが存在することを知ったので試してみることにしました。debianを始めとしたLinux環境でも動作するオープンソースのソフトウェア「YtDownloader」がFlatpakで手軽にインストールできるので試してみない手はありません。
「YtDownloader」は「yt-dlp」と連携するように作り込まれており、GUIの提供だけでなく、ブラウザのCookieを使用したりということも考慮されています。Windows、Linux、MacOSなどで使用できます。「ty-dlp」をコアエンジンとして利便性を高める意味でも有効なアプリだと思います。本格的に「ty-dlp」を使いこなそうと思うと大変ですからね。
YtDownloader
YtDownloaderは、オープンソースで開発されているビデオ・オーディオをダウンロードするアプリケーションです。YouTubeをはじめとした多くの動画配信サイトからダウンロード(保存)ができるアプリ(yt-dlp)のフロントエンドらしく、yt-dlpと組み合わせて動作している様です。YtDownloaderによってGUIを提供しているのでコマンド入力等で悩む必要もありません。
ytDownloaderを使えば、Youtube・Facebook・Instagram・Tiktok・Twitterなど何百ものサイトからビデオやオーディオをダウンロードすることができます。
https://github.com/aandrew-me/ytDownloader
これは、Node.jsとElectronの上に構築されたフリーでオープンソースアプリです。yt-dlpはダウンロードに使用されています。ソースコードはここで公開されています。
目的とする動画配信URLをコピペして指定すると解析してくれて、可能であれば動画の品質を選択できたり、音声の種類を選択できたりということも実現しています。
debianの場合はサクッとFlathubからインストール推奨
私の場合はdebian GNU/Linuxを使用しているので、「gnome-software」を起動してそこから「YtDownloader」を検索し、Flathubからの指定でインストールしました。Flatpakでインストールすれば、Sandbox内で動いてくれるので気軽にインストールできる点が良いです。不要になればスッキリとアンインストールできます。

またFlathubからのインストールは、debianの弱点であるパッケージ更新の遅さには影響されないので、更新があれば迅速なアップデートが可能であり新しいバージョンに追従して行くことが手軽に実現できます。更新が重要なアプリはなるだけFlatpakを使いたいです。(安定志向のdebianとは相反する点は理解が必要です)
YouTubeからのダウンロードは簡単
使い方は簡単で、YouTubeの該当ページのURLをコピーしてクリップボードに記憶させて置きます。それから緑色のボタンをクリックするか、Ctrl + Vキーを押すと動画を解析してくれます。
指定したURLを解析した結果、可能であればビデオフォーマットの選択ができます。

同様に可能であればオーディオフォーマットを選択できます。

後はダウンロードボタンをクリックすると保存してくれます。

保存先は右上のボタンをクリックして、環境設定から確認できますし、任意のフォルダを指定しておくこともできます。
X(旧Twitter)の動画も保存出来る
YtDownloaderのコアエンジンはyt-dlpなので、X(旧Twitter)にも対応してくれています。動画を含むポスト(ツイート)のURLをコピーしてYtDownloaderに指定すると動画のURLを解析して保存できます。Webブラウザでは動画のURLが隠されているのでダウンロードが面倒ですが、YtDownloaderを使えば動画のURLを解析してくれるので手間がかかりません。(Xの仕様変更時にはyt-dlpの対応を待つ必要があります)
音声の有無を指定出来るので「音声あり」になっていることを確認してからダウンロードしましょう。確認が漏れると音声なしの動画をダウンロードしてしまうこともあります。その場合はやり直せば大丈夫です。GUI操作で簡単なので非常に便利です。
参考:WebブラウザのCookieを使用する場合の設定
YtDownloaderでWebブラウザのCookieを使用することもできます。
ただし、Flatpakからインストールした場合は、Sandbox内のYtDownloaderからFirefoxのプロファイルにアクセスできない(権限が無い)のでクッキーファイルが見つからないという感じ(ERROR: could not find firefox cookies database)のエラーとなります。セキュリティ的に弱くなるので必要が無ければWebブラウザのクッキーを使用しない方が安全です。

ERROR: could not find firefox cookies database in ‘/home/sasapurin/.mozilla/firefox’, ‘/home/sasapurin/snap/firefox/common/.mozilla/firefox’, ‘/home/sasapurin/.var/app/org.mozilla.firefox/.mozilla/firefox’
Flatsealによるサンドボックス外へのアクセス許可
ブラウザのクッキーを使用する場合、YtDownloaderがサンドボックス外にあるLinuxのホームディレクトリにアクセスできるよう権限を与えてやる必要があります。実際確認したところ上記のディレクトリは存在していました。つまり存在しているのにアクセス出来ない制限があります。
そこでFlatpakでインストールしたアプリが実行する再に必要な権限をカスタマイズする為に「Flatseal」を使うのです。これもgnome-softwareからインストールすることができました。
インストールが終わったらFlatsealを起動して、左ペインで対象となるアプリ「YtDownloader」を選択した後、右ペインでFilesystem>>All user filesをONします。

これで「YtDownloader」がサンドボックス外に出られる様になったので、環境設定からCookieを使用するブラウザを選択してやります。私はFirefoxを愛用していますが、Chromeをはじめ様々なブラウザに対応しているので気が利いてます。オープンソース系のアプリならではの配慮だと思います。

これでFirefoxのCookieをYtDownloaderが使用することが出来るようになりました。ここまで設定するとかなりYtDownloaderの汎用性が高くなったということになります。
繰り返しになりますが不要であればこの設定は行わない方が安全です。サンドボックス内で動かすことで事足りるならその安全性を崩す必要はありません。
参考:yt-dlpが非サポートなサイトは.m3u8ファイルを指定
「YtDownloader」は数百の動画配信サイトをサポートしているそうですが、マイナー動画配信サイトだと解析されないことがあります。どうしてもその様なマイナーなサイトからダウンロードしたい場合は、ページのHTMLソースを開いて、「.m3u8ファイル」のURLを見つけ出すことが出来ればダウンロードできるかも知れません。

駄目もとで.m3u8ファイルのURLをコピーして、ビデオリンクを「YtDownloader」に指定してみたところ、動画の名前等は取得できませんでしたが、動画ファイルはダウンロード(保存)できました。オーディオに関してはNo Audioしか選べませんでしたが、音声もきちんと入っていました。この辺りは動画配信サイトの構造によって違ってきます。

もうこのあたりまで来ると完全にサポート外の使い方とも言えるので、自己責任で実際にやってみるしか無いという感じです。更にやる気とスキルが伴えば、オープンソースなのでソースコードを入手し修正して、目的とするサイトの解析部分を書き加えるなどしても良いかも知れませんね。
具体的には、yt-dlpには各サイトを解析するファイル(エクストラクターと呼ばれているらしい)があるので、それらを参考にしつつ未サポートの新たなサイトについて解析手順を加えると対応サイトを増やすことができるそうです。
詳しいことまでは調べていませんがエクストラクターはPython言語で書かれている様です。Python言語を扱える人は目的とする動画配信サイトの構造を解析してそれ専用のエキストラクターを自分で書いたら便利になると思います。
YtDownloaderはWindowsでも使用可能
参考までに記しておくと、配布サイトにはWindows版のYtDownloaderのリンクもあるので、Windows環境でも同じYtDownloaderを使用できます。MacOSでも使用可能らしいです。
今の時代こういう柔軟性の高さはOSSならではの親切さですね。どんどんプラットフォームの壁が無くなって、Linuxが普及してWindowsのシェアが下がれば良いなぁと思います。今までがWindows OSというプラットフォームに制限されて不自由過ぎたと思うんですよね。
どんどんプラットフォームの垣根が無くなって、Windows一強の時代に終わりがくれば良いなと思います。それがユーザーの選択肢、利便性として健全だと思うのです。Microsoftの支配力が弱くなっていくことを願ってこういうブログ記事を記しています。

コメント