I'm trying to add a custom header using youtube-dl, a popular video downloader with command line interface.
I'm using PowerShell (or CMD) on Windows 10.
The official documentation says like the following but I can't seem to use it properly.
--add-header FIELD:VALUE
Specify a custom HTTP header and its value, separated by a colon ':'. You can use this option multiple times
I'm trying to add multiple headers for the request like:
"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"
But when I tried something like
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"
It doesn't work and throws an error like this:
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
What am I doing wrong?
Also, is there a proper way to put it into Python script using youtube_dl
library?
So my problem was not having youtube-dl.exe in my PATH, which prevented me from even starting youtube-dl. So let me answer my own question about --add-header option.
About --add-header option, it should be something like foo:"bar"
for each item.
For example, my original command from the question should be like:
$ 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
Remember that if you have &(ampersand) character in the url like in my case, you'll have to wrap it with " ".
Adding an additional answer here because I cannot comment yet. The accepted answer suggests using the "--add-header" option in youtube-dl to add a referer in the header. I couldn't get this to work but did have sucess using the "--referer" option which does the same thing. example usage is as follows:
youtube-dl --referer https://exampleVideoHost.com/hostURLWhereEmbeddedVideoAppears https://exampleVideoHost.com/videoSRCvalue
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With