如何验证应用中已注册Google API的用户为YouTube视频所有者
验证YouTube视频所有者身份的实现方案
核心思路
通过YouTube Data API获取目标视频的所属频道ID,再获取当前授权用户的频道ID,对比两者是否一致即可完成验证,全程需在用户授权的前提下操作。
具体步骤
1. 配置OAuth权限与客户端
在Google Cloud Console中为你的Chrome扩展创建OAuth客户端ID(类型选择Chrome应用),并申请https://www.googleapis.com/auth/youtube.readonly权限——这是读取视频和用户频道信息的最小必要权限,避免过度授权引发用户疑虑。2. 引导用户完成授权
在Chrome扩展中使用chrome.identity.getAuthToken()接口获取用户的授权令牌,示例代码:chrome.identity.getAuthToken({interactive: true}, function(token) { if (chrome.runtime.lastError) { // 处理授权失败情况 console.error(chrome.runtime.lastError.message); return; } // 拿到token后用于后续API调用 useAuthToken(token); });3. 获取目标视频的所属频道ID
调用YouTube Data API的videos.list接口,传入视频ID和part=snippet参数,提取返回结果中的snippet.channelId:async function getVideoChannelId(token, videoId) { const response = await fetch(`https://www.googleapis.com/youtube/v3/videos?part=snippet&id=${videoId}&key=你的API密钥`, { headers: { Authorization: `Bearer ${token}` } }); const data = await response.json(); if (data.items.length === 0) { throw new Error("视频不存在"); } return data.items[0].snippet.channelId; }4. 获取当前用户的频道ID
调用YouTube Data API的channels.list接口,传入part=id和mine=true参数,获取当前授权用户的频道ID:async function getUserChannelId(token) { const response = await fetch(`https://www.googleapis.com/youtube/v3/channels?part=id&mine=true&key=你的API密钥`, { headers: { Authorization: `Bearer ${token}` } }); const data = await response.json(); if (data.items.length === 0) { throw new Error("用户未关联YouTube频道"); } return data.items[0].id; }5. 对比ID完成验证
将步骤3和步骤4获取的两个频道ID进行比对,若一致则证明当前用户是该视频的所有者:async function verifyVideoOwner(token, videoId) { try { const videoChannelId = await getVideoChannelId(token, videoId); const userChannelId = await getUserChannelId(token); return videoChannelId === userChannelId; } catch (error) { console.error("验证失败:", error); return false; } }
注意事项
- 确保你的API密钥已启用YouTube Data API服务,且在Google Cloud Console中配置了正确的Chrome扩展ID作为授权来源。
- 处理各种异常场景:用户拒绝授权、视频被删除/设为私有、用户无YouTube频道等,给用户明确的提示。
- 遵循Chrome扩展的权限规范,在
manifest.json中声明identity权限以及API调用的主机权限。
内容的提问来源于stack exchange,提问作者ostheperson
相关产品推荐
相关产品推荐

