【问题标题】:YouTube Player API error 150 on some owned videos某些自有视频上的 YouTube 播放器 API 错误 150
【发布时间】:2020-10-21 16:02:32
【问题描述】:

我正在尝试在 Tizen Web 应用程序上使用 YouTube IFrame API 来展示我公司的视频项目,但其中许多视频显示“视频不可用”错误,并且从 onError 事件中我收到 错误代码 150。当然,所有视频都配置为允许嵌入。

例如,这个视频可以正常播放:

https://www.youtube.com/embed/XZc76zYrsdU

但是这个不会播放,并且会显示提到的错误:

https://www.youtube.com/embed/9t4UooKRhBQ

以下是我用来从我的应用中加载 YouTube IFrame 的一些代码:

// creating fullscreen div for the YouTube IFrame API to populate
var divYt = document.createElement("div");
divYt.setAttribute("id", "player");
divYt.style.width = "100%";
divYt.style.height = "100%";
divYt.style.position = "absolute";
divYt.style.top = "0";
divYt.style.left = "0";
divYt.style["z-index"] = "9999";
divYt.style["box-sizing"] = "unset";
document.body.appendChild(divYt);

$scope.player = new $window.YT.Player("player", {
    videoId: $scope.videoIdSel,  // the ID of the selected video
    events: {
        "onReady": onPlayerReady,
        "onStateChange": onPlayerStateChange,
        "onError": onPlayerError
    }
});

如果用户选择示例中的第一个视频,一切正常,但如果选择第二个视频,则调用 onPlayerError 函数,返回data: 150

在网上查找时,我看到一些人认为该错误可能与版权声明有关,但在这种情况下,这两个视频都已被取消获利,所以我认为这不是我的问题。

注意:将链接粘贴到新标签页时也会发生此错误,但单击在同一页面中打开的链接时不会发生此错误。我还注意到,如果我在 Chrome 上以隐身模式打开第二个嵌入视频,它神秘地可以正常工作,但我当然不能在我的网络应用上这样做。

我很难理解是什么导致了这个问题。有人可以帮我吗?谢谢:)

【问题讨论】:

    标签: javascript angularjs video youtube youtube-api


    【解决方案1】:

    问题似乎与 YT 播放器的许可政策有关。 您提供的两个 URL 中的许可证不同。
    第一个 URL (https://www.youtube.com/embed/XZc76zYrsdU) 没有任何许可证,而第二个 URL (https://www.youtube.com/embed/9t4UooKRhBQ) 有许可证。
    第二个 URL 的许可是 UMG(Walt Disney Records) 和 BMI - Broadcast Music Inc.。 您可以通过单击“显示更多”来检查第二个 URL @https://www.youtube.com/watch?v=9t4UooKRhBQ&feature=emb_title 的许可证

    【讨论】:

    • 感谢您的回复,我没有注意到这个(相当微妙的)差异。编辑:这是预期的行为吗?两个视频的版权情况相同
    • @FabIngenia 这似乎是一种预期的行为。
    猜你喜欢
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    • 2014-12-29
    • 2014-11-21
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 2019-10-14
    相关资源
    最近更新 更多