Как загрузить MPEG Da sh (файл mpd) с помощью youtube-dl при запросе заголовков и получении ошибки HTTP 403 - PullRequest
1 голос
/ 18 июня 2020

Я использовал Chrome инструменты разработчика для проверки сетевой активности и фильтрации файла mpd. Я получил URL-адрес mpd с адресом ссылки для копирования в контекстном меню. Но когда я собрал командную строку youtube-dl, он получил ошибку HTTP 403: Запрещено.

Поэтому я попытался добавить параметр --verbose, чтобы получить дополнительную информацию, и обнаружил предупреждение «Не удалось отправить Запрос HEAD ", поэтому я предположил, что мне нужно отправить также заголовки. Я могу получить заголовки с копией контекстного меню как cURL в файле mpd, указанном в инспекторе сетевой активности.

Загрузка с помощью curl работает для манифеста, но как я могу предоставить заголовки для youtube-dl, чтобы правильно их отправлять?

1 Ответ

1 голос
/ 24 июня 2020

Копия cURL из Chrome отфильтрованной записи инструментов разработчика в проверке сетевой активности предоставит такую ​​строку:

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' \
...