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

use*_*363 6 python powershell command-line cmd youtube-dl

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

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

官方文档如下所示,但我似乎无法正确使用它。

--add-header FIELD:VALUE
指定自定义 HTTP 标头及其值,以冒号“:”分隔。您可以多次使用此选项

我正在尝试为请求添加多个标头,例如:

"Accept-Encoding": "identity;q=1, *;q=0",
"范围": "字节=6488064-",
"Referer": "https://avideosite.net/video/0123456",
"用户代理": "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"
Run Code Online (Sandbox Code Playgroud)

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

启动过程:找不到接受参数的位置参数
'接受编码'。
在行:1 字符:1
+ 启动 youtube-dl --add-header "Accept-Encoding":"identity;q=1, *;q=0" ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidArgument: (:) [Start-Process], ParameterBindingException
    + FullQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand

我究竟做错了什么?

另外,是否有一种正确的方法可以使用youtube_dl库将其放入 Python 脚本中?

use*_*363 6

所以我的问题是我的 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
Run Code Online (Sandbox Code Playgroud)

请记住,如果像我这样在 url 中有&(&符号)字符,则必须用“”将其包装起来。

  • 我认为语法是 `youtube-dl --add-header 'Accept-Encoding:identity;q=1, *;q=0'` 而不是 `youtube-dl --add-header Accept-Encoding:"identity; q=1, *;q=0"`。 (4认同)