Ian*_*dge 7 youtube cookies youtube-iframe-api
将 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:
这些从位于https://www.youtube.com/iframe_api的 Iframe Player API 脚本中设置为 HTTP cookie (打开 Chrome 隐身窗口并直接查看该脚本 URL 并检查 cookie,您将看到上述 2 个 cookie 集)。我不确定这些 cookie 到底是什么,但它们看起来很像跟踪 cookie。
因此,这些是在用户与视频交互或采取任何同意操作之前设置的事实,意味着我们无法使用 IFrame Player API,同时在欧盟 cookie 指令方面仍然符合 GDPR。
所以问题是,我们如何在不设置 cookie 的情况下使用 IFrame Player API?
注意:我已经用标签youtube-iframe-api发布了这篇文章,希望谷歌能回答这个问题:
我们支持 Stack Overflow 上的 YouTube IFrame API。Google 工程师使用 youtube-iframe-api 标签监控和回答问题。
我遇到了类似的问题,并决定尝试使用此脚本。然而,到目前为止,他们的文档似乎并不清楚如何在没有任何 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。不幸的是,目前似乎还没有一个理想的解决方案。