我使用Chrome开发人员工具来检查网络活动并过滤mpd文件。 我得到了带有上下文菜单复制链接地址的 mpd 的 URL。 但是当我组装了youtube-dl命令行时,它得到了HTTP错误403:禁止。
所以我尝试添加 --verbose 选项以获取更多信息,并发现警告"无法发送 HEAD 请求",所以我假设我还需要发送标头。 我可以在网络活动检查器中列出的 mpd 文件中将带有上下文菜单副本的标题作为 cURL 获取。
使用 curl 下载适用于清单,但我如何向 youtube-dl 提供标头以正确发送它们?
检查网络活动中 Chrome 开发者工具过滤条目中的 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'