我坚持我的应用程序开发:我正在尝试在youtube搜索列表中获取播放列表ID(我正在搜索播放列表)。我正在看youtube api网站,在测试网站上它带有播放列表ID。在我的应用程序上,我也这样做,但我没有得到ID,或者我没有在迭代代码的“项目”上看到它。
我知道目前正在搜索视频ID,但这不正确。到目前为止我已经尝试过了:
item.id
item.getId().getPlaylistId()
item.getId().playlistId
也完全是iniside项目。
我告诉你我的异步任务代码:
SearchListResponse searchResponse;
try {
YouTube.Search.List search = mYouTubeDataApi.search().list("id,snippet");
search.setKey(ApiKey.YOUTUBE_API_KEY);
search.setQ(mTitle);
search.setType("playlist");
search.setFields("items(id/kind,id/videoId,snippet/title,snippet/thumbnails/default/url)");
search.setMaxResults(YOUTUBE_PLAYLIST_MAX_RESULTS);
searchResponse = search.execute();
} catch (IOException e) {
e.printStackTrace();
return null;
}
if (searchResponse == null) {
Log.e(TAG, "Failed to get playlist");
return null;
}
ArrayList videoIds = new ArrayList();
for (SearchResult item : searchResponse.getItems()) {
//this is what i was talking about. My search result item
//is not showing me any playlist id
videoIds.add(item.getId().getVideoId());
}
答案 0 :(得分:0)
你是对的。获取播放列表列表的最佳方法是使用search.list
请求。
您必须为type=playlist
参数指定q
和视频标题。
Search:list
将为您提供与请求中指定的查询参数匹配的结果。您还可以将查询配置为仅检索特定类型的资源。
请注意,如果视频标题不够具体,可能无法提供您期望的播放列表。
https://www.googleapis.com/youtube/v3/search?part=snippet&q=VIDEO_TITLE_HERE&type=playlist&key=API_KEY_HERE
答案 1 :(得分:0)
我已经通过关注自己的代码来解决这个问题了。
收到的数据由字段设置:
search.setFields("items(id/kind,id/videoId,snippet/title,snippet/thumbnails/default/url)");
我在搜索时错过了id / playlistId,所以我添加了它:
search.setFields("items(id/kind,id/videoId,id/playlistId,snippet/title,snippet/thumbnails/default/url)");
现在我正在获取我的播放列表ID(还有很多我不需要的其他信息)。