如何像 youtube 那样在 HTML5 的视频标签中欺骗 src 属性

Posted

技术标签:

【中文标题】如何像 youtube 那样在 HTML5 的视频标签中欺骗 src 属性【英文标题】:How to spoof src attribute in video tag in HTML5 as youtube does 【发布时间】:2015-04-14 02:47:16 【问题描述】:

因为我们可以检查元素并查看 src 标签并在浏览器中获取视频链接。如何使用虚假网址欺骗用户,以便用户不知道视频的位置。

比如我们打开观察这个视频的src标签

https://www.youtube.com/watch?v=SRXbBwpJIbk

src="blob:https%3A//www.youtube.com/60c62892-bf05-423b-9665-a3a470e9ea37"

但是如果我们再次打开这个链接,如果我们删除 url 中的 blob,我们什么也得不到或 404 错误。

那么 youtube 是如何做到这一点的呢?或者任何其他隐藏网址的方法?

我也在网络面板中观察到。我看不到任何特定的链接来获取视频。如何实现?

【问题讨论】:

拥有blob:http:// 不会返回任何内容,您应该研究有关域名和http(s):// 的信息,至于how do they do it? 我将假设视频页面在youtube 只是一个页面,此页面数据将根据 url 中给定的视频参数而改变。将video.php?v=SRXbBwpJIbk 替换为watch?v=SRXbBwpJIbk 可以使用.htaccess 查看这个网站,它使用你建议的方法成功播放了视频,我不知道为什么它在那里工作而不适合你。 tomshannon.com 相关问题:***.com/questions/30864573/… 【参考方案1】:

Blob URL 不是真实且唯一的 URL。它们指向浏览器选项卡中使用的一些内存,并且只能由该选项卡或其依赖项使用。

一旦关闭选项卡,内存就会丢失。这就是您无法在其他选项卡中打开该 blob URL 的原因。

YouTube 似乎正在通过 XHR 加载视频块,并使用每个块创建或更新 blob。然后浏览器读取“流” blob,就好像它是本地文件一样(因为 YouTube 手动处理加载)

【讨论】:

【参考方案2】:

也许这对你有用,但如果这个 blob: 内置在他的脚本中,我不知道。也许你问他是否可以添加它,如果它不适合你

https://www.npmjs.com/package/location-hide

这个模块有很多很棒的功能,我经常在我的博客中使用它

【讨论】:

【参考方案3】:

尝试改变

https://www.youtube.com/watch?v=SRXbBwpJIbk 

https://www.youtube.com/embed/SRXbBwpJIbk 

,将/watch?v=更改为/embed/

【讨论】:

以上是关于如何像 youtube 那样在 HTML5 的视频标签中欺骗 src 属性的主要内容,如果未能解决你的问题,请参考以下文章

html5 (youtube) 视频标签说明

Youtube 的 HTML5 视频播放器如何控制缓冲?

如何将 Youtube 视频嵌入 HTML5 <video> 标签?

如何通过 HTML5 视频标签播放 YouTube 视频

如何在Android上使用HTML5应用启用全屏YouTube视频?

如何从 Youtube 播放列表 API 中过滤掉不可嵌入的视频