【问题标题】:How to get the public channel URL from YouTubeVideoFeed object using the YouTube API?如何使用 YouTube API 从 YouTubeVideoFeed 对象获取公共频道 URL?
【发布时间】:2009-04-22 08:01:09
【问题描述】:

我正在使用 Python 版本的 YouTube API 来使用以下 URL 获取 YouTubeVideoFeed 对象:

http://gdata.youtube.com/feeds/api/users/USERNAME/uploads

注意:我已将 USERNAME 替换为我需要关注的帐户。

到目前为止,获取提要、迭代条目、获取玩家网址、标题和缩略图都非常简单。但现在我想在页面上添加一个“访问频道”链接。我不知道如何从提要中获取频道的“公共”URL(在这种情况下,是用户的默认频道)。据我所知,直接存储在提要中的唯一 URL 指向 http://gdata.youtube.com/不是公共站点。

如何根据 Feed 链接到频道?

【问题讨论】:

    标签: python youtube feed youtube-api


    【解决方案1】:

    好吧,如果您想自己构建 URL,youtube.com/user/USERNAME 是一个非常安全的选择,但我认为您想要的是链接 rel='alternate'

    您必须从提要中获取链接数组并迭代以找到替代项,然后获取 href

    类似:

    client = gdata.youtube.service.YouTubeService()
    
    feed = client.GetYouTubeVideoFeed('http://gdata.youtube.com/feeds/api/users/username/uploads')
    
    for link in feed.link:
      if link.rel == 'alternate':
        print link.href
    

    输出:

    http://www.youtube.com/profile_videos?user=username

    最正确的做法是从用户个人资料供稿中获取“备用”链接,因为从技术上讲,上述 URL 指向上传的视频,而不是主频道页面

    feed = client.GetYouTubeUserEntry('http://gdata.youtube.com/feeds/api/users/username')
    
    for link in feed.link:
      if link.rel == 'alternate':
        print link.href
    

    输出: http://www.youtube.com/profile?user=username

    【讨论】:

      【解决方案2】:

      您可能会混淆用户名...当我使用我的用户名时,我会看到我的公共页面 http://gdata.youtube.com/feeds/api/users/drdredel/uploads 他们在你的 gmail 用户名和你的 youtube 用户名之间有一些古怪的区别。还是我误解了你的问题?

      【讨论】:

      • 当我点击你的链接时,它认为它是一个原子提要,我只想要人们通常会访问的公共 youtube 频道页面。
      • 是通过api访问的吗?为什么不直接去那里:youtube.com/user/drdredel?再说一遍,也许我不理解你。
      • 也许我需要调整我的脚本期望的设置。现在它需要 gdata.youtube.com 网址,但也许我应该只传递频道名称或用户名。
      猜你喜欢
      • 2018-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-07
      • 2014-03-14
      • 1970-01-01
      • 2017-07-25
      • 2014-09-09
      相关资源
      最近更新 更多