2017-02-09 10 views
0

こんにちは、友人は、YouTubeのAPIを使用してすべての結果を取得しようとしています。ここでは、コード..ページトークンを使用して検索の2番目のページを取得できませんyoutube api search

<!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> 

ここでスクリプトコードが..です

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

アムpagetokensを使用してすべての結果をフェッチしようとしているが、すべての結果を取得することができません取得していますです同じ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を使用している場合今すぐベストソングプレイリスト

- OW - ロシア

  • 人気の右は今
  • 公式UKトップ40シングルチャート - 2017" 年2月4日
  • 重要な動画
  • 音楽は、2017ヒットこのリクエストでは、期待どおりの最初の3つを取得します。

    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を」、これはあなたがあなたの次の要求に供給する必要がある文字列のコードです次のページを得るか、この例では次の3つの結果を得る:

    { 
    "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年にヒット。

    この情報がお役に立てば幸いです。

  • 関連する問題