iframe - 如何自定义嵌入式 YouTube 视频播放器?
问题描述
当您使用其提供的代码嵌入 YouTube 视频时<iframe>
:您无法隐藏标题和其他几个“功能”。
在一天之内,可以使用参数禁用其中一些功能。截至目前:它们已被弃用。
所以,现在我留下了一个需要嵌入 YouTube 视频的客户端,而没有我们在将鼠标悬停在视频上时看到的所有垃圾:标题、相关视频、频道徽标等。
解决方案
根据我的研究,无法禁用标题和其他一些功能:无论是使用 URL 参数还是 CSS+JS。
虽然,我提出了一个具有很大潜力的解决方案:不仅为了用户的隐私,而且为了用户体验。这个解决方案是:
- 找出一种提取 YouTube 视频源 URL 的方法;
<video>
在or中使用提取的 URL<iframe>
;- 复制 YouTube 播放器风格。
对于第一部分,我使用了 Invidious API。但我认为您也可以创建一个youtube-dl
用于提取视频 URL (?) 的 API。
在我的测试中,我什至不必安装自己的 Invidious 实例:我使用了公共 API 端点:
https://yewtu.be/latest_version?id=dasdsa312&itag=84
在哪里:
- id:视频ID;
- itag:视频流格式代码。
然后,我编写了 JavaScript 代码:
- 动态获取所有可用的 Invidious 公共实例;
- 生成具有许多不同视频质量和可用实例的源的视频元素。
这些来源是根据我的网站 URL 中可用的查询参数生成的:
https://riservato-xyz.frama.io/watch/?v=gprAWYQ47uY
考虑到这一点,每当我需要定制的 YouTube 播放器时,我都可以使用自己的网站嵌入 YouTube 视频。
我知道测试网站(以前的网址)确实很慢。虽然,这是因为我没有使用我自己的 Invidious 实例,而是依赖于公共实例。但它有效!
<iframe width="560"
height="315"
src="https://riservato-xyz.frama.io/watch/?v=W_xIBfrdxQU" frameborder="0"></iframe>
推荐阅读
- javascript - 为什么在Angular 9项目中将自定义标志传递给nodejs命令行时出现“节点:错误选项”错误
- python - 芹菜,关系“x_x”不存在
- ios - RxDataSources 在数据源内容的每次更改时闪烁
- javascript - 如何解决electron的setInterval无效问题?
- java - 在 Kotlin 中按顺序打开 Intent
- arrays - 在这段代码中是否有另一种方式来表示 fscanf 的第三个参数?
- html - 我可以有一个页面,单击图像时单击显示带有密码的新空白页面,提交显示另一个带有文件uload请求提示的空白页面
- python - 如何将 Python Lambda 与共享文件和不同的依赖项捆绑在一起?
- python-3.x - 如何在 RoBERTa 中使用 strategy.scope()?
- c# - 我正在尝试将项目添加到 SharePoint 列表,但不断收到 (400) 错误请求错误