Youtube搜索:列表获取PageInfo和nextPageToken null
我正在尝试使用关键字从YouTube获取video。 我正在使用YouTube API Java库。 我可以成功获得前50条记录,但要获取下一条记录,需要设置nextPageToken 。 但我得到nextPageToken null
。 以下是我的代码。
YouTube.Search.List search = youtube.search().list("id,snippet"); search.setOauthToken(credential.getAccessToken()); search.setMaxResults(50L); search.setQ(keywords); // keywords is string type and input by user. search.setType("video"); search.setFields("items(id/kind,id/videoId,snippet/title,snippet/thumbnails/default/url)"); VideoList returnList = new VideoList(); do { search.setKey("MYKEY"); SearchListResponse searchResponse = search.execute(); // This get 50 items proper. List searchResultList = searchResponse.getItems(); // Why PageInfo is null? PageInfo pageInfo = searchResponse.getPageInfo(); // int totalResults = pageInfo.getTotalResults(); // int pageSize = pageInfo.getResultsPerPage(); if(searchResponse != null){ // i use searchResultList and update my database for search. .... .... // PageToken also null. String pageToken = searchResponse.getNextPageToken(); search.setPageToken(pageToken); } else{ break; } } while (true); }catch(Exception ex){ ex.printStackTrace(); }
由于您没有提及nextpagetoken或pageinfo字段,因此您将获得null,当您明确设置字段时,搜索结果集会受到限制。
search.setFields("items(kind,id/kind,id/videoId,snippet/title,snippet/thumbnails/default/url),nextPageToken,pageInfo,prevPageToken"); System.out.println("PAGE INFO: " +response.getPageInfo()); System.out.println("next page token :" +response.getNextPageToken()); System.out.println("prev page token:"+ response.getPrevPageToken());
输出:输入搜索词
扑克脸
PAGE INFO:{“resultsPerPage”:2,“totalResults”:667891}
下一页令牌:CAIQAA
prev page token:null