Я пытаюсь воспроизводить видео на YouTube с расширения chrome, и часто получаю error code 150
, в частности, из видеороликов, которые находятся за пределами моей страны. Я использую Youtube Data API v3
для извлечения видео со следующими параметрами:
part=id&type=video&order=relevance&safeSearch=strict&videoSyndicated=true&maxResults=1&videoEmbeddable=true
Тем не менее, я часто получаю видеоролики, которые генерируют код ошибки 150 при воспроизведении с моего встроенного проигрывателя. Одним из примеров является следующее видео:
при воспроизведении от встроенного проигрывателя он выдает ошибку 150, а сообщение об ошибке, отображаемое в iframe, равно
видео содержит контент от SME. Он ограничен воспроизведением на определенных сайтах.
Я пытаюсь использовать одно и то же видео с тем же встроенным игроком iframe в веб-сайте youtube Player, размещенном на developers.google.com
, и он воспроизводит без ошибки код.
Поэтому я подозреваю, что ошибка выше, потому что я пытаюсь воспроизвести видео с расширением chrome, а не потому, что я играю его со встроенного проигрывателя. Когда я воспроизвожу его с веб-страницы, размещенной на моей локальной машине (например: файл:///home/testing.page.html), я получаю то же сообщение об ошибке.
Чтобы решить проблему, я попытался заставить YouTube подумать, что я был обычной веб-страницей вместо расширения chrome. Используя chrome.webRequest
, я добавил информацию о реферере в заголовок запроса.
{ name: 'Referer', value: "https://www.youtube.com" }
Даже после исправления requestHeader ошибка осталась. Я предполагаю это, потому что свойство origin
, прикрепленное к проигрывателю iframe youtube, которое указывает, где находится встроенный проигрыватель, независимо от requestHeader.
Моя цель - либо найти видео, которые абсолютно воспроизводимы, либо воспроизводить видео, которые можно воспроизводить только с веб-страницы (невозможно воспроизвести с расширением chrome).
Буду признателен за любую помощь. Спасибо.
Дополнительная информация
My iframe инициализируется, как показано ниже:
<iframe id="myframe" src="https://www.youtube.com/embed/?
enablejsapi=1&origin=chrome-extension:\\<my_extension_id>" frameborder="0" allowFullScreen></iframe>