Last modified: Fri Sep 16 00:56:46 JST 2022

[Fire タブレット関係に戻る]

youtube-dl プロジェクトは 2021年12月17日以降はアップデートされなくなり、もはや既に動画のダウンロードに使えなくなっています。代替の方法を紹介します。

YouTube 動画をダウンロードする方法

YouTube をダウンロードしてオフラインで動画再生なんて法的にアウトだと思っていましたが、調べた結果、そうではないという結論に達し、解説する事と致しました。気になる方は後述の法的側面をご覧ください。

全般的に言える事ですが、YouTubeは「ダウンロードさせまい」と、猫の目のように仕様変更します。そのためか、以前は便利だと評判の良かったダウンロードツールも、追従できなくなって「ダウンロードできず」になっている場合があります。現在はアップデートが活発な yt-dlp しか使っていない (これを使っていれば他の必要性が感じられない) ので、 こちらを紹介します。

Gigazine に記事がありましたので、紹介します。

yt-dlp を動かすには

ネイティブで動く版もありますが、プラットホーム非依存の python 版を使います。そこで

を動かします。これなら、比較的新しいFireタブレットであれば動きます。コマンドラインツールです。これは難易度が高いので、手取り足取り説明しないといけない人なら出来ないだろうから簡単に書きます。こういうやり方が好きという人向けの内容になります。

Hacker's Keyboard

Hacker's Keyboard は、無くても動きますが、こういうやり方が好きな人なら、既に使って手放せなくなっているでしょう。

termux

termux は Google Play からダウンロードしたら駄目です。Google Play 版はサポートが打ち切られており、まだ Play ストアに残っていて新規インストールもできますが、メンテされておらず、本体プログラムもダウンロードできないので動きません。

F-Droid から Termux をダウンロードしてインストールしてください。「F-DROIDをダウンロード」する必要は無く、「APKをダウンロード」で構いません。

Termux を起動すると「Installation bootstrap packages...」と出ます。

なお、Android 5 および 6 向けの termux は、2020年1月をもって既に開発終了となっており、こちらも、古いバージョンをインストールして起動させても bootstrap packages のダウンロードに失敗するので動作しません。「こうすれば Android5や6で動く」とする情報もありましたが、私の方では成功していませんので紹介できません。

Termux コマンド操作例

root 権限は無いので、ユーザー権限とディレクトリで動かします。

便利設定

termux-setup-storage

これで、$HOME/storage/ 以下にシンボリックリンクが張られます。例を示します。

ls ~/storage
      
dcim       external-1  music     shared
downloads  movies      pictures

パスを通す

~/.bashrc に

export PATH=$PATH:$HOME/bin

と書きます。vi ~/.bashrc で書く、あるいは、 vi は要らないという人は
cat > ~/.bashrc
として書いても構いません。 ~/.bashrc を編集したら

source ~/.bashrc

でパスが bach に反映されます。

動作テスト例

例えば youtube の検索で「防災, creativecommons」とすると、クリエイティブ・コモンズライセンスの動画が見つかります。ここでは試しに、防災関係の動画をダウンロードしてみます。

cd ~/storage/movies
yt-dlp https://www.youtube.com/watch?v=aDB9MuUQLaU

すると、以下のようにダウンロードが始まります。

[download] Destination: 100円で買える驚き 便利グッズ!ダイソーのオススメ防災グッズTOP5 [aDB9MuUQLaU].mp4
[download] 0.0% of 85.76MiB at 121.52KiB/s
[download] 0.0% of 85.76MiB at 51.84KiB/s
    :
[download] 100.0% of 85.76MiB at 144.50KiB/s
[download] 100% of 85.76MiB in 10:08 at 144.32KiB/s

~/storage/movies $ ls
'【ダイソー夏の新商品】「アウトドア用フライパン」が新発売 [UgA_aLy0rTo].mp4'

ダウンロードした動画を再生する

VLC for Android などの再生アプリでダウンロードした YouTube 動画を再生します。VLC は無料で広告も出ず気に入っています。以下はダウンロードした YouTube 動画を VLC で再生した時のスクリーンショットです。

yt-dlp のアップデート

yt-dlp -U

いかがでしたか? この位で yt-dlp は一応使用可能です。しかし、簡単なスクリプトを書けばいっそう便利になります。

スクリプトの例

他人が使うことを想定していない、いい加減な作りにはなっていますが、紹介します。スクリプトを書くには vi を入れるか、PC などで書いて転送してください。名は安直に ~/bin/ytm としましょうか。

SAVEDIR=$HOME/storage/movies
yt-dlp -o $SAVEDIR/'%(title)s.%(ext)s' $*
ls -lrt $SAVEDIR/

この、謎の %(title)s.%(ext)s というのは、前述の Gigazine 記事に書かれている通りの python の変数なので、私に聞かないでください。なおシェルからだと、シングルクオーテーションで囲わないと動きませんでした。

