どっかの高専生の技術備忘録

10割自分の備忘録用のブログ。

Termuxを使って面倒な広告無しで動画をDLしてくる方法

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/usercommand/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では~/bintermux-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している動画です。

  1. 共有画面を開く
  2. 動画の種類を選択する
    画面に表示されている数字を、キーボードを使って入力してください。
    音声としてDLしたい場合は、4です。
    11, 22のNormalというのは、youtube-dlにそのままURLを渡すだけです。
    (自分のスクリプトは、チャンネル単位や、プレイリストをDLしたさい、アップロード日が若い順にファイルを命名するような形にイジってあります)
  3. 放置
    Dlが終わるまで、放置してください、Short動画や、ニコニコ動画など、youtube-dl側が対応してないサイトなどはエラーが帰ってきます。
    詳しくはここを見てください。
  4. 確認
    ZArchiver等で確認してみると、キチンとDownloadフォルダの中のyoutube-dlフォルダに動画が保存されているのがわかります。
  5. アップデート
    先程のこの画面で99を選択すると、自動でyoutube-dlをアップデートします。

おわりに

初心者向けに、コピペをすれば動くような形で書いてみましたが、Termuxというアプリの特性上、ファイルとフォルダの違いくらいは理解してないと難しいかもしれないです。
質問等あれば、お気軽にコメントしていってください!

追記を見るにはクリックして下さい 2021/11/29 コマンドのスペルミスを修正しました。
2021/12/01 PlaySotre版がサポートされなくなった件を書き足しました。 2022/01/06 作業を一纏めにしたスクリプトを使用するように変更。また、yt-dlpを使うように変更

参考

ytdl-org.github.io

qiita.com

xtech.nikkei.com