Youtube Javascript API返回错误

时间:2011-11-11 01:53:49

标签: javascript youtube youtube-api

当我尝试加载某些视频(例如热门歌曲)时,API会返回错误代码150(请求的视频不允许在嵌入式播放器中播放)。但是,如果我将视频加载到iframe或嵌入标记中,则可以正常工作。

这有效:

<iframe width="560" height="315" src="http://www.youtube.com/embed/j5-yKhDd64s" frameborder="0" allowfullscreen></iframe>

这也有效:

<object width="560" height="315"><param name="movie" value="http://www.youtube.com/v/j5-yKhDd64s?version=3&amp;hl=en_GB"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/j5-yKhDd64s?version=3&amp;hl=en_GB" type="application/x-shockwave-flash" width="560" height="315" allowscriptaccess="always" allowfullscreen="true"></embed></object>

这会警告150错误:

var defaultVideo = 'j5-yKhDd64s';
var player;

function onYouTubePlayerAPIReady() {
  player = new YT.Player('player-wrap', {
    height: '390',
    width: '640',
    videoId: defaultVideo,
    events: {
      'onError': onPlayerError
    }
  });
}
function onPlayerError(event) {
  alert('Error: '+event.data);
  player.stopVideo();
  player.loadVideoById('');
}

为什么会这样?

以下是API的参考:http://code.google.com/apis/youtube/js_api_reference.html#Events

3 个答案:

答案 0 :(得分:1)

此错误代码的历史可追溯至2009年以上,如果您收到错误代码150,则视频将无法在任何浏览器或任何播放器上运行。

错误代码150:视频只能是在youtube上播放广告的播放器。

答案 1 :(得分:0)

使用Iframe API嵌入一些受保护的视频时,我遇到了类似的问题。这些视频在Chrome上播放,但在浏览Firefox和Safari时出现错误150.

我找到的唯一解决方法是切换回依赖Flash嵌入的Javascript API。出于某种原因,所有视频嵌入现在都适用于每个浏览器,从那以后我没有看到任何错误150。

答案 2 :(得分:0)

查看https://developers.google.com/youtube/js_api_reference#onError

101 - 所请求视频的所有者不允许在嵌入式播放器中播放。

150 - 此错误与101相同。伪装只是101错误!