我的一个朋友试图下载Twitter嵌入式视频,并在HTML代码中找到类似的内容:
<video preload="auto" data-id="content" data-type="content" src="blob:https%3A//twitter.com/7897de6d-6eed-4905-9ed2-00ea3d2c99d5" class="visible paused" style="width: 100%; height: 100%;"></video>
Run Code Online (Sandbox Code Playgroud)
当我试图找出视频流的真实来源时(通过检查浏览器网络控制台并点击代理),我感到困惑.随着视频播放,字节似乎无处不在.
浏览器如何理解blob"协议"?
Blob 是一种处理属于浏览器的内存的方式。这可以是文件、画布中的数据或以其他方式计算的数据。JavaScript当数据以可以访问的方式加载时blob,您可以创建一个BlobURI,它是一个指向内部内存结构的 url。
对于 twitter 使用blob视频 url 的情况,我怀疑他们要么通过代理视频canvas以应用过滤器,要么用于blobs某种本地缓冲区。不管怎样,这意味着 JS 在过去的某个时刻可以访问该内存。