cookies - 在 youtube-nocookie.com 域中使用 YouTube IFrame Player API 脚本时禁用 cookie
问题描述
在将 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。
但是,我们使用设置 cookie的 IFrame Player API(带有enablejsapi=1
嵌入参数) 。我们看到在 .youtube.com 域上设置了以下 cookie:
- YSC
- VISITOR_INFO1_LIVE
这些从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。不幸的是,目前似乎没有理想的解决方案。
推荐阅读
- json - 如何遍历scala中的嵌套地图列表
- android - 如何在颤动中移动图像顶部底部
- java - 计算两个数字之间百分比变化的方法返回错误的数字
- c# - 具有可通过 Windows.Media 控制的缩放/平移功能的网络摄像头
- asp.net-mvc - MVC 项目集合返回空
- reactjs - 集中多个在 React 中变成一个字符串
- node.js - 即使我正在使用 forEach,orderByChild 也无法正常工作
- google-sheets - Google 脚本(表格)Getlastrow 未按预期工作
- c++ - 在 C++ 中重载 unsigned long
- scala - 为不同的 JSON 有效负载重用解码器