标签: youtube-iframe-api

Chrome更新版块闪存自动播放 - 如何避免它?

我在一个html页面中嵌入了一个YouTube视频.我使用带有Flash的youtube iframe API(在我的情况下,我不能使用HTML5视频).自上次谷歌Chrome更新以来,Chrome会阻止自动播放并避免以编程方式播放/暂停视频(element.playVideo()无响应).(在其他浏览器上一切正常)

我找到的唯一方法是:

  • 进入Chrome偏好设置
  • 然后点击显示高级设置...
  • 然后点击内容设置
  • 然后在插件下,选择第一个选择运行所有插件内容(或选择一个特定的例外)

在此输入图像描述

这个解决方案对用户来说是复杂的,有人有没有任何用户交互的解决方案吗?

javascript youtube flash google-chrome youtube-iframe-api

8
推荐指数
1
解决办法
3185
查看次数

Youtube iframe api allow ="autoplay"Chrome 65

当前的金丝雀版Chrome 65阻止了自动播放声音的iframed youtube视频.

Chrome的最新更改要求iframe具有allow ="autoplay"

如何在youtube iframe api中添加allow ="autoplay"?我在任何文档中都找不到它.

https://developers.google.com/web/updates/2017/09/autoplay-policy-changes#iframe

功能策略允许开发人员有选择地启用和禁用各种浏览器功能和API的使用.一旦来源获得了自动播放权限,它就可以将该权限委托给具有自动播放新功能策略的跨源iframe.请注意,默认情况下,在同源iframe上允许自动播放.

<iframe src="myvideo.html" allow="autoplay">
Run Code Online (Sandbox Code Playgroud)

iframe youtube-api youtube-iframe-api

8
推荐指数
1
解决办法
1万
查看次数

在youtube中显示播放列表菜单

在嵌入的YouTube播放列表的左上角,有一个按钮可打开播放列表菜单。我正在尝试以页面加载方式以编程方式打开此列表。有没有办法做到这一点?

我认为这可以实现,contentWindow.postMessage但我不知道要使用什么功能。我找不到任何文档。

播放列表嵌入代码:

https://www.youtube.com/embed/NU1rsLIdpNA?list=PLdIivvLumeIVQHwOsZLYqp3-LZ75X1WKO

javascript youtube-iframe-api

7
推荐指数
0
解决办法
736
查看次数

谷歌搜索 YouTube iframe 错误

我网站的某些页面包含 youtube 视频,最近我注意到它们的描述很糟糕。

确切地说,它只显示:您的浏览器当前无法识别任何可用的视频格式。单击此处访问有关 HTML5 视频的常见问题解答。

即使它是空白的也没关系,但为什么它会选择这个东西......任何想法如何删除它?

search google-search youtube-iframe-api

7
推荐指数
1
解决办法
238
查看次数

Youtube iframe api:与 MediaSession 交互

我有一个带有 Youtube IFrame API 的 angular 应用程序。当网站/pwa 在安卓设备上使用,并且正在播放 Youtube 视频时,应用程序会自动在 android 通知托盘中创建一个通知,让您查看当前正在播放的视频。

基本媒体通知

我创建了自己的播放列表控制器,所以我没有使用 queueVideoById,因为我不喜欢默认的 youtube-iframe 播放列表控制器的工作方式(之后您无法删除排队的视频)。

从我的 AppComponent 我正在加载 YouTube IFrame API

app.component.ts

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit, OnDestroy {
  constructor(private youtubeHelper: YoutubeHelper) {
    this.youtubeHelper.loadApi().then((isLoaded) => {
      this.player.playSong(song.playerInfo.id);
    });
  }

  @ViewChild('player') player: YoutubePlayerComponent;
}
Run Code Online (Sandbox Code Playgroud)

应用程序组件.html

<body>
  <youtube-player #player [domId]="'player'" ... (previousPressed)="onPreviousPressed()" (nextPressed)="onNextPressed()"></youtube-player>
</body>
Run Code Online (Sandbox Code Playgroud)

此帮助程序用于加载 IFrame API 脚本。LoadApi 插入一个 src 设置为 youtube-iframe-url 的脚本标签:

import { Injectable } from '@angular/core';
import { Promise } …
Run Code Online (Sandbox Code Playgroud)

youtube-iframe-api android-mediasession android-notification.mediastyle

7
推荐指数
0
解决办法
386
查看次数

在 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。

但是,我们使用 IFrame Player API(带有enablejsapi=1嵌入参数),它确实设置了 cookie。我们看到在 .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 cookies youtube-iframe-api

