動かざることバグの如し

近づきたいよ 君の理想に

yt-dlpでFile name too longエラー

環境

  • yt-dlp 2024最新版

エラー内容

yt-dlpで動画をダウンロードしようとしたらファイル名が長すぎるとエラーになってしまった。

ERROR: ffmpeg exited with code 1

ERROR: unable to open for writing: [Errno 36] File name too long: '******.webm.part'```

最近の動画ダウンロードにはほぼffmpegを利用しており、映像と音声を別々にダウンロードして最後にマージしたり、m3u8形式のストリーミング動画のダウンロードにも必要だったりする。

対応方法

結論からいうと以下のIssueで挙げられているが根本的な修正には至っていない。

ファイル名が長すぎるとffmpegがエラーになってしまう(もしくはファイルシステムの上限がある)ので --trim-filenamesオプションで指定した文字数だけタイトルの文字になるらしいのだが動作しないらしい。

結局以下のようなオプションを追加することで無事にダウンロードできるようになった。例では150バイト以降は切り捨てるようにしており動画タイトルが長かったとしても 勝手に切ってくれる。

yt-dlp 【動画URL】 --output "%(title).150B [%(id)s].%(ext)s"