はじめに
- 授業で使えそうな動画を一括ダウンロードしたい。(著作権に関しては、記事後半で述べました。)
- youtube_dlで動画をダウンロードするpythonスクリプトを書いているときに、ちょっとしたことでハマった。
- 調べても日本語の記事が見つけられなかったから、備忘録も兼ねて書いておく。
エラーが出たコード(該当部分のみ、全体はページ下部で)
import youtube_dl
path = "動画のURL"
ydl = youtube_dl.YoutubeDL({'outtmpl': '%(id)s%(ext)s','format':'137+140'})
with ydl:
result = ydl.extract_info(
path,
download=True
)
出てきたエラー
ERROR: requested format not available
(中略)
youtube_dl.utils.DownloadError: ERROR: requested format not available
いつエラーが起こるか
- このスクリプトで、うまく行く時もあればうまくいかない時もあった。
- 新しい動画だとうまくいく、2〜3年前の動画だとエラーになる。
原因と解決方法
原因
- エラー的に、
format
がだめなんだろうなあとあたりをつけて調べた。 - formatについては、このサイトで調べた。
- 投稿元の動画の画質(サイズ)によって、使えるフォーマットに縛りがある(考えれば当たり前か)。
- ネット上の色々なサイトをもとになんとなく
'format':'137+140'
としていたのが良くなかった。
- ネット上の色々なサイトをもとになんとなく
解決方法
-
公式リファレンスのフォーマットに関する部分に書いてあるとおり、とりあえずその動画でできる最高画質でダウンロードしたいときは、
'format':'best'
とすれば良いみたい。
修正を加えた完成品
注意 違法ダウンロードを勧めているわけではありません、授業でネット上のコンテンツを授業で利用するときは、教員が正しく理解してからにしましょう。
Q2−3インターネット上(教材用動画サイト、あるいは動画共有サイト(ユーチューブ等))に、教材として使えそうな動画がありました。授業で使用し、可能であれば他の学級とも共有していきたいと思うのですが、授業で視聴することや、ダウンロードすることに問題はないでしょうか?
A2−3
公表された著作物は授業等に供することを目的とする場合は、第35条の権利制限で著作権者の許可なく利用することができます。教材用動画サイトはその用法を守れば問題ありませんが、動画共有サイトは、注意が必要です。違法動画が含まれているかもしれません。
(中略)
<動画共有サイトの場合>
ユーチューブやニコニコ動画等の誰もが投稿出来る動画サイトは、著作権侵害の温床となっています。令和2年に「著作権法の一部を改正する法律」が成立し、違法なインターネット配信による音楽・映像を違法と知りながら複製することを私的使用目的でも権利侵害とする改正が行われました(第30条第2項〜第4項)。こうしたサイトに公開されている映像が、確実に合法なものか違法なものか見分ける方法がありませんので、利用には十分ご注意ください。
できること
- 初回実行時にcsvファイルを作成、2回目実行時にcsvの内容に基づいて動画をダウンロード
- その後、csvの内容に基づいて動画の名前を変更してフォルダに保存