首页 文章

YouTube API - 使用播放列表查询获取所有视频的标记

提问于
浏览
1

我正在查询YouTube Channels 以检索播放列表元数据,如下所示:

https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2CcontentDetails&maxResults=5&playlistId={PLAYLIST_ID}&key={API_KEY}

此查询返回通道上所有视频的数组 . 该阵列中的每个对象包括为每个视频提供元数据的各种字段,但这些字段都不包括与视频关联的标签 . 我可以使用如下查询获取该数据:

https://www.googleapis.com/youtube/v3/videos?key={API_KEY}&fields=items(snippet(title,description,tags))&part=snippet&id={VIDEO_ID}

问题是现在我需要为第一个查询中返回的每个视频发出一个单独的查询 .

所以,我的问题是,有没有一种方法可以将这些标签作为初始JSON对象的一部分包含在第一个查询中?我可以添加任何请求将此数据包含在该响应中的参数吗?

谢谢你的帮助!

1 回答

  • 1

    Short answer: No.

    PlaylistItems: list documentation未显示从 playlistItems endpoints 获取视频标记的方法 . 唯一可用的部分是 idsnippetstatuscontentDetails ,这两个部分都不包含标签 .

    However!

    您无需为播放列表中的每个视频发出请求!文件说明:

    id参数指定正在检索的资源的YouTube视频ID的逗号分隔列表 . 在视频资源中,id属性指定视频的ID . (串)

    这意味着您可以为 videos endpoints 提供多个以逗号分隔的视频ID .

    例:

    GET https://www.googleapis.com/youtube/v3/videos?part=snippet&id=kOkQ4T5WO9E,a59gmGkq_pw,Io0fBr1XBUA&key={YOUR_API_KEY}
    

    总而言之,它会花费您两个请求来获取播放列表中所有视频的标记 . *

    *实际上,您可能需要提出两个以上的请求 . 如果我没记错的话,YouTube会根据请求将退回的项目限制为50 . 因此,如果播放列表包含超过50个视频,则必须使用pageToken parameter设置发出另一个请求 .

相关问题