7
推荐指数
1
解决办法
2072
查看次数

用于嵌入 YouTube 视频的 CSP

我刚刚开始在 Chrome 上的嵌入式 YouTube 视频中看到这一点(86.0.4240.193 - 最近更新,这可能就是我看到这个的原因) - 这些只是“报告”,因此视频仍然会显示,但可能会出现数百个错误不对吧!这就是我所看到的:

[Report Only] Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'strict-dynamic' 'unsafe-inline' https: 'report-sample' 'nonce-t9IE7nI2leo7qKxsm7d80g=='".
Run Code Online (Sandbox Code Playgroud)

这是我的 iFrame——

<iframe id="video-iframe" width="500" height="281" src="https://www.youtube.com/embed/HIDDENVIDEO" frameborder="0" allowfullscreen ></iframe>
Run Code Online (Sandbox Code Playgroud)

我不知道 CSP 应该是什么——我发现这个 CSP 显然可以解决他们的问题——

<iframe id="video-iframe" width="500" height="281" src="https://www.youtube.com/embed/HIDDENVIDEO" frameborder="0" allowfullscreen csp="script-src 'self' https://www.google-analytics.com/ https://www.youtube.com/ https://s.ytimg.com/; object-src 'self'; child-src https://www.youtube.com/* https://s.ytimg.com/"></iframe>
Run Code Online (Sandbox Code Playgroud)

没那么多——我只是看到:拒绝显示......

非常感谢任何帮助。

我刚刚检查了该developers.google.com/youtube/iframe_api_reference#Examples页面,我看到了同样的事情——这当然不应该发生,对吧?

在此输入图像描述

content-security-policy youtube-iframe-api

7
推荐指数
1
解决办法
2万
查看次数

删除未使用的 Javascript base.js (Youtube iframe api)

Google PageSpeedInsights 在我的报告中将 Base.js 标记为未使用的 Javascript。487kb 相当大了。似乎来自包括 Youtube 播放器 iframe api。是否需要此文件?如果需要,有人知道为什么它在报告中被标记为未使用的 JS 吗?

iframe API: https: //developers.google.com/youtube/iframe_api_reference

在 PageSpeedInsights 上被标记为未使用 JS 的大文件: https: //www.youtube.com/s/player/c88a8657/player_ias.vflset/en_US/base.js

javascript youtube youtube-iframe-api pagespeed-insights

7
推荐指数
2
解决办法
2万
查看次数

从 iframe API 延迟加载 youtube 视频

我想使用 iframe API 延迟加载 youtube 视频。IE。一开始只加载海报图片,当用户点击它时,只加载实际图片及其内容。

javascript youtube jquery youtube-iframe-api

6
推荐指数
4
解决办法
2万
查看次数

在 sandbox-iframe 中嵌入 youtube-iframe 失败

当将 youtube-iframe 嵌入到另一个已沙箱化的 iframe 中(以防止 XSS)时,播放器在所有主要浏览器中都会保持黑色。

请参阅https://jsfiddle.net/ms9fwLbk/

<!DOCTYPE html><html lang='en'><head><title>Sandbox iframe youtube problem</title></head><body>
<iframe sandbox='allow-scripts allow-presentation' width='600' height='400' srcdoc='
     <!DOCTYPE html><html lang="en"><head><title>iframe</title></head><body>
     <!-- original source-code shared from youtube: -->
     <iframe width="560" height="315"
         src="https://www.youtube.com/embed/QwS1r1mc888?controls=0"
         frameborder="0"
         allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
         allowfullscreen></iframe>
     </body></html>
'></iframe></body></html>
Run Code Online (Sandbox Code Playgroud)

浏览器的控制台日志显示以下错误,因为 youtube-api 在 CORS 方面存在问题(此处没有allow-same-origin 选项,因为允许脚本已启用并且会使 cookie 容易受到攻击)

Uncaught DOMException: Failed to read the 'cookie' property from 'Document':
The document is sandboxed and lacks the 'allow-same-origin' flag.
at Vb.m.get (https://www.youtube.com/yts/jsbin/www-embed-player-vflwaq4V_/www-embed-player.js:142:47)
Run Code Online (Sandbox Code Playgroud)
Access to XMLHttpRequest at 'https://www.youtube.com/error_204?...'
from origin …
Run Code Online (Sandbox Code Playgroud)

youtube-api youtube-iframe-api

6
推荐指数
1
解决办法
6204
查看次数