Stream 当请求报头时,如何使用youtube dl下载MPEG Dash(mpd文件)并获取HTTP错误403

Stream 当请求报头时,如何使用youtube dl下载MPEG Dash(mpd文件)并获取HTTP错误403,stream,youtube-dl,request-headers,Stream,Youtube Dl,Request Headers,我使用了Chrome开发者工具来过滤mpd文件。 我已经得到了mpd的URL和上下文菜单副本链接地址。 但是当我组装了youtube dl命令行时,它得到了HTTP错误403:禁止 因此,我尝试添加--verbose选项以获取更多信息,并发现一条警告“无法发送头请求”,因此我假设还需要发送头。 我可以在网络活动检查器中列出的mpd文件中使用上下文菜单copy as cURL获取标题 使用curl下载对清单有效,但如何向youtube dl提供标题以正确发送 检查网络活动中的Chrome deve

我使用了Chrome开发者工具来过滤mpd文件。 我已经得到了mpd的URL和上下文菜单副本链接地址。 但是当我组装了youtube dl命令行时,它得到了HTTP错误403:禁止

因此,我尝试添加--verbose选项以获取更多信息,并发现一条警告“无法发送头请求”,因此我假设还需要发送头。 我可以在网络活动检查器中列出的mpd文件中使用上下文菜单copy as cURL获取标题


使用curl下载对清单有效,但如何向youtube dl提供标题以正确发送

检查网络活动中的Chrome developer tools筛选条目的cURL副本将提供此类字符串:

curl 'https://source-of-video.net/folder/manifest.mpd' \
  -H 'authority: source-of-video.net' \
  -H 'pragma: no-cache' \
  -H 'cache-control: no-cache' \
  -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36' \
  -H 'dnt: 1' \
  -H 'accept: */*' \
  -H 'origin: https://origin-website-of-video' \
  -H 'sec-fetch-site: cross-site' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-dest: empty' \
  -H 'referer: https://origin-website-of-video/origin.html' \
  -H 'accept-language: en-US,en;q=0.9,es;q=0.8,it;q=0.7,pt;q=0.6' \
  --compressed
只需将
-H
替换为
--add header
curl
替换为
youtube dl
,然后删除
--compressed
即可,结果如下(头只是示例):

youtube-dl 'https://source-of-video.net/folder/manifest.mpd' \
  --add-header 'authority: source-of-video.net' \
  --add-header 'pragma: no-cache' \
  --add-header 'cache-control: no-cache' \
  --add-header 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36' \
  --add-header 'dnt: 1' \
  --add-header 'accept: */*' \
  --add-header 'origin: https://origin-website-of-video' \
  --add-header 'sec-fetch-site: cross-site' \
  --add-header 'sec-fetch-mode: cors' \
  --add-header 'sec-fetch-dest: empty' \
  --add-header 'referer: https://origin-website-of-video/origin.html' \
  --add-header 'accept-language: en-US,en;q=0.9,es;q=0.8,it;q=0.7,pt;q=0.6' \