如何使用youtube-dl的--add-header选项?

时间:2019-06-15 08:50:22

标签: python powershell cmd command-line youtube-dl

我正在尝试使用youtube-dl(带有命令行界面的流行视频下载器)添加自定义标头。

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

The official documentation如下所示,但我似乎无法正确使用它。

  

-add-header FIELD:VALUE
                                   指定自定义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 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"

它不起作用并引发如下错误:

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

我在做什么错了?

还可以使用youtube_dl库将其放入Python脚本中吗?

2 个答案:

答案 0 :(得分:1)

所以我的问题是我的PATH中没有youtube-dl.exe,这甚至阻止了我启动youtube-dl。因此,让我回答关于--add-header选项的问题。

关于--add-header选项,每个项目应该类似于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中有(&)字符,则必须用“”换行。

答案 1 :(得分:0)

在此处添加其他答案,因为我无法发表评论。可接受的答案建议使用youtube-dl中的“ --add-header”选项在标头中添加引荐来源网址。我无法使它正常工作,但确实使用“ --referer”选项执行了相同的操作。用法示例如下:

youtube-dl --referer https://exampleVideoHost.com/hostURLWhereEmbeddedVideoAppears https://exampleVideoHost.com/videoSRCvalue