YouTube Search API调用的配额消耗疑问
YouTube Search API调用的配额消耗疑问
你好呀!我来帮你搞清楚这个YouTube API配额的问题~
首先可以明确地告诉你:你没有操作错误,这种情况是完全符合YouTube Data API的配额规则的!
YouTube的API配额是按操作类型来计算的,不是按返回的结果数量算的。你现在调用的是search.list接口(也就是你代码里的searchYoutubeVideos方法),官方对这个操作的配额成本就是固定的100单位/次——不管你设置maxResults是3条还是上限50条,只要发起一次这个接口的请求,就会消耗100配额。
你提到的文档里的“search”,指的就是这个search.list操作,和你用q参数传递搜索关键词的行为是对应的。简单说,只要是用关键词做全局搜索的场景,调用这个接口就得接受100配额一次的消耗。
如果想节省配额,这里给你个小建议:如果你的需求不是全局关键词搜索,而是能拿到特定频道ID、播放列表ID这类精准信息,可以换成videos.list或者playlistItems.list这类接口,它们的配额消耗要低得多(比如videos.list每次只消耗1单位)。但如果必须要用关键词做模糊搜索,那search.list是唯一的选择,配额消耗就是100一次啦。
看你贴的这段Retrofit接口代码:
interface YoutubeApi { const val BASE_URL = "https://youtube.googleapis.com/" @GET("youtube/v3/search?part=snippet&maxResults=3") suspend fun searchYoutubeVideos( @Query("q") searchQuery : String, @Query("key") apiKey : String ) : NetworkResponse<YoutubeSearchResultModel,String> }
你的写法是完全正确的,配额消耗高就是这个接口本身的特性,和你请求的结果数量无关哦。
备注:内容来源于stack exchange,提问作者Alon Shlider
相关产品推荐
相关产品推荐

