iOS平台如何利用YouTube API获取相关/后续推荐视频?
在iOS上通过YouTube API获取目标视频的相关/后续推荐视频
刚巧之前在iOS项目里实现过类似的需求,用YouTube Data API v3就能轻松搞定,给你一步步拆解具体怎么做:
1. 前期准备
- 先去Google Cloud Console启用YouTube Data API v3,并生成一个有效的API Key(建议给这个Key绑定iOS应用的Bundle ID,避免被滥用)
- 在你的iOS项目里集成官方客户端库:如果用CocoaPods,直接在Podfile里添加
pod 'GoogleAPIClientForREST/YouTube',然后执行pod install完成集成
2. 核心API调用逻辑
获取相关/后续推荐视频的核心是调用search.list接口,关键参数要设置对:
part: 至少传snippet,这样能拿到视频标题、缩略图、发布者等基础信息relatedToVideoId: 填入你已有的目标视频IDtype: 固定设为video,过滤掉频道、播放列表等非视频结果maxResults: 可选参数,控制返回的推荐视频数量,最多支持50个
Swift代码示例
import GoogleAPIClientForREST import GTMSessionFetcherCore // 初始化YouTube服务实例 private let youtubeService = GTLRYouTubeService() func fetchRelatedVideos(targetVideoId: String) { // 配置API Key youtubeService.apiKey = "你的Google API Key" // 构建查询请求 let query = GTLRYouTubeQuery_SearchList.query(withPart: "snippet") query.relatedToVideoId = targetVideoId query.type = "video" query.maxResults = 20 // 按需调整返回数量 // 发送异步请求 youtubeService.executeQuery(query) { [weak self] ticket, response, error in guard let self = self else { return } if let error = error { print("获取推荐视频失败: \(error.localizedDescription)") return } // 解析返回结果 guard let searchResponse = response as? GTLRYouTube_SearchListResponse, let relatedVideos = searchResponse.items else { print("未获取到相关视频") return } // 遍历处理每个推荐视频 for video in relatedVideos { guard let videoId = video.id?.videoId, let title = video.snippet?.title, let thumbnailUrl = video.snippet?.thumbnails?.medium?.url else { continue } // 这里可以把视频数据转成你的自定义模型,用于UI展示 print("推荐视频ID: \(videoId) | 标题: \(title) | 缩略图URL: \(thumbnailUrl)") } } }
3. 关键注意事项
- API配额限制:
search.list每次调用会消耗100个单位的API配额,YouTube Data API v3默认的每日配额是10000单位,所以要注意控制请求频率,避免超出配额导致请求失败 - 后续推荐的特殊性:YouTube播放页的“后续视频”本质上也是基于当前视频的相关推荐,用
relatedToVideoId参数返回的结果已经足够贴近官方推荐逻辑;如果需要更精准的后续内容,也可以结合video.list接口获取视频的contentDetails补充信息,但核心逻辑不变 - 权限与配置:确保你的API Key没有被限制访问YouTube Data API,并且Bundle ID绑定正确(如果设置了的话)
内容的提问来源于stack exchange,提问作者user6333215
相关产品推荐
相关产品推荐

