gpt4 book ai didi

javascript - YouTube API v3 : Get all Channels and PlayLists for given User-name

转载 作者:行者123 更新时间:2023-11-28 05:40:51 24 4
gpt4 key购买 nike

如何使用 YouTube JavaScript API v3 以便获取给定用户名的所有 channel 以及所有播放列表(JSON 等)?

我使用了以下引用

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

<强> ==> Channels

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

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 channel 的已上传视频和喜欢的视频的 ID。相反,我希望获取给定用户的所有 channel 的列表。

我还尝试了以下操作:

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
})

};

但它似乎只返回“主 channel ”,换句话说,如果我使用 forUsername="Google"查询,我会得到 UCK8sQmJBp8GCxrOtXWBpyEA ...因此,与我在下面的“思维导图”中的解释相矛盾,正确的层次结构实际上可能只为每个用户帐户链接一个 channel ,并且此类 channel 可以有多个播放列表。但 Google/YouTube 的这种做法实际上看起来确实令人困惑且过度思考。

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

<强> ==> Playlists

这看起来相对简单,但 API 基本上似乎仅限于以逗号分隔的 YouTube 播放列表 ID 列表,但问题是在给定 UserID 的情况下如何将它们放在第一位?

我有兴趣获得相当于:https://www.youtube.com/user/UserID/playlists的结果但以下是我现在所拥有的。

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 channel 和播放列表。

/image/4rQSH.png(全尺寸图片位于:/image/4rQSH.png)

最佳答案

我在 ReacJS 中编写了仅用于播放列表的代码。希望这会给你一些想法。我正在使用谷歌 API。它对我有用。只需将我的 channel ID 和 API key 替换为您的即可。

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;

这是输出 sample output

关于javascript - YouTube API v3 : Get all Channels and PlayLists for given User-name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38937681/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com