YouTube 是如何运作的?

Posted

技术标签:

【中文标题】YouTube 是如何运作的?【英文标题】:How does YouTube work? 【发布时间】:2019-01-25 01:31:27 【问题描述】:

Google Chrome 不尊重 html5 <video> 元素上的 autoplay 属性。页面加载后立即使用video.play() javascript 会引发错误:

Uncaught (in promise) DOMException: play() failed 因为用户没有先与文档交互。

好的,但是 YouTube 视频是 HTML5 并且它们可以自动播放。 YouTube 使用什么技术来绕过 Chrome 的限制? 是否所有网页都可以这样做(或者不能,可能是因为 YouTube 有一个例外,因为 Google 拥有它)?

【问题讨论】:

How to make javascript alarm to be played 100%?的可能重复 @LouysPatriceBessette 不,我特意询问的是 YouTube 用于自动播放视频的 JavaScript。 我标记为重复,因为我已经回答了类似的问题。 This Google article 保存您寻找的所有信息。这是浏览器限制...与 Youtube 无关。 @LouysPatriceBessette 是的,但是 YouTube 在 Promise 中究竟做了什么来绕过这个浏览器限制? Youtube 归谷歌所有...我想他们破例了...用户肯定想看视频,这在其他网站上并不明显。 【参考方案1】:

对于 Youtube,它可能是一个预先填充的白名单

https://blog.google/products/chrome/improving-autoplay-chrome/

如果您没有浏览历史记录,Chrome 允许自动播放 1,000 多个网站,我们发现在这些网站中,访问者播放有声媒体的比例最高。


对于其他情况,可以参考以下规则(至少对于 Chrome)

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

在以下情况下允许自动播放声音:

用户与域进行了交互(点击、点击等)。

在桌面设备上,用户的媒体参与指数阈值已被超过,这意味着用户之前播放过有声视频。

【讨论】:

以上是关于YouTube 是如何运作的?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android中将视频上传到youtube?

如何理解,来自 webview 的链接是 YouTube 链接,在 YouTube 应用程序中打开它?

手机Youtube

在搜索Youtube api后,如何获取Youtube视频[关闭]

如何浏览 youtube?

如何使用 C# 中的 Youtube API 将视频上传到 YouTube?