在桌面上使用 Safari 观看发布到 Facebook Days/Stories 的视频时,我可以右键单击视频并按“复制视频地址”,然后我会获得真实的 URL。但在 Chrome 中,它给我的是一个 URL blob
。
“检查元素”不会显示视频的真实 URL,那么如何在 Chrome 中获取它(无论是否使用插件)?可以在 Edge 中获取吗?在 Internet Explorer 中可以吗?如果您建议使用插件,必须能够给我视频 URL,而不是仅仅下载视频。
如果可以的话,请告诉我为什么 Safari 会公开真实的 URL 而 Chrome 却不会。
答案1
奇怪的是,Facebook 没有为视频设置单独的文件。他们似乎将视频存储在两个单独的文件中,视频文件和音频文件,均存储为 MP4 文件。
这两个文件是以块(流式)的形式加载的。用于加载 MP4 文件块的 URL 指定了 bytestart 和 byteend 作为参数,以告知服务器正在加载视频或音频文件的哪一部分。
当您检查页面 HTML 代码中的视频 URL 时,Facebook 会将这些块粘合到一起形成一个 blob,您就可以看到它。
我通过打开 chrome 浏览器中的开发人员工具并在播放视频文件时查看“网络”选项卡找到了此信息。将文本 MP4 放入过滤功能中,因此只显示与文本 MP4 匹配的 url。
要获取完整的视频文件和完整的音频文件,您需要获取两个 MP4 文件的 URL。一旦您拥有 2 个唯一的 MP4 文件 URL,请将 bytestart 参数更改为 0,并将 byteend 参数更改为非常大的值,例如 9999999(我不确定您可以使用的最大字节大小是多少,但您可以尝试一下,如果您没有获取完整的文件,请尝试将 byteend 数字调大。
一旦您拥有这两个文件,您将需要在视频编辑器中将它们合并以获得合并音频和视频的单个视频文件。
更新话虽如此,在网站的移动版本上,Facebook 确实提供了完整的视频/音频文件,因此如果你从桌面网站获取故事的 URL,例如https://www.facebook.com/stories/117935330119473 然后将其更改为移动网站版本,将“www”替换为“m”,即https://m.facebook.com/stories/117935330119473
然后加载 Story,如果您这次查看网络选项卡,并过滤 mp4 的 URL,您应该会看到一个组合视频和音频文件的 URL,您可以将其复制并粘贴到浏览器中,然后加载后您应该能够保存文件。或者,只需检查页面的 HTML 代码,查找标签<video
,然后从那里复制完整视频文件的源 URL。