如何检索我的YouTube频道播放列表?

时间:2017-05-08 03:12:34

标签: javascript youtube youtube-javascript-api youtube-data-api

我感到困惑。我能说的最好,我跟着这些例子来写信。也许我错过了一个参数,但我无法找到它。

var request = gapi.client.youtube.channels.list({
  id: '<myId>',
  part: 'contentDetails'
});
request.execute(function(response) {
  console.log(response);
});

控制台响应没有项目,但我有3个播放列表作为公开。

  

[Log] Object(learndataapi.html,第68行)

     

etag:&#34; \&#34; m2yskBQFythfE4irbTIeOgYYfBU / Rk41fm-2TD0VG1yv0-bkUvcBi9s \&#34;&#34;

     

项目:[](0)

     

kind:&#34; youtube#channelListResponse&#34;

     

pageInfo:{totalResults:0,resultsPerPage:0}

     

结果:{kind:&#34; youtube#channelListResponse&#34;,etag:&#34; \&#34; m2yskBQFythfE4irbTIeOgYYfBU / Rk41fm-2TD0VG1yv0-bkUvcBi9s \&#34;&#34;,pageInfo:{ totalResults:0,resultsPerPage:0},items:[]}

     

对象原型

任何线索?

2 个答案:

答案 0 :(得分:2)

尝试此查询:

https://www.googleapis.com/youtube/v3/search?key={your_key_here}&channelId={channel_id_here}&part=snippet,id&order=date&maxResults=30

点击此处了解详情:https://developers.google.com/youtube/v3/

更新:尝试以下步骤:

  1. 使用查询

    https://www.googleapis.com/youtube/v3/channels?id={channel Id}key={API key}&part=contentDetails
    
  2. 使用此&#34;上传&#34;用于查询PlaylistItems以获取以下视频列表的ID:

    https://www.googleapis.com/youtube/v3/playlistItems?playlistId={"uploads" Id}&key={API key}&part=snippet&maxResults=50 
    
  3. NEW UPDATE

    对于PlayList,请执行以下操作:

    function httpGet(theUrl)
    {
       var xmlHttp = new XMLHttpRequest();
       xmlHttp.open( "GET", theUrl, false ); // false for synchronous request
       xmlHttp.send( null );
       return xmlHttp.responseText;
    }
    
    var response = httpGet("https://content.googleapis.com/youtube/v3/playlists?channelId=UCCTVrRB5KpIiK6V2GGVsR1Q&maxResults=50&part=snippet&key=REPLACE-WITH-YOUR-API-KEY");
    
    console.log(response);
    

    因此,在此代码中,您只需要添加要检索播放列表的任何频道ID,在这种情况下,我会从具有此ID的频道中检索:UCCTVrRB5KpIiK6V2GGVsR1Q如果您不知道如何要获取频道ID,只需检查所需频道的页面来源并搜索:data-channel-external-id并使用channelId参数值。

    您需要的另一件事是API KEY,请确保您启用了Youtube API数据并使用API​​ KEY作为关键参数。

    如果您发送http请求,您将收到最多50个播放列表的详细信息回复,您也可以访问其ID,例如id:PLAC325451207E3105

答案 1 :(得分:1)

好吧,终于来了!我经历过很多选择,我不知道为什么以前不是这么简单。猜猜我过度阅读了什么。感谢Emad给了我XMLHttpRequest,我可以从中构建gapi请求。

  gapi.client.setApiKey(
    apiKey
  );

  gapi.client.load('youtube', 'v3').then(function (){
    gapi.client.youtube.playlists.list ({
      channelId: '<channelId>',
      maxResults: 50,
      part: 'snippet'
    }).then (function(response){
      console.log(response.result);
      },function(reason){
        console.log(reason);
      });
  });

给予回应。结果:

[Log] Object (learndataapi.html, line 45)
      etag: "\"m2yskBQFythfE4irbTIeOgYYfBU/Ax2NdOn2dk1o3kSplGj29Msov8Q\""
      items: Array (2)
      0 Object
         etag: "\"m2yskBQFythfE4irbTIeOgYYfBU/qQMRAPjZkOKU3LcNUxjcSiBXu8k\""
         id: "<playListId>"
         kind: "youtube#playlist"
         snippet: Object
           channelId: "<channelId>"
           channelTitle: "<channelTitle>"
           description: "<channelDescription>"
           localized: {title: "New playlist 2 with 2 videos", description: "This is new playlist 2 with 2 videos"}
           publishedAt: "2017-05-08T22:47:16.000Z"
           thumbnails: {default: {url: "https://i.ytimg.com/vi/GsNawgbVt18/default.jpg", width: 120, height: 90}, medium: {url: "https://i.ytimg.com/vi/GsNawgbVt18/mqdefault.jpg", width: 320, height: 180}, high: {url: "https://i.ytimg.com/vi/GsNawgbVt18/hqdefault.jpg", width: 480, height: 360}}
           title: "New playlist 2 with 2 videos"

...

有一点需要注意:播放列表总是以“已发布日期”下降的形式返回,因此最新的出版物始终是首先......如果有人关心的话。