Встраивание видео в YouTube "Отказано от отображения документа, потому что отображение запрещено с помощью X-Frame-Options"
Я пытаюсь вставить видео YouTube на свою страницу, как только пользователь дает ссылку на видео.
<iframe width=\'560\' height=\'315\' src='http://www.youtube.com/watch?v=<video id>&output=embed' frameborder=\'0\' allowfullscreen></iframe>
Но когда я пытаюсь добавить это, я получаю эту ошибку. После проверки страницы в chrome, я вижу эту ошибку на вкладке консоли
"Отказ в отображении документа из-за того, что отображение запрещено X-Frame-Options"
Я не могу смотреть видео даже в IE
и Firefox
также
Я даже пытался добавить
header('X-Frame-Options:Allow-From http://www.youtube.com');
header('X-Frame-Options:GOFORIT);
&output=embed to the url
После прочтения определенных решений в других постах.
Но я все еще получаю ту же ошибку.
Я также вижу, что у youtube есть метод встраивания объектов для показа видео, но уже youtube сделал это как старый метод встраивания видео. Поэтому я хочу использовать новый метод iframe для встраивания видео на мою страницу.
Проблема видна в
- Firefox 11
- Chrome 18.0
- IE 8
Кто-нибудь сталкивался с этой проблемой?
Ответы
Ответ 1
Страница, которую вы устанавливаете как источник iframe (страница Youtube /watch
), не хочет быть встроенной в вашу страницу. Вы не можете заставить это сделать это.
Правильный URL для вставки имеет вид:
http://www.youtube.com/embed/oHg5SJYRHA0
Ответ 2
Когда вы копируете ссылку на видео с YouTube: "https://www.youtube.com/watch?v=Fva3fgKmu3o"
-Replace 'watch' with /embed/
-Remove '? V ='
Финальный пример: "https://www.youtube.com/embed/Fva3fgKmu3o"
Ответ 3
TL; DR: вам может понадобиться удалить ваши куки.
Если он по-прежнему не работает с /v
или /embed
, проблема может быть в вашем клиенте из-за неправильно отформатированных файлов cookie. Вы также можете увидеть эту ошибку из-за ошибки HTTP 400 на большинстве или на каждой странице YouTube.
Чтобы решить эту проблему, вам нужно удалить файлы cookie YouTube:
В Chrome введите chrome://settings/siteData
в адресной строке и введите youtube
в поле Search cookies
.
Далее вы увидите две группы файлов cookie для YouTube, вы можете удалить все, или, если вы нажмете на маленькую стрелку, вы сможете увидеть отдельные имена gsScrollPos-####
cookie и просто можете удалить определенные, такие как все gsScrollPos-####
.
Источники этого ответа и более подробную информацию можно найти в этой теме Reddit.
Ответ 4
Замените ключевое слово watch на встроенный и измените действующий URL-адрес примерно так:
$url_string="https://www.youtube.com/watch?v=H1pTkatn6sI";
$url= str_replace('watch?v=','embed/', $url_string);
А затем вставьте его в iframe
<iframe id="player" type="text/html" width="640" height="390" src="{{ $url }}" frameborder="0"></iframe>
Ответ 5
Проверьте официальный документ на странице Вставить видео или плейлист с support.google.com/youtube
<iframe width="560" height="315"
src="https://www.youtube.com/embed/videoseries?list=PLx0sYbCqOb8TBPRdmBHs5Iftvv9TPboYG"
frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
Проверьте больше советов, трюков о YouTube