記事を修正中です
2021年10月ごろからyoutube-dlにダウンロード速度制限が課せられています
現在、fork版である、yt-dlpを用いた記事に書き換えています。
yt-dlpを使うように変更しました
youtube-dlに速度制限がかけられています、また開発もyt-dlpのほうが活発なのでこちらを使用するように記事を書き換えました。
Attension!!!
違法に公開された音楽や映像とわかっていながらダウンロードする行為は刑事罰の対象となります。参考違法ダウンロードについて知っておきたいこと
この記事に書かれている内容を真似する場合は自己責任でお願いします。m( )m
目次
やりたいこと
Termux(ターミナルエミュレータ)とyt-dlp(様々なサイトから動画をDLできるスクリプト)を使って、広告無し、面倒なアプリ起動無し、好きな場所へ保存を実現したい
2022-01-06追記
以下の作業を一括で出来るようにスクリプトを作成しました。
以下のコマンドを実行すればこの先は必要ありません。
sh <(curl -s https://raw.githubusercontent.com/datsuka-qwerty/Sublimetext3-Backup/master/Others/termux-install)
Termuxのダウンロード
PlayStore版とF-Droid版の2つがありますが、現在サポートされているのはF-Droid版になります
今回のためだけに使うならPlayStore版でもOK
2021/12/01追記
どうやら、PlayStore版の方ではapt update
を実行したさい、リポジトリからエラーが返ってくるそうです。
もし、PlayStore版で動かす場合は、apt update
コマンドを除外して、実行してください。
Termuxの初期設定
aptの更新
以下のコマンドを実行して、パッケージを更新します。
スマホでいう、アップデートみたいなものです
apt update && apt upgrade -y
ストレージへのアクセス許可
デフォルトの状態だと、動画をDLしても、Termuxからでないとアクセス出来ない状態になってしまいます。なので、スマホの内部ストレージへのアクセス許可を与えてあげます。
そのためのコマンドが用意されているので実行してください。
termux-setup-storage
許可すると以下の表のように内部ストレージへアクセスができるようになります。
間違ってもrm -rf /
とかやらないようにしましょう。
最悪全部データが飛びます。
実際の場所 | Termux上での表示 |
---|---|
/storage/emulated/0/DCIM | ~/storage/dcim/ |
/storage/emulated/0/Movies | ~/storage/moives/ |
/storage/emulated/0/Music | ~/storage/music/ |
/storage/emulated/0/Pictures | ~/storage/pictures/ |
/storage/emulated/0/Download | ~/storage/downloads/ |
/storage/0000-0000/Android/data/com.termux/files | ~/storage/external-1/ |
/storage/emulated/0 | ~/storage/shared/ |
必要なパッケージのインストール
コマンドを実行すれば、必要なパッケージ(アプリ)がインストールされます。
apt update && apt install -y nano curl python ffmpeg
yt-dlpのインストール
各種サイトから動画・音声をDLできるスクリプト youtube-dlをpip経由でインストールします。
pip install youtube-dl
共有画面から使えるようにする
Termuxでは~/bin
にtermux-url-opener
というファイルを作ると、
共有画面からTermuxを選択したとき、URL等を第一引数としてtermux-url-openerを実行してくれます。
以下のコマンドで私が使ってるスクリプトを~/bin/へコピーします
mkdir ~/bin && curl https://raw.githubusercontent.com/datsuka-qwerty/Sublimetext3-Backup/master/Others/termux-url-opener -o ~/bin/termux-url-opener && chmod +x ~/bin/termux-url-opener
このスクリプトは動画や、音声をスマホのDownloadフォルダにyoutube-dlというフォルダ名で保存します。
変更したい場合は、以下のコマンドでtermux-url-opener
を開いて、この表のTermux上での表示を参考に画像にあるSAVE_PATH
を変更してください。
nano ~/bin/termux-url/opener
もし、Moviesフォルダの中のYouTubeというフォルダに保存したい場合はSAVE_PATH="~/storage/movies/YouTube/"
という風に変更してください。
また、保存して終了するときは、CTRLをタップした後に、Oを入力し、その後にまたCTRLをタップし、Xを入力してください。
実行後は念の為一度アプリを終了し、また起動させてあげてください。
(通知バーで生き残ってるかもしれないので、よく見てあげてください。)
使い方
ここでDLする動画は私が作成し、YouTubeにうpしている動画です。
- 共有画面を開く
- 動画の種類を選択する
画面に表示されている数字を、キーボードを使って入力してください。
音声としてDLしたい場合は、4です。
11, 22のNormalというのは、youtube-dlにそのままURLを渡すだけです。
(自分のスクリプトは、チャンネル単位や、プレイリストをDLしたさい、アップロード日が若い順にファイルを命名するような形にイジってあります)
- 放置
Dlが終わるまで、放置してください、Short動画や、ニコニコ動画など、youtube-dl側が対応してないサイトなどはエラーが帰ってきます。
詳しくはここを見てください。
- 確認
ZArchiver等で確認してみると、キチンとDownloadフォルダの中のyoutube-dlフォルダに動画が保存されているのがわかります。
- アップデート
先程のこの画面で99を選択すると、自動でyoutube-dlをアップデートします。
おわりに
初心者向けに、コピペをすれば動くような形で書いてみましたが、Termuxというアプリの特性上、ファイルとフォルダの違いくらいは理解してないと難しいかもしれないです。
質問等あれば、お気軽にコメントしていってください!