【问题标题】:How to get Playlist ID on search: list (playlist type)如何在搜索中获取播放列表 ID:列表(播放列表类型)
【发布时间】:2016-05-29 00:58:59
【问题描述】:

我的应用程序开发停滞不前:我正在尝试在 youtube 搜索列表中获取播放列表 ID(我正在搜索播放列表)。我正在查看 youtube api 站点和带有播放列表 ID 的测试站点。在我的应用程序上,我也这样做,但我没有得到 ID,或者我没有在迭代代码的“项目”上看到它。

我知道当前正在搜索视频 ID,但它不正确。到目前为止我已经尝试过:

item.id
item.getId().getPlaylistId()
item.getId().playlistId

也完全在项目内。

我给你我的异步任务代码:

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());
    }

【问题讨论】:

    标签: android youtube youtube-api


    【解决方案1】:

    你是对的。获取播放列表列表的最佳方式是使用search.list 请求。 您必须为 q 参数指定 type=playlist 和视频标题。

    Search:list 将为您提供与请求中指定的查询参数匹配的结果。您还可以将查询配置为仅检索特定类型的资源。

    请注意,如果视频的标题不够具体,这可能无法为您提供您期望的播放列表。

    https://www.googleapis.com/youtube/v3/search?part=snippet&q=VIDEO_TITLE_HERE&type=playlist&key=API_KEY_HERE
    

    【讨论】:

    • 嗨!我目前正在获取播放列表列表,但我无法检索搜索中每个 SearchResult 的播放列表 ID。如果我使用 type=video,我可以毫无问题地获取视频 ID 也许与此有关? YouTube.Search.List search = mYouTubeDataApi.search().list("id,snippet"); 还是这个?:search.setFields("items(id/kind,id/videoId,snippet/title,snippet/thumbnails/default/url)"); 谢谢你的回答!
    【解决方案2】:

    我已经通过关注我自己的代码弄明白了。

    接收的数据由字段设置:

    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(以及许多我不需要的其他信息)。

    【讨论】:

      猜你喜欢
      • 2014-11-15
      • 2015-11-21
      • 1970-01-01
      • 2013-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多