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

使用Python subprocess调用yt-dlp命令时遇无效参数错误如何解决?

问题:Python调用yt-dlp时--downloader-args参数报错

原命令与Python代码

原yt-dlp命令:

yt-dlp -f bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best --downloader ffmpeg --downloader-args "ffmpeg_i:-ss 00:19:10.00 -to 00:19:40.00" --no-check-certificate https://youtu.be/YXfnjrbmKiQ

编写的Python调用代码:

import subprocess

result = subprocess.call(['yt-dlp','-f','bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best','--downloader','ffmpeg','--downloader-args','"ffmpeg_i:-ss 00:00:10.00 -to 00:00:40.00"','--no-check-certificate','https://youtu.be/YXfnjrbmKiQ'])

print(result)

报错信息

ffmpeg_i:-ss 00:00:10.00 -to 00:00:40.00: Invalid argument

解决方法

错误原因是使用subprocess列表传参时,给--downloader-args的参数额外添加了双引号。在shell中双引号用于避免空格分割参数,但列表传参已经明确每个元素为独立参数,额外的双引号会被当成参数内容的一部分,导致yt-dlp解析失败。

修正后的代码:

import subprocess

result = subprocess.call([
    'yt-dlp',
    '-f', 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best',
    '--downloader', 'ffmpeg',
    '--downloader-args', 'ffmpeg_i:-ss 00:00:10.00 -to 00:00:40.00',
    '--no-check-certificate',
    'https://youtu.be/YXfnjrbmKiQ'
])

print(result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 00:27:38