2017-02-09 9 views
0

안녕하세요, 친구들이 youtube api v3 search를 사용하여 모든 결과를 가져 오려고합니다. 여기에 코드 ..페이지 토큰을 사용하여 검색의 두 번째 페이지를 얻을 수 없습니다. youtube api 검색

<!doctype html> 
    <html> 
    <head> 
     <title>Search</title> 
    </head> 
    <body> 
    <div id="buttons"> 
     <label> <input id="query" value='cats' type="text"/><button id="search-button" onclick="search()">Search</button></label> 
</div> 
<div id="search-container"> 
</div> 
    <button id="prev-button" class="paging-button" onclick="previousPage(document.getElementById('query').value);">Previous Page</button> 
    <button id="next-button" class="paging-button" onclick="nextPage(document.getElementById('query').value);">Next Page</button><br><br> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
<script src="search.js"></script> 
<script src="https://apis.google.com/js/client.js?onload=googleApiClientReady"></script> 
</body> 
여기

스크립트 코드입니다 .. pagetokens를 사용하여 모든 결과를 가져올하지만, 얻을 수 없습니다 생각하려고

var search,nextPageToken, prevPageToken; 

function search(pageToken) { 
    var q = $('#query').val(); 
    gapi.client.load('youtube', 'v3', function() { 
    gapi.client.setApiKey('Api-key'); 
    var request = gapi.client.youtube.search.list({ 
    q: q, 
    part: 'snippet', 
    type: 'playlist', 
    maxResults: 50, 
    order: 'viewCount' 
    }); 
     if (pageToken) { 
     request.pageToken = pageToken; 
    } 
    request.execute(function(response) { 
     nextPageToken = response.result.nextPageToken; 
    var nextVis = nextPageToken ? 'visible' : 'hidden'; 
    $('#next-button').css('visibility', nextVis); 
    prevPageToken = response.result.prevPageToken 
    var prevVis = prevPageToken ? 'visible' : 'hidden'; 
    $('#prev-button').css('visibility', prevVis); 
     var playlistItems = response.result.items; 
     if (playlistItems) { 
     $.each(playlistItems, function(index, item) { 
     displayResult(item.id); 
     }); 
     } else { 
     $('#search-container').html('Sorry you have no uploaded videos'); 
     } 
     }); 
    }); 
    } 
    function displayResult(videoSnippet) { 
     var title = videoSnippet.playlistId; 
     $('#search-container').append(title + '<br>'); 
     } 


    function nextPage(val) {; 
     var search_val=val; 
     search(nextPageToken,search_val); 
     } 

    // Retrieve the previous page of videos in the playlist. 
    function previousPage(listid) { 
     var search=listid; 
     search(prevPageToken,search); 
    } 

오전 모든 결과를 얻고 있는가 동일한 50 개의 결과가 반복됩니다. 검색을 사용하여 정확한 결과를 얻는 방법은 무엇입니까

답변

1

pageToken 매개 변수를 사용하려면 여기에 입력 한 문자열 코드를 입력해야합니다 귀하의 첫 번째 결과 집합.

예를 들어, 나는이 매개 변수 Search: list를 사용 : 여기

- part: snippet 
- maxResults: 6 
- order: viewCount 
- type: playlist 

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.search.list?part=snippet&maxResults=6&order=viewCount&type=playlist&_h=4&

이 결과

  • 인기 뮤직 비디오
  • 인기 오른쪽 N 있습니다 우리가 maxResults: 3를 사용하는 경우 지금 최고의 노래 재생 목록

