javascript - 使用 YouTube API 通过电子邮件或用户名获取用户 YouTube 播放列表

标签 javascript angularjs youtube-api

我正在使用最新的 YouTube API(我认为是 v3)。这是我从 https://developers.google.com/youtube/v3/docs/ 获取的文档.

我可以通过在 javascript 中进行此调用来获取用户的 YouTube 播放列表以及 channel ID:

function getPlaylists(channelId) {
    return $.get("https://www.googleapis.com/youtube/v3/playlists", { part: 'snippet', channelId: channelId, key: key });
}

当我拥有播放列表时,我可以获取每个播放列表的 PlaylistID 属性。使用 PlaylistID,我可以使用 javascript 代码获取播放列表的所有视频:

function getPlaylistVideos(playlistId) {
    return $.get('https://www.googleapis.com/youtube/v3/playlistItems', { part: 'snippet', playlistId: playlistId, key: key });
}

我真的不喜欢我必须让用户尝试找到他们的 ChannelId 来拉入他们的播放列表。我希望能够让用户只需传递他们的电子邮件或用户名即可执行此操作。这可能吗?是否可以不使用 YouTube 身份验证?如果没有,是否有任何有关使用 YouTube 身份验证服务的良好来源?

最佳答案

您可以通过三步来完成用户名的操作,当然电子邮件需要 Oauth2,所以这是不可能的。

第 1 步

使用 YouTube API v3 和资源 channel.list

使用此参数获取具有用户名的 channel 的 channel ID:

part: 'snippet'
forUsername: 'GoogleDevelopers'

你得到:

"items": [
  {
   "kind": "youtube#channel",
   "etag": "\"kiOs9cZLH2FUp6r6KJ8eyq_LIOk/lVXRA_GH5DhBajCt1cOeuB4TWbw\"",
   "id": "UC_x5XG1OV2P6uZZ5FSM9Ttw",

现在您获得了 channel 的 ID UC_x5XG1OV2P6uZZ5FSM9Ttw

第 2 步

使用 YouTube API v3 和资源 playlist.list

使用此参数获取 channel 的所有播放列表ID:

part: 'snippet'
channelId: 'UC_x5XG1OV2P6uZZ5FSM9Ttw'

你就得到了所有播放列表的id

"items": [
  {
   "kind": "youtube#playlist",
   "etag": "\"kiOs9cZLH2FUp6r6KJ8eyq_LIOk/sxN5XCGvIn_Rnsan74s_A_k16L8\"",
   "id": "PLOU2XLYxmsIKXYR_3iOWnI4h1Do_aa8dn",

现在第3步

使用 YouTube API v3 和资源 playlist.list

使用此参数将视频放入 channel 的 playlistID 中:

part: 'snippet'
playlistId: 'PLOU2XLYxmsIKXYR_3iOWnI4h1Do_aa8dn'

你就得到了所有播放列表的id

"items": [
  {
   "kind": "youtube#playlistItem",
   "etag": "\"kiOs9cZLH2FUp6r6KJ8eyq_LIOk/WFwMbOGG8nLHKF8tH1W41WNFJBk\"",
   "id": "UExPVTJYTFl4bXNJS1hZUl8zaU9Xbkk0aDFEb19hYThkbi41NkI0NEY2RDEwNTU3Q0M2",
   "snippet": {
    "publishedAt": "2016-04-18T17:33:55.000Z",
    "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
    "title": "#Love4Dev - What Magnus Hyttsten loves most about the power of mobile APIs",

您将获得该播放列表中的所有视频;

重要的部分是第一步,用户只需输入其 channel 的用户名,如我的示例:https://www.youtube.com/user/GoogleDevelopers

关于javascript - 使用 YouTube API 通过电子邮件或用户名获取用户 YouTube 播放列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37008885/

相关文章:

javascript - 如何以正确的方式在 Angular 应用程序中的 Controller 之间共享数据

php - 视频发布后,YouTube会通知URL吗?

youtube - 从YouTube收藏夹播放列表中批量删除视频

javascript - 如何将html内容解析为带格式的文本文件?

javascript - AngularJS 和跨源请求被阻止

javascript - Chrome Native Client进程模型

javascript - Gulp 正在恢复我的所有更改?

youtube-api - 利用浏览器缓存 youtube 缩略图

javascript - 为什么在 Node.js 中使用 async-await 时会丢失堆栈跟踪?

javascript - 网络中区域id的正则表达式