Как мне использовать опцию youtube-dl --add-header? - PullRequest
0 голосов
/ 15 июня 2019

Я пытаюсь добавить пользовательский заголовок, используя youtube-dl, популярный загрузчик видео с интерфейсом командной строки.

Я использую PowerShell (или CMD) в Windows 10.

Официальная документация гласит следующее, но я не могу правильно ее использовать.

- 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

Что я делаю не так?

Кроме того, существует ли правильный способ поместить его в скрипт Python, используяyoutube_dl библиотека?

1 Ответ

1 голос
/ 15 июня 2019

Так что моей проблемой было отсутствие youtube-dl.exe в моем PATH, что помешало мне даже запустить 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-адресе указан символ & (амперсанд), как в моем случае, вам придется заключить его в "".

...