검색 api를 사용하고 nextpagetoken을 사용하여 결과를 매김합니다. 그러나이 방법으로 모든 결과를 검색 할 수는 없습니다. 약 455000 개의 결과 중에서 500 개의 결과 만 얻을 수 있습니다.youtube api v3 페이지 토큰
다음은 검색 결과를 가져 오기 위해 자바 코드입니다 :
는youtube = new YouTube.Builder(Auth.HTTP_TRANSPORT, Auth.JSON_FACTORY, new HttpRequestInitializer() {public void initialize(HttpRequest request) throws IOException {} }).setApplicationName("youtube-search").build();
YouTube.Search.List search = youtube.search().list("id,snippet");
String apiKey = properties.getProperty("youtube.apikey");
search.setKey(apiKey);
search.setType("video");
search.setMaxResults(50);
search.setQ(queryTerm);
boolean allResultsRead = false;
while (! allResultsRead){
SearchListResponse searchResponse = search.execute();
System.out.println("Printed " + searchResponse.getPageInfo().getResultsPerPage() + " out of " + searchResponse.getPageInfo().getTotalResults() + ". Current page token: " + search.getPageToken() + "Next page token: " + searchResponse.getNextPageToken() + ". Prev page token" + searchResponse.getPrevPageToken());
if (searchResponse.getNextPageToken() == null)
{
allResultsRead = true;
search = youtube.search().list("id,snippet");
search.setKey(apiKey);
search.setType("video");
search.setMaxResults(50);
}
else
{
search.setPageToken(searchResponse.getNextPageToken());
}}
출력은 다음 페이지 토큰이 null 있기 때문에 종료, while 루프를 통해
Printed 50 out of 455085. Current page token: null Next page token: CDIQAA. Prev page token null
Printed 50 out of 454983. Current page token: CDIQAA Next page token: CGQQAA. Prev page token CDIQAQ
Printed 50 out of 455081. Current page token: CGQQAA Next page token: CJYBEAA. Prev page token CGQQAQ
Printed 50 out of 454981. Current page token: CJYBEAA Next page token: CMgBEAA. Prev page token CJYBEAE
Printed 50 out of 455081. Current page token: CMgBEAA Next page token: CPoBEAA. Prev page token CMgBEAE
Printed 50 out of 454981. Current page token: CPoBEAA Next page token: CKwCEAA. Prev page token CPoBEAE
Printed 50 out of 455081. Current page token: CKwCEAA Next page token: CN4CEAA. Prev page token CKwCEAE
Printed 50 out of 454980. Current page token: CN4CEAA Next page token: CJADEAA. Prev page token CN4CEAE
Printed 50 out of 455081. Current page token: CJADEAA Next page token: CMIDEAA. Prev page token CJADEAE
Printed 50 out of 455081. Current page token: CMIDEAA Next page token: null. Prev page token CMIDEAE
10 후 반복이다.
저는 Yotube API를 처음 접했고 여기에서 잘못된 것을 잘 모릅니다. 두 가지 질문이 있습니다. 1. 모든 결과를 얻으려면 어떻게해야합니까? 2. 3 페이지의 이전 페이지 토큰이 2 페이지의 현재 토큰과 다른 이유는 무엇입니까?
도움이 될 것입니다. 감사!