如何从谷歌硬盘流式传输更大的(200MB)视频文件?
我做了什么。
<source src="https://drive.google.com/uc?export=download&id=0B0gf7RQXoPVEa0xCSEhiRG5GNHM" type="video/mp4">
Oops. HTML 5 video not supported.
当我在浏览器中正常调用此URL时,会显示我必须接受的安全请求。
我认为这正是问题,它阻止了。
是否可以发送多个export和id查询参数?
我不认为你可以直接,但有像www-drv.com这样的服务作为代理,让你公开Google Drive或OneDrive的内容。
我有一些关注他们的服务,因为常见问题解答有点不清楚他们需要多少访问GDrive / OneDrive,如果你不得不让他们从根目录访问它(这对我来说是不行的)是不明显的或者如果您可以选择单个目录(和子目录)。我过去曾给他们发过电子邮件,要求澄清,但没有回复...只是想包括这种谨慎。
无论大小如何,您都可以使用HTML 5视频代码实际流式传输Google云端硬盘视频。我花了一段时间来弄清楚这一点,所以这里是:
<video width="1280" height="720" controls>
<source src="link from Google Drive" type="video/mp4" />
</video>
或者,您可以使用开发人员工具中随时可用的网络检查工具。可以通过右键单击网页并选择检查元素,然后单击网络选项卡或使用内置浏览器菜单来访问它们。您可能必须刷新页面并在视频出现在网络选项卡中之前开始播放。通常,它被归类为媒体,因此您可以过滤掉引用媒体文件的每个请求。从那里,您将看到视频的链接并能够复制它们。
重要的是要注意每个URL实际上与客户端的IP相关联。这意味着您获得的链接不一定适用于其他人的设备。要解决此问题,您可以预先加载从客户端获取链接的页面,然后获取源并搜索在Google Drive源中启动
fmt_map_stream
的JSON数组。在那里,你将获得360p
,480p
,720p
和1080p
的四个逃脱链接。复制这些链接并在视频标记中使用它们。请记住,此过程应该从服务器端进行。
此外,我建议使用Google相册。 Google照片允许免费存储,无限制,因为您允许照片压缩视频,以免他们在Google云端硬盘上用完您的配额。要开始使用,请先上传任意大小的视频文件。然后,执行以下操作:
var source = "";
using (var webClient = new WebClient())
{
source = webClient.DownloadString(link_from_above);
}
var chunks = source.Split(',');
var downloadLink = "";
foreach (var chunk in chunks)
{
if (chunk.Contains("video-downloads.googleusercontent.com"))
{
downloadLink = chunk.Replace("\"", string.Empty);
Process.Start("iexplore.exe", downloadLink);
}
}
上面的代码只是从您之前获得的链接下载源代码。然后,它被逗号分开,因为任何块包含ideo-downloads.googleusercontent.com
被提取并且所有"
被替换。在此示例中,将启动Internet Explorer并解析链接。结果将是Internet Explorer要求您保存视频。从这里,您可以执行以下操作:
<video width="1280" height="720" controls>
<source src="download link from source" type="video/mp4" />
</video>
然后,您就可以进行流式传输。您也可以从VLC流式传输。唯一的缺点是搜索并不总是有效,因为文件在技术上是同时下载和播放的。这种方法比Google云端硬盘容易得多。