首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >YouTube API v3:获取给定用户名的所有通道和PlayLists

YouTube API v3:获取给定用户名的所有通道和PlayLists
EN

Stack Overflow用户
提问于 2016-08-13 22:58:56
回答 1查看 1.5K关注 0票数 1

如何使用YouTube JavaScript API v3,以便能够获取给定用户名的所有频道和播放列表,如JSON等?

我使用了以下参考资料

https://stackoverflow.com/a/18767785/799593似乎不再工作了。

==> Channels

下面是我的代码,调用通道端点.它基本上使用AngularJS执行HTTP操作,其中"id“是通过”ChannelID“参数传递的ChannelID。

代码语言:javascript
复制
var getUrl = 'https://www.googleapis.com/youtube/v3/channels';
this.get = function (apiKey, query) {
    var parameters = {
        kind: 'youtube#channel',
        part: 'contentDetails',
        id: query,
        maxResults: 3,
        key: apiKey
    }
    return $http({
        url: getUrl,
        method: 'GET',
        params: parameters
    })
};

这个查询基本上只能返回上传的视频和给定YouTube频道的喜欢视频的ID。相反,我正在寻找一个列表的所有渠道,为一个给定的用户。

我还尝试了以下几点:

代码语言:javascript
复制
this.getByUserName = function (apiKey, query) {
var parameters = {
    kind: 'youtube#channel',
    part: 'contentDetails',
    forUsername: query,
    maxResults: 5,
    key: apiKey
}
return $http({
    url: getUrl,
    method: 'GET',
    params: parameters
})

};

但是它似乎只返回“主通道”,换句话说,如果我查询forUsername="Google",我得到UCK8sQmJBp8GCxrOtXWBpyEA .因此,与我在下面的“思维图”中的解释相矛盾的是,正确的层次结构可能实际上只链接了每个用户帐户的一个频道,这样的频道可以有多个播放列表。但实际上,谷歌/YouTube的做法确实让人困惑和过度思考。

例如,如果用户通过"Google“,那么API将使用我们在https://www.youtube.com/user/Google/channels上看到的所有通道进行回复。

==> Playlists

这看起来相对直截了当,但API似乎基本上仅限于一个逗号分隔的YouTube播放列表in列表,但问题是如何在给定UserID的情况下将它们放在首位?

我很有兴趣获得相当于:/playlists的结果,但下面是我现在拥有的结果。

代码语言:javascript
复制
var getUrl = 'https://www.googleapis.com/youtube/v3/playlists';
this.get = function (apiKey, query) {
    var parameters = {
        kind: 'youtube#playlist',
        part: 'contentDetails',
        id: query,
        maxResults: 10,
        pageToken: '',
        key: apiKey
    }
    return $http({
        url: getUrl,
        method: 'GET',
        params: parameters
    })
};

在结束我的问题时,我会用YouTube层次结构的“思维图”和带链接的Google注释示例来结束我的问题。我不确定这是否是正确的表示,但我相信,如果我知道正确的层次结构,它可能会给我一个提示,说明如何使用YouTube JavaScript API v3为给定用户获取YouTube通道和PlayLists。

(全尺寸图像位于:http://i.imgur.com/GWoZvCE.png)

EN

回答 1

Stack Overflow用户

发布于 2019-08-14 18:17:35

我只在ReacJS中为播放列表编写了一段代码。希望这能给你一些想法。我在使用google。它为我工作。只需将我的通道id和api密钥替换为您的。

代码语言:javascript
复制
import React, { Component } from "react";

class App extends Component {
  constructor(props) {
    super(props);
    this.state = {
      items: [],
      isLoaded: false
    };
  }

  componentDidMount() {
    fetch(
      "https://www.googleapis.com/youtube/v3/playlists?part=snippet&channelId=<YOUR-CHANNEL-ID>&key=<YOUR-API-KEY>"
    )
      .then(res => res.json())
      .then(json => {
        this.setState({
          isLoaded: true,
          items: json.items
        });
      });
  }

  render() {
    var { isLoaded, items } = this.state;
    var i=0;
    if (!isLoaded) return <div>Loading...</div>;
    return (
      <div>
        <ul>
        {
          items.map(item => (
            <li key={item.id}>
              Playlist: {items[i++].snippet.title}
            </li>
          ))
        }
        </ul>
      </div>
    );
  }
}

export default App;

这是输出

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38937681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档