如何从Google云端硬盘流式传输更大的(200MB)视频文件?
我做了什么。
文件在网络上为所有人共享
<source src="https://drive.google.com/uc?export=download&id=0B0gf7RQXoPVEa0xCSEhiRG5GNHM" type="video/mp4">
Oops. HTML 5 video not supported.
当我在浏览器中正常调用此URL时,会显示我必须接受的安全请求。
我认为这就是问题所在,它会阻止它。
是否可以发送多个export和id查询参数?
答案 0 :(得分:4)
我认为您不能直接,但有www-drv.com等服务充当代理,让您公开Google云端硬盘或OneDrive内容。
我对他们的服务有一些担忧,因为常见问题解答有点不清楚他们需要多少访问GDrive / OneDrive,如果你不得不让他们从根目录访问它,这一点并不明显(这对我来说是不行的)或者你可以选择一个目录(和子目录)。我过去曾通过电子邮件向他们发送电子邮件,要求澄清,但没有回复...只是想包含这种谨慎。
答案 1 :(得分:2)
实际上,无论大小如何,您都可以使用HTML 5视频标签流式传输Google云端硬盘视频。我花了一段时间才弄清楚,所以在这里:
将链接插入视频标签。这是最令人满意的部分:
<video width="1280" height="720" controls>
<source src="link from Google Drive" type="video/mp4" />
</video>
或者,您可以使用开发人员工具中现成的网络检查工具。可以通过右键单击网页并选择检查元素,然后单击“网络”选项卡或使用内置的浏览器菜单来访问它们。您可能必须刷新页面并开始播放,然后才能在网络选项卡中播放视频。通常,它被归类为媒体,因此您可以过滤出每个引用媒体文件的请求。从那里开始,您将看到视频的链接,并能够将其复制。
重要的是要知道每个URL实际上都与客户端的IP相关联。这意味着您获得的链接不一定会在其他人的设备上工作。为了解决这个问题,您可以预加载页面,从中获取客户端的链接,然后获取源,并在Google云端硬盘源中搜索以
fmt_map_stream
开头的JSON数组。在那里,您将获得四个360p
,480p
,720p
和1080p
的转义链接。复制这些链接,并在您的视频标签中使用它们。请记住,此过程应在服务器端进行。
此外,我建议使用Google相册。 Google相册允许无限制的免费存储空间,前提是您允许相册压缩视频,以免它们耗尽您在Google云端硬盘上的配额。首先,请先上传任意大小的视频文件。然后,执行以下操作:
从服务器端获取下载链接。以下示例是一个C#示例,该示例从上述格式的任何链接中获取下载链接:
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云端硬盘的方法简单得多。