Youtube-api v3:是否可以按特定顺序获取视频?

emb*_*ole 3 android youtube-api

我正在尝试从 Android 应用程序上的 YouTube 视频中获取某些订单。我想搜索,例如:

Fight 1
Fight 2
Fight 3
Fight 4
Run Code Online (Sandbox Code Playgroud)

这是我的搜索列表:

YouTube.Search.List search = mYouTubeDataApi.search().list("id,snippet");

            search.setKey(ApiKey.YOUTUBE_API_KEY);
            search.setQ(mTitle + " " + mSearchQuery);

            search.setType("video");                
            search.setFields("items(id/kind,id/videoId,snippet/title,snippet/thumbnails/default/url)");
            search.setMaxResults(YOUTUBE_PLAYLIST_MAX_RESULTS);
            searchResponse = search.execute();
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已尝试添加到我的搜索列表:

search.setOrder("title");
Run Code Online (Sandbox Code Playgroud)

我也尝试以这种方式手动对项目进行排序

    List<Video> items = videoListResponse.getItems();
    Collections.sort(items, new Comparator<Video>() {
        @Override
        public int compare(Video video, Video t1) {
            return video.getSnippet().getTitle().compareToIgnoreCase(t1.getSnippet().getTitle());
        }
    });
    return new Pair(searchResponse.getNextPageToken(), items);
Run Code Online (Sandbox Code Playgroud)

但我仍然没有得到我预期的结果,而且我的排序不好(即:战斗1,战斗10,战斗11,战斗2,等等......)

提前致谢!

Tey*_*yam 5

您可以使用 HTTP 请求来使用搜索:列表:

\n\n
GET https://www.googleapis.com/youtube/v3/search\n
Run Code Online (Sandbox Code Playgroud)\n\n

将可选参数order添加到查询中。

\n\n

正如文档中所讨论的,

\n\n
\n

order参数指定将用于在 API 响应中对资源进行排序的方法。

\n
\n\n

可接受的值为:

\n\n
    \n
  • date \xe2\x80\x93 根据创建日期按时间倒序排序。
  • \n
  • 评级\xe2\x80\x93 从最高评级到最低评级排序。
  • \n
  • 相关性\xe2\x80\x93 根据与搜索查询的相关性排序。这是该参数的默认值。
  • \n
  • title \xe2\x80\x93 按标题字母顺序排序。
  • \n
  • videoCount \xe2\x80\x93 频道按上传视频数量的降序排列。
  • \n
  • viewCount \xe2\x80\x93 从最高到最低观看次数排序。对于直播,视频在直播期间按并发观看者数量排序。
  • \n
\n