javascript
  • search
  • youtube-api
  • playlists
  • 2017-02-09 139 views 0 likes 
    0

    嗨,朋友正在嘗試使用youtube api v3搜索獲取所有結果。這裏是代碼..無法獲取使用頁面令牌的第二頁搜索令牌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> 
    

    這裏是腳本代碼..

    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個結果repeatedly..How可以得到使用搜索

    回答

    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&

    下面是結果

    • 流行音樂視頻
    • 熱門ñ嗷嗷 - 俄羅斯
    • 熱門眼下
    • 英國官方40強單曲榜 - 2017" 年2月4日
    • 重要的視頻
    • 熱門音樂2017年 - 最好的歌曲播放列表

    現在,如果我們使用maxResults: 3在這個請求中,我們得到了預期的前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」,這是你需要在你的下一個請求供應串碼拿到下一頁,或者在這個例子中得到接下來的三個結果:

    • 英國官方40強選拔榜 - 第4樓月‧日2017" 年
    • 重要的視頻
    • 熱門音樂2017年 - 最好的歌曲播放列表

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.search.list?part=snippet&maxResults=3&order=viewCount&pageToken=CAMQAA&type=playlist&_h=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獲得下一個頁面結果。

    希望這些信息對您有所幫助。

    相關問題