如何在搜索上获取播放列表ID:列表(播放列表类型)

时间:2016-05-29 00:59:00

标签: android youtube youtube-api

我坚持我的应用程序开发:我正在尝试在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());
    }

2 个答案:

答案 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(还有很多我不需要的其他信息)。