我正在尝试将 youtube-dl 的输出通过管道传输到,xargs
因为我想用从第一个命令中提取的标题来命名下载的文件。但是我遇到了麻烦。我使用的命令如下;
youtube-dl --get-title "Youtube URI" | xargs youtube-dl -o {} "YouTube URI"
答案1
为了解决有关的具体问题xargs
,您需要指定要使用的{}
占位符:
youtube-dl --get-title "Youtube URI" |\
xargs -I{} youtube-dl -o {} "Youtube URI"
请参阅man xargs
以了解更多信息,以及 还暗示了哪些开关-I
。
因为它只是一个参数,所以使用替换会更直接:
youtube-dl -o "$(youtube-dl --get-title "Youtube URI")" "Youtube URI"
笔记这些构造将给你一个没有适当文件扩展名的文件。
实现你的目标的最直接的方法实际的如上所述,任务将使用内置标题命名选项:
youtube-dl -t "Youtube URI"
如上所述man youtube-dl
。这还将为视频文件生成正确的文件扩展名。
答案2
我一直在阅读 youtube-dl 手册页:您要做的事情比这简单得多,您只需要 -t,--title 标志。
youtube-dl --title "Youtube URL"
或者
youtube-dl -t "Youtube URL"