- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何使用 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)
最佳答案
我在 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;
关于javascript - YouTube API v3 : Get all Channels and PlayLists for given User-name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38937681/
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 8 个月前关闭。 Improve t
我正在使用 node.js、Sequelize 和 MariaDB,我遇到了以下错误,我不确定如何解决? Error: Naming collision between attribute 'play
我一直在努力完成我认为很简单的任务:将视频添加到 YouTube 播放列表。我已经有了 uri 和视频 ID,所以这应该可行,对吗? uri = "http://gdata.youtube.com/f
我在一个网站上工作,我试图制作一个自定义主题播放列表来播放 YouTube 上托管的视频。我已经在网站的另一部分成功地一起使用了 VideoJS 和 VideoJS-YouTube,但是在引入 Vid
首先我为提出一个非常不具体的问题表示歉意。但我的线索太少,时间也太少,我真的不知道从哪里开始寻找。 我是计算艺术入门类(class)的学生。 48小时后我们将进行最后的展览。我刚刚意识到每个人用纯数据
我正在使用 jplayer 播放列表和自动播放。显示播放列表,正在播放歌曲,一切正常。但我想在 jplayer 更改为下一首歌曲时获取当前歌曲名称。我找不到任何相关文档。 歌曲更改后如何获取当前歌曲名
我想从 youtube 下载视频播放列表使用 youtube-dl 进一步离线查看。 有些视频有不可用的片段(但由于某种原因,通过浏览器观看时没有问题)。我想下载播放列表,但跳过缺少片段的视频。 我原
我试图通过如下传递用户 ID 来获取用户的播放列表, https://api.soundcloud.com/tracks?client_id=xxxxxx 但问题是它给我这样的错误, {"errors
在开发一个小的 spotify 小部件的过程中,我想接收我的播放列表。这对 Spotify API 来说没有问题,但我只需要获取所有者为当前用户的播放列表。 这可能吗? 非常感谢! 朱利安 最佳答案
我正在使用 动态创建播放列表m.Playlist() 然后使用 添加轨道.add() 功能。但是使用 将这些播放列表添加到工具栏似乎不起作用。 “+ 添加为播放列表” 按钮和 sp.core.libr
我已经在自己的网站上设置了YouTube Direct Lite。验证成功,可以使用您的Google帐户通过YouTube登录。现在,当我加载页面时出现了问题。 我收到一条错误消息,指出“缺少“播放列
根据 Spotify 对我的应用程序的反馈,我需要在我的 Spotify 应用程序中添加一个“另存为播放列表”按钮。我在其他应用程序中看到过该按钮,但据我所知,该按钮没有 native 实现 - 对吗
所以我看到了 original example如何从链接加载播放列表。我知道有一个API method playlist[].sources[].file 添加源。我只是很难将它们整合在一起。我试图通
我一直在使用以下代码从我的 Android 应用程序的播放列表中删除一个项目: private void removeFromPlaylist(long playlistId, int loc) {
我发现了一些脚本,该脚本如何通过AppleScript控制Spotify。但是它们仅包括播放/暂停,下一个,上一个,停止之类的内容。我在Spotify上搜索有关AppleScript的引用,但没有找到
我正在尝试获取最新上传的视频,但是对于某些 channel ,最新的视频丢失了,而其他视频的顺序与您在网站上的实际 channel 上传部分中使用的顺序不同...使用搜索(而不是播放列表)似乎有效(按
我在将多个视频添加到 YouTube 上已有的播放列表时遇到问题。 目前,我可以通过重复一段代码(从 request = 到 print(f"\n{response}"))来添加多个视频在我的脚本中一
在 Visual Studio 中使用单元测试时,可以编译对测试进行分组的播放列表。例如,当开发一个新功能时,我们只想运行相关测试而不是所有现有测试,这很有用。 但是,在我看来,播放列表只能通过显式添
我想创建一个播放列表来加载特定用户上传的所有视频。 有人建议我使用以下代码(假设要拉入的帐户是 YouTube): loadPlaylist( { listType: 'user_uploads',
我目前正在使用 Javascript、PHP 和 MySQL 构建一个 Web 应用程序(媒体播放器)。它将用于上传视频并将其存储到播放列表中,然后用户可以使用该播放列表将视频按所需的顺序放置。 上传
我是一名优秀的程序员,十分优秀!