実行例

ytm https://www.youtube.com/watch?v=aDB9MuUQLaU

などとすると、動画が Movies のフォルダに保存されます。スクリプトを書くと何が便利かというと

※ yt-dlp は、デフォルトでは、ファイルのタイムスタンプを元の動画の時刻に設定するので、今しがたダウンロードした動画は2年前のだった、といった場合は、ls-lrt しても、最後には並びません。この動作が気に入らない場合は yt-dlp のヘルプを見てオプションで変えて下さい。

microSD のエリアに保存する方法

Android のセキュリティが強化されたため microSD には、termux が使うエリア以外は直接の保存はできません。SAF(Storage Access Framework)の枠組みで書き込む方法も提案されたようですが、本質的に、termux はプログラムが実行可能なシェルなので、それも不適当として採用は見送られました。よって簡便な方法としては、いったん本題の内部ストレージに保存してから Ghost Commandar など、microSD に書き込めるファイルマネージャーで移動してください。

でもやはり microSD のエリアに直接書き込みたい場合は、UserLAndでSDカードにアクセスを参考に、 com.termux のディレクトリを作成しておいてください。これも、Ghost Commandar で作成できます。 (Ghost Commandar は SAF が使用可能なので) 後は

$ ls /storage
15E0-774A  emulated  self

とすると、端末一台ごとに異なりますが、microSD のマウントポイントが表示されます。この例では 15E0-774A でした。そこで前述のスクリプトの1行目を、例えば以下のように修正します。

SAVEDIR=/storage/15E0-774A/Android/media/com.termux
yt-dlp -o $SAVEDIR/'%(title)s.%(ext)s' $*
ls -lrt $SAVEDIR/

これで YouTube の動画の保存先が microSD になります。Fireタブレットは内蔵ストレージが狭いので、microSD に保存できると便利です。なお VLCプレーヤーは microSD の、Movies フォルダ以外でも保存された動画を再生できます。ですから、YouTube 動画を microSD にどんどん保存して、VLC でそのまま再生する事も可能です。最初からインストールされている Phots でも動画は再生可能と思います。

ftp でファイルを転送する例

ftp
open 192.168.10.73 2221
francis
francis
bi
cd どこぞ
prompt
mput *.mp4
bye

補足

wget

YouTube とは違う話ですが、mp4 ファイルがWebサイトからダウンロードできるようになっている場合、curl でダウンロードしても構いませんが、wget を使い慣れている人は、wget をインストールする事も可能です。

他Androidにインストール

yt-dlp を chmod で実行可能に変更する操作が許可されていない Android では、前述のスクリプトを

python $HOME/bin/yt-dlp -o $SAVEDIR/'%(title)s.%(ext)s' $*

などとアレンジしてください。

他OSにインストール

Installation をご覧ください。

NHK World

yt-dlp は NHK World に対応しています。しかし、NHK World のサイトは URL が分からない物が多く、一部のオンデマンドで見れる動画しか保存に成功していません。ニュースのオンデマンドは Programs から見るれのですが、こちらは保存に成功していません。


法的側面

2020年6月成立、2021年1月1日に施行の改正著作権法も考慮しています。

YouTube 側は、コピー可としている動画以外はダウンロードできないとしているものの、個人的に保存することに関しては、以下に説明する、違法な権利侵害コンテンツの場合を除いて著作権保護の侵害とはされないので処罰対象にならない。

ダウンロードするだけで罪になる物

しかしながら、そもそも YouTube には、違法にアップロードされた音楽や映画や漫画作品などは無い。もしあれば、速やかに削除される。

よって、YouTube 側は動画はダウンロードしないでくれとは言っているものの、YouTube には、ユーザーがダウンロードしたら著作権侵害の罪に問われるような動画は無いので (有料で映画が見れる会員等になっている場合は、そのような作品動画に関しては話は別) ダウンロードを禁止する法的根拠は無い。

要するに、音楽映画や漫画など本来は金を払わないと見れないコンテンツを違法にアップロードされたものに関しては、私的利用もへったくれもなくダウンロードしただけで違法となるが、YouTube で無料で見れる「踊ってみた」や著名ユーチューバーの動画、ペットの動画、その他に関しては、ダウンロードは違法ではない。YouTube は法律を作れるわけではなく、著作権法で処罰対象にならない行為を YouTube が勝手に処罰はできない。あくまで「ダウンロードしないで」とお願いしているに過ぎない。そもそも、YouTube にある動画の所有者は、アップロードした作者の物である。作者がアップロードして YouTube のサーバーを借りて公衆送信している物を、YouTube が勝手に「これは俺の物だ、ダウンロードしたら刑事罰だ!」とはできない。

youtube-dl 時代の旧情報はこちらをご覧ください。


[Fire タブレット関係に戻る]