如何使用YouTube API从YouTubeVideoFeed对象获取公共频道网址?

时间:2009-04-22 08:01:09

标签: python youtube feeds youtube-api

我正在使用YouTube版的YouTube API使用以下网址获取YouTubeVideoFeed对象:

  

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

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

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

如何基于Feed链接到频道?

2 个答案:

答案 0 :(得分:1)

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

你必须从feed获取链接数组并迭代以找到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

最正确的做法是从用户个人资料Feed中抓取“备用”链接,因为从技术上讲,上述网址会转到上传的视频,而非主要频道页

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

答案 1 :(得分:0)

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