如何从YouTube播放列表中获取视频ID?

时间:2017-01-24 12:01:02

标签: javascript node.js youtube google-api-nodejs-client

"googleapis": "^16.1.0"

我有一个播放列表,其中有两个视频。我怎样才能获得视频ID?

我试过了:

// Node.js
const google = require('googleapis');
const youtube = google.youtube('v3');
const secrets = require('./secrets.json');

const results = youtube.playlists.list({
  auth: secrets.web.api_key,
  part: 'id',
  id: 'PLvxLmGsmqdZc-GYVeLhS0N_6jfrzEleQm'
});

console.log(results);

代码执行后,我会收到:https://gist.github.com/SergeyBondarenko/ea6a2aad546ded32e4a9b3cf53228fef

并且只有播放列表ID:

// Node.js
> results.responseContent.body.items
[ { kind: 'youtube#playlist',
    etag: '"gMxXHe-zinKdE9lTnzKu8vjcmDI/cYPhPXIoWu4acW3Qux1D5WZ3WwE"',
    id: 'PLvxLmGsmqdZc-GYVeLhS0N_6jfrzEleQm' } ]

我在items对象中没有results属性:

// Node.js
> request.i
request.isPrototypeOf  
request.init   

据我所知,items属性必须包含结果,如下例所示:

 // Python
 results = youtube.playlists().list(
    part="snippet,localizations",
    id=playlist_id
  ).execute()

  playlist = results["items"][0]

https://developers.google.com/youtube/v3/docs/playlists/list

2 个答案:

答案 0 :(得分:0)

我使用了错误的方法来检索播放列表视频ID。使用的方法是playlistItems

// Node.js
const google = require('googleapis');
const youtube = google.youtube('v3');
const secrets = require('./secrets.json');

youtube.playlistItems.list({
  key: secrets.web.api_key,
  part: 'id,snippet',
  playlistId: 'PLvxLmGsmqdZc-GYVeLhS0N_6jfrzEleQm',
  maxResult: 10,
}, (err, results) => {
  console.log(err ? err.message : results.items[0].snippet);
});

结果:

{ publishedAt: '2017-01-21T13:16:09.000Z',
  channelId: 'UCSD9RekiljT4DzK_6VvYY6A',
  title: 'Monster (feat. Jay-Z, Nicki Minaj, Rick Ross, Bon Iver)',
  description: 'Oficial',
  thumbnails:
   { default:
      { url: 'https://i.ytimg.com/vi/EOpQdJ5F5TI/default.jpg',
        width: 120,
        height: 90 },
     medium:
      { url: 'https://i.ytimg.com/vi/EOpQdJ5F5TI/mqdefault.jpg',
        width: 320,
        height: 180 },
     high:
      { url: 'https://i.ytimg.com/vi/EOpQdJ5F5TI/hqdefault.jpg',
        width: 480,
        height: 360 },
     standard:
      { url: 'https://i.ytimg.com/vi/EOpQdJ5F5TI/sddefault.jpg',
        width: 640,
        height: 480 } },
  channelTitle: 'Sergey Bondarenko',
  playlistId: 'PLvxLmGsmqdZc-GYVeLhS0N_6jfrzEleQm',
  position: 0,
  resourceId: { kind: 'youtube#video', videoId: 'EOpQdJ5F5TI' } }

答案 1 :(得分:0)

使用Axios,您可以执行以下操作:

std::array

这将打印给定播放列表的所有videoId,直到位置10。