- 흐름 - 러시아

  • 인기 오른쪽 지금
  • 공식 UK 톱 40 싱글 차트 - 2017년 2월 4일 "
  • 중요한 비디오
  • 음악은 2017 조회수 이 요청에서 예상대로 처음 세 개를 얻습니다.

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.search.list?part=snippet&maxResults=3&order=viewCount&type=playlist&_h=2&

    { 
    "kind": "youtube#searchListResponse", 
    "etag": "\"uQc-MPTsstrHkQcRXL3IWLmeNsM/ytSWQ-kg4VSK7qMICh0IzyEBj9k\"", 
    "nextPageToken": "CAMQAA", 
    "regionCode": "PH", 
    "pageInfo": { 
        "totalResults": 1000000, 
        "resultsPerPage": 3 
    }, 
    "items": [ 
        { 
        "kind": "youtube#searchResult", 
        "etag": "\"uQc-MPTsstrHkQcRXL3IWLmeNsM/WsiG1obELyLKGKhqpeHgqP3Zr0g\"", 
        "id": { 
        "kind": "youtube#playlist", 
        "playlistId": "PLFgquLnL59alCl_2TQvOiD5Vgm1hCaGSI" 
        }, 
        "snippet": { 
        "publishedAt": "2013-11-20T16:21:03.000Z", 
        "channelId": "UC-9-kyTW8ZkZNDHQJ6FgpwQ", 
        "title": "Popular Music Videos", 
        "description": "", 
        "thumbnails": { 
        "default": { 
         "url": , 
         "width": 120, 
         "height": 90 
        }, 
        "medium": { 
         "url": ", 
         "width": 320, 
         "height": 180 
        }, 
        "high": { 
         "url": "", 
         "width": 480, 
         "height": 360 
        } 
        }, 
        "channelTitle": "Music", 
        "liveBroadcastContent": "none" 
        } 
        }, 
        { 
        "kind": "youtube#searchResult", 
        "etag": "\"uQc-MPTsstrHkQcRXL3IWLmeNsM/HSVXUxTS3sWhu_EXXqL19b-n3VE\"", 
        "id": { 
        "kind": "youtube#playlist", 
        "playlistId": "PLgMaGEI-ZiiZ0ZvUtduoDRVXcU5ELjPcI" 
        }, 
        "snippet": { 
        "publishedAt": "2014-01-13T16:24:21.000Z", 
        "channelId": "UCtxxJi5P0rk6rff3_dCfQVw", 
        "title": "Popular Right Now - Russia", 
        "description": "", 
        "thumbnails": { 
        "default": { 
         "url": "", 
         "width": 120, 
         "height": 90 
        }, 
        "medium": { 
         "url": "", 
         "width": 320, 
         "height": 180 
        }, 
        "high": { 
         "url": "", 
         "width": 480, 
         "height": 360 
        } 
        }, 
        "channelTitle": "Popular on YouTube - Russia", 
        "liveBroadcastContent": "none" 
        } 
        }, 
        { 
        "kind": "youtube#searchResult", 
        "etag": "\"uQc-MPTsstrHkQcRXL3IWLmeNsM/smJq1QWQX4SzucjteOJ91pLe96Y\"", 
        "id": { 
        "kind": "youtube#playlist", 
        "playlistId": "PLrEnWoR732-BHrPp_Pm8_VleD68f9s14-" 
        }, 
        "snippet": { 
        "publishedAt": "2014-01-03T17:55:03.000Z", 
        "channelId": "UCF0pVplsI8R5kcAqgtoRqoA", 
        "title": "Popular Right Now", 
        "description": "", 
        "thumbnails": { 
        "default": { 
         "url": "", 
         "width": 120, 
         "height": 90 
        }, 
        "medium": { 
         "url": "", 
         "width": 320, 
         "height": 180 
        }, 
        "high": { 
         "url": "", 
         "width": 480, 
         "height": 360 
        } 
        }, 
        "channelTitle": "Popular on YouTube", 
        "liveBroadcastContent": "none" 
        } 
        } 
    ] 
    } 
    
    당신은 위의 결과 매개 변수의 'nextPageToken'에서 알 수

    : "CAMQAA는"이것은 당신이 당신의 다음 요청에 제공해야 문자열 코드입니다 다음 페이지를 얻거나이 예에서 다음 세 가지 결과를 얻으십시오.

    { 
    "kind": "youtube#searchListResponse", 
    "etag": "\"uQc-MPTsstrHkQcRXL3IWLmeNsM/MUqIBto7KPYKqDBGqUboyp81FPs\"", 
    "nextPageToken": "CAYQAA", 
    "prevPageToken": "CAMQAQ", 
    "regionCode": "PH", 
    "pageInfo": { 
        "totalResults": 1000000, 
        "resultsPerPage": 3 
    }, 
    "items": [ 
        { 
        "kind": "youtube#searchResult", 
        "etag": "\"uQc-MPTsstrHkQcRXL3IWLmeNsM/yRymKW4Nn45KqMRXNQAMKnKeUB8\"", 
        "id": { 
        "kind": "youtube#playlist", 
        "playlistId": "PL2vrmw2gup2Jre1MK2FL72rQkzbQzFnFM" 
        }, 
        "snippet": { 
        "publishedAt": "2015-01-04T15:21:08.000Z", 
        "channelId": "UCchuF2Q0QhYzeUShQUm1yzQ", 
        "title": "The Official UK Top 40 Singles Chart - 4th February 2017", 
        "description": "The Official UK Top 40 Singles Chart [Update Every Week]", 
        "thumbnails": { 
        "default": { 
         "url": "", 
         "width": 120, 
         "height": 90 
        }, 
        "medium": { 
         "url": "", 
         "width": 320, 
         "height": 180 
        }, 
        "high": { 
         "url": "", 
         "width": 480, 
         "height": 360 
        } 
        }, 
        "channelTitle": "MUSIC CHARTS", 
        "liveBroadcastContent": "none" 
        } 
        }, 
        { 
        "kind": "youtube#searchResult", 
        "etag": "\"uQc-MPTsstrHkQcRXL3IWLmeNsM/JCiR47eVFaF_o19Ax9V5_K2_Ux8\"", 
        "id": { 
        "kind": "youtube#playlist", 
        "playlistId": "PL7XlqX4npddfrdpMCxBnNZXg2GFll7t5y" 
        }, 
        "snippet": { 
        "publishedAt": "2015-12-30T03:21:42.000Z", 
        "channelId": "UCZj9kF7Wu2IE_-DzbQZwCEw", 
        "title": "important videos", 
        "description": "", 
        "thumbnails": { 
        "default": { 
         "url": "", 
         "width": 120, 
         "height": 90 
        }, 
        "medium": { 
         "url": "", 
         "width": 320, 
         "height": 180 
        }, 
        "high": { 
         "url": "", 
         "width": 480, 
         "height": 360 
        } 
        }, 
        "channelTitle": "eljolto", 
        "liveBroadcastContent": "none" 
        } 
        }, 
        { 
        "kind": "youtube#searchResult", 
        "etag": "\"uQc-MPTsstrHkQcRXL3IWLmeNsM/BBQhDUu22HGejcoP1QvArM4001U\"", 
        "id": { 
        "kind": "youtube#playlist", 
        "playlistId": "PLw-VjHDlEOgvtnnnqWlTqByAtC7tXBg6D" 
        }, 
        "snippet": { 
        "publishedAt": "2015-06-07T17:54:39.000Z", 
        "channelId": "UCo7i93EtJhQub3SDKrtIAPA", 
        "title": "Music Hits 2017 - Best Songs Playlist", 
        "description": "Follow this playlist on Spotify: https:xxx/DZ8tw6 Follow this playlist on Deezer: https:xxxxJmKIaH \"Music can change the world because it can change ...", 
        "thumbnails": { 
        "default": { 
         "url": , 
         "width": 120, 
         "height": 90 
        }, 
        "medium": { 
         "url": "", 
         "width": 320, 
         "height": 180 
        }, 
        "high": { 
         "url": "", 
         "width": 480, 
         "height": 360 
        } 
        }, 
        "channelTitle": "#RedMusic: HotMusicCharts", 
        "liveBroadcastContent": "none" 
        } 
        } 
    ] 
    } 
    

    그런 다음 다음 페이지의 결과를 얻기 위해 다시 "nextPageToken": string를 사용 - ebruary 2017 "

  • 중요한 비디오
  • 음악은 2017 안타.

    희망 사항이 정보는 도움이됩니다.