【发布时间】:2023-03-31 05:28:01
【问题描述】:
我正在使用 python subprocess.call() 调用 [youtube-dl.exe][1] 并像这样传递参数
downloadLocation = "-o " + "C:/Users/username/Documents/Youtube/%(title)s.%(ext)s"
subprocess.call(["youtube-dl",
"-f" "bestvideo[ext=mp4, height=1080]+bestaudio[ext=m4a]/best[ext=mp4, height=1080]/best",
downloadLocation,
url])
但结果是(在 python 控制台上):[download] Destination: C#\Users\username\Documents\Youtube\myVideoFile.mp4
文件正在下载到执行 python 调用的当前目录中。
示例:"C:\Users\username\PycharmProjects\pytest\ C#\Users\username\Documents\Youtube"
在我看来它无法转义文件路径中的“:”字符。
请帮忙
【问题讨论】:
-
您需要分别传递标志(
-f、-o)及其值。 IE。而不是downloadLocation,你需要'-o', "C:/Users/username/Documents/Youtube/%(title)s.%(ext)s",。 -
有一个python版本,它会更简单:
pip install --upgrade youtube-dl -
尝试使用原始字符串作为您的路径:
r"C:/Users/username/Documents/Youtube/%(title)s.%(ext)s" -
@Rawing 也不行
标签: python python-3.x github subprocess youtube-dl