我正在播放Google Drive视频,我有两种方法:
<video>
<source src="https://www.googleapis.com/drive/v3/files/videoXXX?key=APIXXX&alt=media">
</video>或
<video>
<source src="https://drive.google.com/uc?export=download&id=videoXXX">
</video>它们对于小文件都工作得相当好,但是它们在div上捕获全尺寸的视频,而这些div的宽度永远不会超过200像素。我的文件有一个很大的跳跃,从12MB增加到88mb。小于12mb的都能工作,大于88的就不行,所以它们之间有一个分界点。
我发现,通过物理访问https://drive.google.com/file/d/videoXXX/view格式的URL,我可以降低质量,然后右键单击并获得低分辨率文件的URL。
我还设法用file_get_contents("https://drive.google.com/file/d/videoXXX/view")获得了这个URL并解析了结果。您可以使用URL https://docs.google.com/get_video_info?docid=videoXXX执行完全相同的操作。
问题是,这个URL依赖于用户的IP地址,并且将其嵌入到视频标记中不起作用(复制和粘贴到浏览器中也不起作用),因为它被锁定在服务器的IP上。
我尝试过使用Ajax检索它,在iframe中加载视频并抓取源,最近还尝试将服务器的IP锁定的URL下载到服务器上并从那里播放。
除非是最近的一个,我知道这是因为我不能做这种跨源,但是为什么PHP可以做呢?如何从用户IP地址加载此页面和/或获取URL客户端?
发布于 2020-04-23 22:25:34
我知道这是因为我不能做这种跨域操作,但是为什么
能做呢?
因为跨域是在浏览器中强制执行的,而不是在服务器中强制的。PHP会忽略跨域标头。浏览器将强制执行它们。如果不修改和重新编译浏览器源代码,就没有办法绕过它们。如果有一种绕过CORS的方法,它将是无用的,也不会存在。
https://stackoverflow.com/questions/61383845
复制相似问题