【问题标题】:How do I get a list of YouTube channels, and associated channel URLs (user or channel), owned by an authenticated user如何获取经过身份验证的用户拥有的 YouTube 频道列表和关联的频道 URL(用户或频道)
【发布时间】:2013-05-13 07:11:05
【问题描述】:

我们使用以下调用来获取经过身份验证的用户的 ChannelID,它适用于大多数情况。一些 YouTube 用户将他们的频道连接到 Google+ 页面,在这种情况下,我们的一位用户失败了。在这种情况下,调用仅返回与用户用于身份验证的电子邮件帐户相关联的频道 ID,而不是用户拥有的所有频道。

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。

http://www.youtube.com/channel/

但是,有些频道使用用户名和路径而不是频道 ID。如何检测到类型是 user 而不是 channel?在这种情况下,用户名将附加到以下路径。 Google+ 用户的主频道使用此路径和用户名。

http://www.youtube.com/user/

【问题讨论】:

    标签: youtube-api youtube-channels youtube.net-api


    【解决方案1】:

    一些事情:

    1. 在 YouTube Data API v3 中,您不得不在任何地方使用频道 ID。这是一件好事。频道 ID 是识别频道的唯一通用方法!旧版用户名也用于此目的,但没有旧版用户名的频道数量与日俱增,因此不建议编写依赖旧版用户名的新 v2 代码(在 v3 中也不可能)。
    2. 在拨打channels.list(..., mine=true) 电话时,您总是会返回一个频道。您返回的通道取决于您在完成 OAuth 2 流程时选择了哪个通道 - 如果您的 Google 帐户碰巧可以访问多个通道,则该流程中有一个选择器,可让您选择您想要的任何通道.如果您想在不同的通道上操作,则需要为该通道显式获取 OAuth 2 令牌。
    3. channel.list(..., managedByMe=true) 可以返回多个频道,但该 API 调用仅与 YouTube 内容合作伙伴相关,并与 onBehalfOfContentOwner 参数一起使用。大多数开发者可以放心地忽略这一点,除非您明确知道自己在使用 YouTube 内容合作伙伴的帐户。
    4. v3 API 响应中的任何地方都没有返回访问频道页面的 URL — 这是真的,也许应该是(请随时 file a feature request)。如果要手动构建 URL,可以使用 http://www.youtube.com/channel/CHANNEL_ID,其中 CHANNEL_ID 是标准的 UC... 值,在 v3 中的其他任何地方都使用。无论频道是否还有旧用户名,这都会生成一个有效的 URL。

    【讨论】:

      【解决方案2】:

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

      https://gdata.youtube.com/feeds/api/users/default?v=2
      

      它将返回一个 XML 文档,其中包含用户频道的 URL(使用频道 ID)以及 YouTube 用户名。

      请参阅https://developers.google.com/youtube/2.0/reference#User_profile_entry 了解更多信息。

      【讨论】:

      • 谢谢。这将通过提供完整的 url 和用户名来帮助。我仍然需要获取用户拥有的所有频道的完整列表。当用户的频道与 Google+ 帐户或信息页相关联时,这会提供完整的列表吗?
      • AFIK,youtube 频道和用户登录之间存在一对一的关系。这意味着频道列表中始终只有一项。当然,除非您的 YT 帐户是 YT-CMS 帐户(想想 NBC 或 BBC)。我对 YT-CMS 帐户的经验为零,因此很抱歉无法在这方面提供帮助。
      猜你喜欢
      • 1970-01-01
      • 2016-10-25
      • 1970-01-01
      • 2013-10-12
      • 2015-10-27
      • 2021-01-25
      • 1970-01-01
      • 2023-03-06
      • 2015-10-02
      相关资源
      最近更新 更多