yt-dlp というパッケージを使って動画サイトから動画をダウンロードする方法についてまとめておきます。
以下の環境で動作確認をしています。
環境: Windows パソコン、conda (Anaconda) のインストール済み
背景 ~ プログラムがすぐに古くなる。。
数年前に youtube-dl というパッケージを使って、動画サイトから動画をダウンロードする方法についてまとめていました。
しかしながら、最近はアップデートが止まり、機能しなくなってきています。
オープンソースのパッケージはとても便利なのですが、すぐに古くなってしまいます。賞味期限や価値の半減期で2年といった感じです。
そこで、現時点(2026年)の環境での動画のダウンロード方法についてまとめておくことにします。
最近、デファクトスタンダードになっている yt-dlp を使うことにします。
仮想環境(conda、Anaconda)のツールを使っているものとし、Python、ダウンロード用の yt-dlp、動画・音声の変換・編集に必要な ffmpeg の3つをインストールします。
また、インストールコマンドとしては、conda-forge が使われるようになっています。従来、複数のパッケージを使うとバージョンの組み合わせなどにより動かなくなるといった問題がよく起こりました。conda-forge を使うことで、プログラム間の整合性やアップデートの対応などが改善されるようです。
なお、動画などの媒体についてはサイトの規約や著作権などを配慮する必要があります。配布や公開は避け、技術検討や個人での使用等に留めるようにしてください。
設定手順
環境の設定
① プロンプト(例:conda、Anaconda Prompt)を起動する。
conda info -e
② 動画のダウンロード用の環境(例:”yt-dlp1″)を作る。
conda create -n yt-dlp1
conda info -e
※ 仮想環境の名称 “yt-dlp1” は一例です。必要により変更し、適宜、以下を読み替えてください。
③ ②の環境をアクティベートする。
conda activate yt-dlp1
conda list
pip list
※ まだ、何もインストールしていないため、”conda list”, “pip list” を実行すると、初期状態となっています。
④ Python、yt-dlp、ffmpeg の3つをインストールする。
conda install -c conda-forge python
conda install -c conda-forge yt-dlp
conda install -c conda-forge ffmpeg
conda list
pip list
※ 従来の “conda install” や “pip” インストールでも動くと思います。
Python のスクリプトの設定
⑤ パソコンにフォルダ(例: “yt-dlp1″)を作成します。
続いて、末尾の Python のスクリプト(yt-dlp1_download.py)をコピー&ペーストして保存します。
例: C:/user/yt-dlp1/yt-dlp1_download.py
⑥ ⑤のフォルダにテキストファイル(”yt-dlp1_list1.txt”)を作成します。
このファイルに、ダウンロードする動画の URL(動画のありか)のリストを記載します。
例: C:/user/yt-dlp1/yt-dlp1_list1.txt
※ スクリプトを実行すると、このファイルを読み込んで、順次、ダウンロードするようにしてあります。
末尾のサンプルは記載例ですので、実際の動画のURLに差し替えてください。
⑦ ⑤のフォルダ内にさらに、ダウンロード用のフォルダ “download1” を作成してください。
例: C:/user/yt-dlp1/download1/
※ ⑥で指定した動画がフォルダ “download1” に保存されます。
⑧ プログラムを実行する場合は、以下を実行します。
python C:/user/yt-dlp1/yt-dlp1_download.py
バッチファイルの設定
ダウンロードを行う際、ダブルクリックで実行できると便利です。そこで、バッチファイルを作成しておくことにします。
⑨ ⑤のフォルダに、テキストファイル(”yt-dlp1_download.bat”)を作成して末尾のサンプルをコピー&ペーストして保存します。
例: C:/user/yt-dlp1/yt-dlp1_download.bat
⑩ バッチファイルのサンプルでは Anaconda の activate.bat を読み出して、仮想環境を設定するようにしてあります。記載例で(パス1)となっている部分は、全体のパスが activate.bat のありかとなるよう、書き換えてください。Anaconda のインストール時の設定にもよりますが、通常は、C:/Users/(ユーザー名)/Anaconda3/Scripts/ の下あたりにあると思います。
Anaconda Prompt を使っている場合は、プロンプトを起動して、”cd Anaconda3″、”cd Scripts”、”dir *.bat” を順次実行すると activate.bat が見つかると思います。
※ 仮想環境の名前 “yt-dlp1” を変えた等の場合は、バッチファイルの内容も、適宜、修正してください。
使い方
・ YouTube などの動画サイトで任意の動画を表示し、ページの上欄に出ている URL をコピーし、ダウンロード用のテキスト “yt-dlp1_list1.txt”(⑥)に貼りつけて保存してください。URL は複数を設定することができます。
・ つぎに、③で作成した仮想環境(”yt-dlp1″)をアクティベートします。
コンソールに “python ” と入力し、続けて、⑤の Python のスクリプトをドラッグ&ドロップして、Python を実行してみてください。
→ 動画のダウンロードが開始します。動画は download1 フォルダ内に保存されます。
→ ダウンロードが完了したら成功です。
・ ダウンロード用のリスト “yt-dlp1_list1.txt” では、行の途中に空行を2つ以上入れておくと、その地点でダウンロードを停止します。
ダウンロードしたい URL をファイルの上部に追加し、すでにダウンロードが終わったものは冒頭に改行を複数入れてテキストの後半に入れておくことで、無駄な処理はスキップするようにしてあります。
・ ダウンロードができたら、バッチファイルについても動作確認をしてください。ダブルクリックでダウンロードを開始できます。
以後、ダウンロードしたい動画の URL をコピー&ペーストでテキストに追加すると、ダブルクリックの1アクションでダウンロードができるようになります。
・ なお、動画のダウンロード中に通信エラー等となったり動画ファイルが化けてしまった場合は、動画を削除して再度、ダウンロードを行ってください。
うまく動いたら
・ 今回設定した yt-dlp や ffmpeg は、ターミナルでコマンドや URL を入力しても実行することが可能です。
動画や音声データのダウンロード、動画・音声の編集などがターミナルでの操作で自由にできることになります。
・ Python のスクリプトでは、ターミナルで動かす際のコマンドの文字列を生成してターミナルに送ることで実行しています。コマンド操作はターミナルに表示されるようにしています。
手入力で動くコマンドを順次、実行している程度ですので、コマンド部分を差し替えることで自由にカスタマイズが可能です。
・ スクリプトでは、ダウンロード時に ffmpeg の機能を使って、mp4 形式に変換するようにしています。また、画面サイズを指定して、ファイルの容量を調整できるようにしています。
もし、ffmpeg を使わないのであれば、スクリプトでコメントアウトしてある最初の行のようにシンプルなコマンドでも機能します。この場合、yt-dlp の素の機能を使うのみとなり、サイトの動画形式(webm 形式等)での保存となります。
コメントアウトした部分に、いくつか典型的な事例を記載しています。必要により差し替えて、使いたい機能や画像サイズ、パラメータなどを設定してください。
たとえば、mp4 ではなく mp3 形式の音声データとしてダウンロードしたり、画像のサイズをオリジナルのものに戻すなどが可能です。
・ コメントアウトした部分には記載していませんが、動画の字幕を取得するなど、任意のカスタマイズが可能です。
・ 今回は、仮想環境を作成して必要なパッケージを入れるようにしてみました。不要になったら削除したり、環境を作り直すことも容易です。
余談: 動画や LLM の活用について考えてみる
上記のスクリプトにより、動画や音声ファイルを自由に活用できることになります。
動画の一般的な活用例を挙げてみます。
・ 音楽や趣味などで動画を活用するようにする。
BGM、気分転換、健康管理などで動画・音声を活用する。指定時間に音楽や動画を流すようにすることで、生活パターンを整えるのに利用する。日頃の定型作業を促すのに利用する。
・ 語学学習などで、英語ニュースなどの動画を活用する。
たまに見る英語ニュース、よく聞く媒体を使って集中的に練習する。これにより、日頃の生活パターンと語学能力の向上をリンクさせる。語彙力やリスニング力を鍛えるのに活用する。よく聴く外国の曲、知っている外国の曲は字幕などを活用して歌詞を暗記し、語彙を増やす。聞き取りに慣れる。
・ 自分の専門分野でも動画を活用する。知識の範囲を広げたり、理解度を深める。最近のトピックスなど情報収集で活用する。
・ 苦手な分野、まったく知らない分野を開拓・攻略するときに動画を活用する。動画であれば、心理的な/経済的なハードルを下げることができる。
・ 技術検討で活用する。技術の向上に連携させる。
プログラムを作成して動画のフレームや音声を抜き出すなどにより、画像認識、物体認識、音声処理、機械学習など、プログラミングや技術検討などで活用する。
スマートフォンなどの普及に伴い、本が読めない人が増えているといった指摘があります。本を読む際にも動画を有効活用できます。
たとえば、書評やその分野の YouTube 動画をいくつか見て概要や背景知識をおおよそ把握してから本を読むようにします。すると、理解度や読むスピードを向上させることができます。本を読んでいて途中で止まってしまった場合は、その止まったあたりのトピックスで YouTube 動画などを探して視聴することで、イメージや理解、興味・好奇心を膨らませることが可能になります。
とくに、人文科学や社会科学、一般の社会の分野は、理系分野などで数式や数値、論理を追うのに比べると格段に楽だと思います。よく出てくるキーワードの意味・背景、歴史、人物などを動画を使って事前に把握しておくと、本を読む際の負担感が半減します。
また、動画や本をざっと見て、知らない用語、専門用語、人物・学者・思想家・哲学者などをピックアップし、Google Gemini/Copilot などの LLM (Large Language Model)で質問を繰り返すようにします。すると、使ったことのない用語についても使い慣れることができ、理解に要する時間も最短化できます。
攻略する分野を決めて集中的に本を何冊か読んでおくと、以後、重複する部分は飛ばし読みが可能になります。その本固有のポイントだけ把握すれば、本一冊の概要を頭に入れておくことも可能になります。数十分の動画を見るよりも短時間で多くの情報をさばくことも可能になると思います。
なお、今回のような動画の URL を Gemini などの LLM のサイト上で渡し、「字幕を取得して内容を整理してください」、「…文字程度で整理してください」などとすると、動画の要旨をテキスト化してくれるようです。海外のニュースや媒体でも、テキストが入っていれば機能します。
最近は、タイトルだけキャッチーだったり、コマーシャルばかりの動画、注意を奪うだけの動画も増えています。タイトルと内容が一致しない動画、雑談が始まり内容がなく視聴時間だけを稼ごうとする動画、似たり寄ったりの動画も多いです。無駄に動画や SNS などを見てしまうと1日がすぐに終わってしまいます。
動画などの視聴中に LLM で要旨をまとめさせ、内容がなければ視聴をスキップする。気分転換になる、解説がわかりやすい、着眼点が目新しい、生活が改善するなど、価値が実感できる動画や、理解度が50%以下だなと思う英語ニュースや専門分野の動画は繰り返し活用するなど、動画の活用についてもメリハリをつけることが可能です。
まとめ
動画のダウンロードについてまとめました。
かつては、情報工学の知識の半減期は7年といわれていましたが、いまは2年くらいになった印象です。
自然科学で数学や理論の部分、実際のモノやハードウェアが絡む部分は半減期がかなり長いといった感じでしょうか。
人文科学や社会科学などでは、知らないと損をする、気づかないと何年も無駄にする、といったことがけっこう起こるのですが、動画や LLM の活用により、短時間での習得・把握が容易になっています。
各専門分野の知識の半減期が大きく変化しているといえそうです。とはいえ、動画・音声・LLM・テキスト・書籍を縦横に活用することで、いくらでも効率を上げられる環境ですよね。
関連リンク
・ 動画作成ソフトウェア【Python & mp4, gif】
・ 動画ファイルから音声データを一括で引き抜く 【Python & ffmpeg】
・ 動画のダウンロードのまとめ 【youtube-dl】
・ 一括で音声データの音量調整をする 【Python】
・ ブラウザで動く音楽プレーヤー 【JavaScript & Python】
・ よく使う conda コマンドのまとめ 【仮想環境】
・ バッチファイルで Anaconda から Python を実行する 【Windows】
外部リンク
・ https://github.com/yt-dlp/yt-dlp
・ https://gemini.google.com/app?hl=ja
サンプルスクリプト
yt-dlp_list1.txt 動画のダウンロード用のリスト
https:// www.youtube.com/watch?v=xxxx
https:// www.youtube.com/watch?v=xxxx
https:// www.youtube.com/watch?v=xxxx
https:// www.youtube.com/watch?v=xxxx
https:// www.youtube.com/watch?v=xxxx
※ 上記で、https: 以降の部分は、具体的なサイトの URL に差し替えてください。
yt-dlp1_download.py ダウンロード用のスクリプト
import os
import time as tm1
def read1(file1):
with open(file1, 'r', encoding='utf-8') as f1:
str1 = f1.read()
return str1
path1 = os.path.dirname(__file__) + "/"
path2 = path1 + "download1/"
print(path1)
file1 = path1 + "yt-dlp1_list1.txt"
str1 = read1(file1).strip().split("\n\n\n")[0]
a1 = str1.split("\n")
for i1 in range(len(a1)):
url1 = a1[i1]
if url1.startswith("https:"):
cmd1 = "cd " + path2 + " "
# cmd2 = "yt-dlp " + url1 + " " # *.webm format
# cmd2 = 'yt-dlp -f "bv*[ext=mp4]+ba[ext=m4a]/b[ext=mp4]" ' + url1 + " " # *.mp4 format
# cmd2 = "yt-dlp -x --audio-format mp3 " + url1 + " " # *.mp3 format
cmd2 = 'yt-dlp -S "res:240,+size,ext:mp4" --merge-output-format mp4 ' + url1 + " " # small size
cmd0 = cmd1 + " & " + cmd2
print(cmd0)
os.system(cmd0)
tm1.sleep(5)
yt-dlp1_download.bat バッチファイルの記載例
call C:/Users/(パス1)/Anaconda3/Scripts/activate.bat
cd %~dp0
call conda activate yt-dlp1
call python yt-dlp1_download.py
