使用 youtube-dl 时出现“未找到匹配项”错误

使用 youtube-dl 时出现“未找到匹配项”错误

好的,我刚刚开始使用命令行,所以我猜这真的是一个非常菜鸟的问题:

我根据这篇文章下载了 youtube-dlhttps://ytdl-org.github.io/youtube-dl/download.html并尝试使用以下命令下载 YouTube 视频:

youtube-dl --verbose https://www.youtube.com/watch?v=52bRYf198XY

但它又回来了

zsh: no matches found: https://www.youtube.com/watch?v=52bRYf198XY

我使用的是 2014 年中期的 Macbook pro Catalina,希望它能有帮助。

答案1

?出现在地址中。Shell?在文件名生成中将其用作一个字符的通配符。

如果当前工作目录中没有匹配的文件,许多 shell 会?按字面意思处理;您的命令虽然不是完全可靠的,但可能在这样的 shell 中可以工作。但在 Zsh 中不行,它会抱怨没有匹配。

匹配可以是例如https:/www.youtube.com/watchXv=52bRYf198XY(其中https:www.youtube.com是目录;并且//成为/)。如果您碰巧有一个具有此路径的现有文件,则您的命令会将错误的地址传递给该工具。如果有很多匹配项,它会传递很多参数。这种行为显然不是您想要的。文件名生成在这里毫无意义。

用单引号括住地址以使 shell 将其逐字传递给工具:

youtube-dl --verbose 'https://www.youtube.com/watch?v=52bRYf198XY'

答案2

我可以确认 Kamil Maciorowski 发布的上述解决方案也适用于yt-dlp- youtube-dl fork 至少目前是更新的。

yt-dlp -f "best[height>=720]" '<your_youtube_URL_in_single_quotes_for_ZSH>' -o '%(id)s.%(ext)s'

相关内容