環境
- 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で挙げられているが根本的な修正には至っていない。
- [Feature request] Handle Long filenames in default template and temporary files · Issue #1136 · yt-dlp/yt-dlp
- Unable to download videos due to "File name too long" · Issue #2329 · yt-dlp/yt-dlp
ファイル名が長すぎるとffmpegがエラーになってしまう(もしくはファイルシステムの上限がある)ので
--trim-filenames
オプションで指定した文字数だけタイトルの文字になるらしいのだが動作しないらしい。
結局以下のようなオプションを追加することで無事にダウンロードできるようになった。例では150バイト以降は切り捨てるようにしており動画タイトルが長かったとしても 勝手に切ってくれる。
yt-dlp 【動画URL】 --output "%(title).150B [%(id)s].%(ext)s"