使用YouTube API检索含旧域名视频遇不符结果,求排查
问题原因与解决办法
为什么会出现描述不含旧域名的结果?
YouTube Data API的search.list接口中,q参数的搜索范围不只是视频描述,它会同时匹配视频的标题、标签、自动生成的字幕,甚至是YouTube基于视频内容分析出的关键词。所以哪怕视频描述里没出现旧域名,只要标题、标签里有,或者视频内容提到过该域名,都会被检索返回。
正确的处理步骤
要精准筛选出描述中包含旧域名的视频,需要分两步操作:
- 第一步:用
search.list(携带channelId和q=旧域名参数)获取频道内相关视频的初步列表,注意处理分页的nextPageToken,遍历所有搜索结果。 - 第二步:对每个视频ID,调用
videos.list接口,请求part=snippet字段,提取返回结果中的snippet.description,自行判断是否包含旧域名,只保留符合条件的视频。
更稳妥的替代方案
如果频道内视频数量不算特别多,直接遍历频道所有上传视频来筛选会更准确:
- 调用
channels.list接口,传入目标频道ID,请求part=contentDetails,获取contentDetails.relatedPlaylists.uploads(频道默认上传列表的ID)。 - 调用
playlistItems.list接口,传入上述上传列表ID,请求part=snippet,遍历所有视频的snippet.description,筛选包含旧域名的视频。
内容的提问来源于stack exchange,提问作者Juliano de Miranda
相关产品推荐
相关产品推荐

