YouTubeに投稿されている動画のダウンロードはYouTubeの規約違反です。 ご利用は自己責任でお願いします。
ただし、ダウンロードした動画を個人で楽しむ分には違法ではありません。
要約
YouTubeなどの動画プラットフォームから動画をダウンロードしたりするためのコマンドラインツールとして、 yt-dlpというものが存在する。
このソフトウェアはPythonライブラリとして利用することもでき、 これとTkinterを使用して利用しやすいGUIを実装した。
インストール
公式サイトからPython3.11 をダウンロードする。 (Microsoft StoreからでもOK)
GitHubに飛び、 ソースコード(ZIP)をダウンロードし、ZIPファイルを解凍する。

FFmpegをDL&解答し,
binフォルダ内のffmpeg.exe,ffplay.exe,ffprobe.exeをstart.batと同じフォルダにコピーする。
setup.batを実行する。(ここまでが初期設定)start.batを実行して、ソフトを起動する。
CLIの問題点
詳しくないと使えない
CLIツールの主な問題として、使うために知識が必要であることがある。 特にターミナルを起動してコマンドを実行するのは、 不慣れな人にとって恐怖そのもの。
オプションなどのコマンドを覚える必要がある
yt-dlpは高度なソフトウェアであり、
数多くのオプションを扱えるが、
知識の無い人にとっては意味不明でよく分からない。
ある操作を繰り返す際にコマンドを書くのが面倒
ある動画をダウンロードするコマンドがあっても、 複数の動画をDLしたいときには、1動画に対して1つずつコマンドを実行する必要がある。 スクリプトを書ける人なら繰り返しを使って一括処理できそうだが、 全員がShellScriptを扱えるわけじゃない。
実装した内容
CLIの問題点の内容を踏まえて以下のような機能を実装した。
GUI
とにかくCLIは難しい(難しそうにみえる)ので、
TkinterでGUIを作成した。

MP3形式でDL
音楽などは、動画より音声でDLしたいという需要がある。 その中でもMP3形式は幅広く利用されているためこれに対応した。
一括DL
出力フォルダにdownload_list.txtを配置することで、
複数の動画から一括でダウンロードを実行することができる。
デフォルトではMP3形式でダウンロードされるので、
ダウンロードしたい音楽のURLを1行ずつ記載しておけば、
すべてが自動でDLされる。

限定動画のDL
YouTubeの動画の中には、視聴条件として
- YouTube Premiumに加入
- メンバーシップに参加
が設定されているものがある。
このような限定動画に対応するために、 ブラウザのCookie情報を読み込んでダウンロードを行う機能を実装している。
Get cookies.txt LOCALLY
のような拡張機能を利用して youtube.com のCookie情報をテキストファイルに出力すれば、
ブラウザのログイン情報を使って動画をDLすることができる。