如何从Google Drive获取可嵌入网站的原始视频播放链接
解决Google Drive视频无法直接嵌入
问题描述
我在Google Drive上传了一段视频,原本使用https://drive.google.com/uc?id=xxx应该能获取原始视频文件,但访问该链接时仅显示提示页面,需要获取可直接用于网站<video>标签的有效播放链接,示例标签如下:
<video src="__link__" controls width=560 height=315></video>
Java实现方案
可通过抓取“仍要下载”的提示页面,解析表单内的一次性有效参数来生成目标链接,有效链接格式为:https://drive.usercontent.google.com/download?export=download&id=[XXX]&uuid=[XXX]&authuser=0&confirm=t&at=[XXX]
具体步骤
- 请求提示页面:向
https://drive.google.com/uc?id=xxx发送GET请求,获取页面HTML内容 - 解析表单参数:从HTML中提取表单里的
uuid、at等一次性有效参数 - 拼接有效链接:将参数填入链接模板,生成可直接用于
<video>标签的src属性值
代码示例
import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import java.io.IOException; import java.util.Map; public class DriveVideoLinkGenerator { public static void main(String[] args) throws IOException { String fileId = "你的文件ID"; String baseUrl = "https://drive.google.com/uc?id=" + fileId; // 获取提示页面 Document doc = Jsoup.connect(baseUrl).get(); // 定位下载表单 Element form = doc.selectFirst("form#download-form"); if (form == null) { System.out.println("未找到下载表单,文件可能已公开可直接访问"); return; } // 提取表单参数 Map<String, String> formData = form.formData(); String uuid = formData.get("uuid"); String at = formData.get("at"); // 拼接有效播放链接 String validLink = String.format( "https://drive.usercontent.google.com/download?export=download&id=%s&uuid=%s&authuser=0&confirm=t&at=%s", fileId, uuid, at ); // 输出可直接使用的video标签代码 System.out.println("<video src=\"" + validLink + "\" controls width=560 height=315></video>"); } }
注意:需要引入Jsoup依赖(Maven坐标:
org.jsoup:jsoup:1.17.2)用于HTML解析
补充说明
- 生成的链接为一次性有效,若需长期嵌入使用,建议将视频设置为公开共享,并尝试使用
https://drive.google.com/uc?export=view&id=xxx格式链接,但该方式仍可能存在加载限制 - 大视频文件可能触发Google Drive流量限制,此类场景建议使用专业视频托管服务
内容的提问来源于stack exchange,提问作者Saneesh Oinam
相关产品推荐
相关产品推荐

