Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用youtube dl';s—添加标题选项?_Python_Powershell_Cmd_Command Line_Youtube Dl - Fatal编程技术网

Python 如何使用youtube dl';s—添加标题选项?

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

我正在尝试使用youtube dl添加一个自定义标题,youtube dl是一个带有命令行界面的流行视频下载程序

我正在Windows 10上使用PowerShell(或CMD)

像下面这样说,但我似乎不能正确地使用它

--添加标题字段:值
指定自定义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