特定频道Youtube Data API无视频数据但Reporting API有数据的问题
问题:YouTube Data API无法返回特定频道视频数据,但Reporting API存在对应数据
问题详情
- 调用YouTube Data API(如
Video.list、PlaylistItems.list)时,始终返回空结果,响应示例:
{ "kind": "youtube#videoListResponse", "etag": "YIUPVpqNjppyCWOZfL-19bLb7uk", "items": [], "pageInfo": { "totalResults": 0, "resultsPerPage": 0 } }
- 但通过YouTube Reporting API的Combined A2和Basic A2报告,可查询到该频道的视频统计数据,示例如下:
date,channel_id,video_id,live_or_on_demand,subscribed_status,country_code,views,comments,likes,dislikes,shares,watch_time_minutes,average_view_duration_seconds,average_view_duration_percentage,annotation_impressions,annotation_clickable_impressions,annotation_clicks,annotation_click_through_rate,annotation_closable_impressions,annotation_closes,annotation_close_rate,card_teaser_impressions,card_teaser_clicks,card_teaser_click_rate,card_impressions,card_clicks,card_click_rate,subscribers_gained,subscribers_lost,videos_added_to_playlists,videos_removed_from_playlists,red_views,red_watch_time_minutes 20221018,CHANNEL_ID,VIDEO_ID,on_demand,not_subscribed,FR,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- Data API调用参数说明:
- 指定
parts参数为snippet,contentDetails,statistics,id,topicDetails,调整任意parts参数结果均为空 - 涉及ID:
- Channel ID:
UCs5DLbzGZJ559lKPP2pEWCw - Playlist ID:
UUs5DLbzGZJ559lKPP2pEWCw
- Channel ID:
- 指定
- 已尝试使用第三方令牌、频道自身令牌调用,均无效果;预期
PlaylistItems.list接口可列出该频道视频
排查方向与解决方案
1. 视频隐私权限限制
Reporting API会统计频道所有视频(包括未公开、私有、受限视频),但Data API默认仅返回公开可访问内容:
- 若视频为私有:必须使用频道所有者的OAuth 2.0令牌,且令牌需包含
https://www.googleapis.com/auth/youtube.readonly或https://www.googleapis.com/auth/youtube权限 - 若视频为未公开:需使用所有者令牌,未公开视频不会出现在无权限的公共请求中
2. 视频已删除但Reporting数据未同步
直接访问视频ID对应的YouTube页面(https://www.youtube.com/watch?v=VIDEO_ID),确认视频是否仍存在。Reporting API会保留历史统计数据,即使视频已被删除。
3. 播放列表参数验证
确认使用的Playlist ID为频道默认上传列表(格式为UU开头,对应Channel ID的UC前缀替换为UU),你提供的UUs5DLbzGZJ559lKPP2pEWCw格式正确。可调用Playlists.list接口获取该播放列表详情,确认其是否为频道上传列表。
4. API请求参数完整性
调用PlaylistItems.list时,需确保参数完整:
part=snippet&playlistId=UUs5DLbzGZJ559lKPP2pEWCw&maxResults=50
默认maxResults为5,若视频数量较多需处理分页;近期上传的视频可能存在Data API缓存延迟,可等待数小时后重试。
5. 频道/视频API访问限制
若频道违反YouTube政策或视频存在版权限制,可能导致Data API无法返回数据,但Reporting API仍保留历史统计。可查看Google Cloud Console的API错误日志,确认是否存在403(权限受限)、404(资源不存在)等错误码。
验证步骤
- 使用频道所有者OAuth令牌,调用
Videos.list接口直接传入Reporting API中的VIDEO_ID,检查是否返回数据 - 登录YouTube后台,查看目标视频的隐私状态
- 检查
PlaylistItems.list请求参数是否完整,尝试增大maxResults值 - 查看Google Cloud Console的API请求日志,排查具体错误原因
内容的提问来源于stack exchange,提问作者Zugruul
相关产品推荐
相关产品推荐

