首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获得经身份验证的用户拥有的YouTube通道和相关通道URL(用户或通道)的列表

如何获得经身份验证的用户拥有的YouTube通道和相关通道URL(用户或通道)的列表
EN

Stack Overflow用户
提问于 2013-05-18 03:56:36
回答 2查看 2.8K关注 0票数 2

我们使用下面的调用为经过身份验证的用户获取ChannelID,并且它在大多数情况下运行良好。一些YouTube用户将他们的通道连接到一个Google+页面,在这种情况下,对于我们的一个用户来说,这是失败的。在这种情况下,调用只返回与用于身份验证的用户的电子邮件帐户相关联的channelID,而不是用户拥有的所有通道。

代码语言:javascript
运行
复制
System.IO.Stream resultStream = service.Query(new Uri("https://www.googleapis.com/youtube/v3/channels?part=id%2Csnippet%2CcontentDetails%2Cstatistics%2CtopicDetails&mine=true&key=" + GlobalSettings.developerKey));

另外,我们通过将channelID附加到下面的URL来构造通道URL。

代码语言:javascript
运行
复制
http://www.youtube.com/channel/

但是,有些人给我们提供用户名和路径,而不是channelID。如何检测类型是用户而不是通道?在这种情况下,用户名将附加到以下路径。Google+用户的主通道使用这个用户名的路径。

代码语言:javascript
运行
复制
http://www.youtube.com/user/
EN

回答 2

Stack Overflow用户

发布于 2013-05-22 19:41:58

有几件事:

  1. 在v3的YouTube数据API中,您不得不在任何地方使用信道In。这是件好事。通道ids是唯一通用的渠道识别方式!遗留用户名也用于这个目的,但是没有遗留用户名的通道的数量每天都在增加,因此不建议编写依赖遗留用户名的新v2代码(在v3中是不可能的)。
  2. 在打channels.list(..., mine=true)电话时,您总是要返回一个频道。当您通过OAuth 2流时,返回的通道将取决于选择了哪个通道--在该流中有一个选择器,它允许您选择任何您想要的通道,如果您的Google帐户恰好能够访问多个通道。如果要在不同的通道上操作,则需要显式地获取该通道的OAuth 2令牌。
  3. channel.list(..., managedByMe=true)可以返回多个通道,但是该API调用只与YouTube内容合作伙伴相关,并且与onBehalfOfContentOwner参数一起使用。大多数开发人员可以安全地忽略这一点,除非您知道您正在显式地使用YouTube内容合作伙伴的帐户。
  4. 访问通道页面的URL在v3 API响应中的任何地方都不会返回--这是真的,也许应该返回(请允许提交功能请求访问)。如果要手动构造URL,可以使用http://www.youtube.com/channel/CHANNEL_ID,其中CHANNEL_ID是v3中其他地方使用的标准UC...值。这应该会产生一个有效的URL,而不管该通道是否也有遗留用户名。
票数 3
EN

Stack Overflow用户

发布于 2013-05-19 14:00:11

我能够做到这一点的唯一方法是使用v2 API,而不是v3。具体来说,您可以使用相同的OAuth令牌,但是可以访问这个API端点:

代码语言:javascript
运行
复制
https://gdata.youtube.com/feeds/api/users/default?v=2

它将返回一个XML,它既包含到用户通道的URL (使用通道id),也包含YouTube用户名。

有关更多信息,请参见条目

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

https://stackoverflow.com/questions/16620521

复制
相关文章

相似问题

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