Notebook

これは日々の作業を通して学んだことや毎日の生活で気づいたことをを記録しておく備忘録である。

HTML ファイル生成日時: 2025/07/30 08:17:51.269 (台灣標準時)

yt-dlp で YouTube の動画をダウンロードするときのこと

yt-dlp というコマンドで YouTube の動画をダウンロードしようとしたら、以 下のようなメッセージが表示されたでござる。


% yt-dlp -o tenrabansho_111 'https://www.youtube.com/watch?v=o3v-5mro9ZY'
[youtube] Extracting URL: https://www.youtube.com/watch?v=o3v-5mro9ZY
[youtube] o3v-5mro9ZY: Downloading webpage
[youtube] o3v-5mro9ZY: Downloading ios player API JSON
[youtube] o3v-5mro9ZY: Downloading mweb player API JSON
[youtube] o3v-5mro9ZY: Downloading player 5ae7d525
[youtube] o3v-5mro9ZY: Downloading m3u8 information
WARNING: ffmpeg not found. The downloaded format may not be the best available. Installing ffmpeg is strongly recommended: https://github.com/yt-dlp/yt-dlp#dependencies
[info] o3v-5mro9ZY: Downloading 1 format(s): 18
[download] Got error: HTTP Error 503: Service Unavailable. Retrying (1/10)...
[download] Destination: tenrabansho_111
[download] 100% of   22.71MiB in 00:00:32 at 711.89KiB/s

「ffmpeg がないでござる」と言われているでござる。実は、 ffmpeg はイン ストールされているのでござるが、 pkgsrc で ffmpeg をインストールすると、 インストールされる実行ファイルは ffmpeg7 や ffmpeg6 というように、バー ジョンの番号がついたファイル名になっていて、 ffmpeg というファイル名で はないでござる。

yt-dlp が ffmpeg という実行ファイルの存在を期待するのであれば、 pkgsrc で ffmpeg のいずれかのバージョンをインストールしたときに、 ffmpeg7 (或 いは ffmpeg6, 或いは ffmpeg5, .....) というファイルを指し示す ffmpeg というシンボリックリンクも作られるようになっているとよいと思ったでござ る。或いは、 yt-dlp に対して、 ffmpeg が見つからなくても、 ffmpeg7, ffmpeg6, ffmpeg5, ... なども探すようなパッチが当てられるとよいと思った でござる。どちらも簡単に実現させることは難しいのでござろうか。

なお、以下のようにシンボリックリンクを作ってみたところ、 "WARNING: ffmpeg not found. The downloaded format may not be the best available. Installing ffmpeg is strongly recommended: https://github.com/yt-dlp/yt-dlp#dependencies" という WARNING は でなくなったでござる。


# cd /usr/local/bin
# ln -s ../../pkg/bin/ffmpeg7 ffmpeg

シンボリックリンク作成後に yt-dlp を実行した結果は以下の通りでござる。


% yt-dlp -o tenrabansho_111 'https://www.youtube.com/watch?v=o3v-5mro9ZY'
[youtube] Extracting URL: https://www.youtube.com/watch?v=o3v-5mro9ZY
[youtube] o3v-5mro9ZY: Downloading webpage
[youtube] o3v-5mro9ZY: Downloading ios player API JSON
[youtube] o3v-5mro9ZY: Downloading mweb player API JSON
[youtube] o3v-5mro9ZY: Downloading m3u8 information
[info] o3v-5mro9ZY: Downloading 1 format(s): 137+251
[download] Destination: tenrabansho_111.f137.mp4
[download] 100% of  138.35MiB in 00:09:08 at 258.08KiB/s
[download] Destination: tenrabansho_111.f251.webm
[download] 100% of    6.85MiB in 00:00:39 at 179.30KiB/s
[Merger] Merging formats into "tenrabansho_111.mkv"
Deleting original file tenrabansho_111.f137.mp4 (pass -k to keep)
Deleting original file tenrabansho_111.f251.webm (pass -k to keep)

"man yt-dlp" として、 yt-dlp のマニュアルを読んでみたところ、 yt-dlp には "--ffmpeg-location" というオプションがあるようで ござった。ということは、以下のような alias を作っておけばよいようでご ざる。


alias ffmpeg7 'ffmepg7 --ffmpeg-location /usr/pkg/bin/ffmpeg7'

しかし、バージョンごとにエイリアスを作っておかねばならぬので、少々面倒 でござる。

fig_202503/xterm_man_ytdlp.png


Frequently accessed files

  1. Misc___Taiwan/20240819_00.html
  2. Misc___Taiwan/20240207_00.html
  3. Computer___TeX/20231107_00.html
  4. Computer___Network/20230516_00.html
  5. Computer___NetBSD/20230119_00.html
  6. Misc___Taiwan/20240903_01.html
  7. Computer___NetBSD/20250301_01.html
  8. Computer___NetBSD/20240805_03.html
  9. Food___Taiwan/20230609_06.html
  10. Food___Taiwan/20230608_04.html
  11. Computer___Network/20230726_00.html
  12. Computer___NetBSD/20250728_00.html
  13. Misc___Taiwan/20250728_01.html
  14. Computer___TeX/20240410_00.html
  15. Computer___NetBSD/20250409_00.html
  16. Food___Taiwan/20230711_15.html
  17. Food___Taiwan/20220605_4.html
  18. Computer___Python/20240101_00.html
  19. Misc___Taiwan/20220831_4.html
  20. Computer___TeX/20230726_01.html
  21. Computer___Hardware/20250319_00.html
  22. Food___Taiwan/20220811_9.html
  23. Food___Taiwan/20230622_10.html
  24. Computer___Network/20241214_00.html
  25. Food___Taiwan/20230604_00.html
  26. Computer___Network/20240130_00.html
  27. Misc___Japan/20240610_00.html
  28. Food___Taiwan/20230724_00.html
  29. Food___Cooking/20230625_03.html
  30. Travel___Taiwan/20230525_09.html


HTML file generated by Kinoshita Daisuke.