You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为youtube-dl的-o参数设置条件格式化输出?

YouTube-dl -o 参数条件格式化实现方案

要解决元数据缺失时生成NA路径的问题,youtube-dl支持在输出格式化字符串中使用Python风格的三元表达式,直接实现字段存在性判断与默认值替换,以下是具体写法:

通用解决方案(全局默认值)

适用于任意播放列表,缺失元数据时用通用默认值:

youtube-dl -o '%(artist if artist and artist != "NA" else "Unknown Artist")s/%(album if album and album != "NA" else "Unknown Album")s/%(track if track and track != "NA" else title)s.%(ext)s' https://www.youtube.com/playlist?list=OLAK5uy_k_chX2TlWB1Xnhm5ca6papp0bZwIC_Sd0
  • 逻辑说明:
    • 若artist/album字段存在且不为NA,则使用字段值;否则替换为Unknown Artist/Unknown Album
    • 若track字段缺失,直接使用视频title作为文件名,避免生成NA文件名

针对特定播放列表的优化方案

如果已知播放列表归属固定艺术家/专辑(比如你提供的The Oh Hellos《Dear Wormwood》专辑列表),可以直接指定对应默认值,让缺失元数据的视频自动归类到正确目录:

youtube-dl -o '%(artist if artist and artist != "NA" else "The Oh Hellos")s/%(album if album and album != "NA" else "Dear Wormwood")s/%(track if track and track != "NA" else title)s.%(ext)s' https://www.youtube.com/playlist?list=OLAK5uy_k_chX2TlWB1Xnhm5ca6papp0bZwIC_Sd0

这种写法会让所有视频统一归类到The Oh Hellos/Dear Wormwood目录下,有track元数据的用曲目名,缺失的用视频标题命名。

关键注意事项

  • 确保shell环境正确转义:如果默认值包含空格或特殊字符,要用引号完整包裹格式化字符串
  • 部分场景下youtube-dl会将缺失字段标记为None而非NA,因此判断条件中同时检查字段存在性和是否为NA,避免遗漏

内容的提问来源于stack exchange,提问作者jojo2357

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 11:54:14