Python 如何使用youtube dl';s—添加标题选项?
我正在尝试使用youtube dl添加一个自定义标题,youtube dl是一个带有命令行界面的流行视频下载程序 我正在Windows 10上使用PowerShell(或CMD) 像下面这样说,但我似乎不能正确地使用它 --添加标题字段:值Python 如何使用youtube dl';s—添加标题选项?,python,powershell,cmd,command-line,youtube-dl,Python,Powershell,Cmd,Command Line,Youtube Dl,我正在尝试使用youtube dl添加一个自定义标题,youtube dl是一个带有命令行界面的流行视频下载程序 我正在Windows 10上使用PowerShell(或CMD) 像下面这样说,但我似乎不能正确地使用它 --添加标题字段:值 指定自定义HTTP标头及其值, 由冒号“:”分隔。你可以用这个 多次选择 我正在尝试为请求添加多个标题,如: "Accept-Encoding": "identity;q=1, *;q=0", "Range": "bytes=6488064-", "Refe
指定自定义HTTP标头及其值, 由冒号“:”分隔。你可以用这个 多次选择 我正在尝试为请求添加多个标题,如: "Accept-Encoding": "identity;q=1, *;q=0", "Range": "bytes=6488064-", "Referer": "https://avideosite.net/video/0123456", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36" 它不工作并抛出如下错误: Start-Process : A positional parameter cannot be found that accepts argument 'Accept-Encoding'. At line:1 char:1 + start youtube-dl --add-header "Accept-Encoding":"identity;q=1, *;q=0" ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Start-Process], ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand 启动进程:找不到接受参数的位置参数 “接受编码”。 第1行字符:1 +启动youtube dl--添加标题“接受编码”:“标识;q=1,*;q=0”。。。 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +CategoryInfo:InvalidArgument:(:)[Start Process],参数BindingException +FullyQualifiedErrorId:PositionParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand 我做错了什么
另外,是否有一种正确的方法可以使用
youtube\u dl
library将其放入Python脚本?因此我的问题是路径中没有youtube-dl.exe,这甚至阻止了我启动youtube dl。所以,让我回答我自己关于--addheader选项的问题
About--addheader选项,对于每个项目,它应该类似于foo:“bar”
例如,问题中的原始命令应该是:
$ youtube-dl --add-header Accept-Encoding:"identity;q=1, *;q=0" --add-header Range:"bytes=6488064-" --add-header Referer:"https://avideosite.net/video/0123456" --add-header User-Agent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36" http://11.22.333.444:8280/abcdefg=.mp4?st=97WbFiADB5Hla7Y-fZx58g&e=1560574126
请记住,如果url中有&(与符号)字符(如我的示例中所示),则必须用“”将其包装起来 在这里添加一个额外的答案,因为我还不能发表评论。公认的答案建议使用youtube dl中的“-add header”选项在标题中添加一个referer。我不能让它工作,但使用“-referer”选项成功了,它做了同样的事情。示例用法如下所示:
youtube-dl --referer https://exampleVideoHost.com/hostURLWhereEmbeddedVideoAppears https://exampleVideoHost.com/videoSRCvalue
尝试删除start@SiddharthDas这只会给出一个错误youtube dl:术语“youtube dl”不能识别为cmdlet、函数、脚本文件或可操作程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。在第1行,char:1+youtube dl+~~~~~~~~~~~~~~~+CategoryInfo:ObjectNotFound:(youtube dl:String)[],CommandNotFoundException+FullyQualifiedErrorId:CommandNotFoundException,这意味着youtube dl未正确安装或路径未添加到环境变量中。安装说明如下“Windows用户可以下载.exe文件,并将其放置在其
路径上的任何位置,除了%SYSTEMROOT%\System32
“.是你干的吗?哎呀,我没看见。”。现在我把它添加到我的路径中,$youtube dl
命令工作起来很有魅力;q=1,*;q=0'
而不是youtube dl——添加标题接受编码:“identity;q=1,*;q=0”
@AeroWang yep您需要引号(至少在mac/linux上)
youtube-dl --referer https://exampleVideoHost.com/hostURLWhereEmbeddedVideoAppears https://exampleVideoHost.com/videoSRCvalue