在YouTube-nocookie.com域中使用YouTube IFrame Player API脚本时禁用Cooki



使用youtube IFrame Player API和从www.youtube-nocookie.com域播放的专用增强模式视频时,如何禁用youtube.com上设置的Cookie

在";开启隐私增强模式";中的部分https://support.google.com/youtube/answer/171780?hl=en,建议使用www.youtube-nocookie.com域名:

在不使用跟踪观看行为的cookie的情况下嵌入YouTube视频。

此操作效果良好,不会按预期设置cookie。

但是,我们使用IFrame Player API(嵌入参数上有enablejsapi=1(,会设置cookie。我们在youtube.com域上看到以下cookie设置:

  • YSC
  • 访问者_INFO1_LIVE

这些从Iframe Player API脚本设置为HTTP cookie,位于https://www.youtube.com/iframe_api(打开Chrome浏览器的隐身窗口,直接查看脚本URL并检查cookie,你会看到上面的2个cookie集(。我不确定这些cookie到底是什么,但它们看起来可疑地像追踪cookie。

因此,这些设置是在用户与视频交互或采取任何同意行动之前设置的,这意味着当涉及欧盟cookie指令时,我们不能在符合GDPR的情况下使用IFrame Player API。

所以问题是,我们如何在不设置cookie的情况下使用IFrame Player API

注意:我用标签youtube iframe api发布了这篇文章,希望谷歌能回答这个问题:

我们支持堆栈溢出上的YouTube IFrame API。谷歌工程师使用youtube iframe api标签监控并回答问题。

(来自https://developers.google.com/youtube/players/support)

我遇到了类似的问题,决定改为使用此脚本。然而,到目前为止,从他们的文档中似乎还不清楚如何在没有任何cookie的情况下实现这一点。只需更换https://www.youtube.com/iframe_api具有https://www.youtube-nocookie.com/iframe_api导致404错误。

基于此,我尝试了以下方法。此代码通过程序创建视频播放器并设置https://www.youtube-nocookie.com作为主机。它确实加载了视频,如果你检查它,你可以看到最初没有创建cookie;但如果你开始播放视频,https://www.youtube-nocookie.com设置一个名为NID的cookie。就设置cookie而言,这与使用www.youtube.com.通过iframe加载视频的结果相同

<div id="js-player"></div>
<script src="https://www.youtube.com/player_api"></script>
window.onYouTubePlayerAPIReady = function() {
new YT.Player(document.getElementById("js-player"), {
height: '315',
width: '560',
host: 'https://www.youtube-nocookie.com',
videoId: 'M7lc1UVf-VE'
})
};

https://jsfiddle.net/c9Lbksx6/

因此,无论你做什么,当你使用带有JavaScript控件的YouTube播放器API时,你都会得到至少1个cookie。不幸的是,目前似乎还没有一个理想的解决方案。

最新更新