使用Python GData API,无法获得可编辑的视频条目

时间:2011-12-12 14:09:02

标签: python django youtube gdata gdata-api

我无法获取包含链接rel =“edit”的视频条目。我需要这样的条目才能在其上调用DeleteVideoEntry(...)

我正在使用GetYouTubeVideoEntry(youtube_id=XXXXXXX)检索视频。我的yt_service使用用户名,密码和开发人员密钥进行初始化。我使用ProgrammaticLogin。这部分似乎工作正常。我使用相同的yt_service来提前上传所述视频。此外,如果我将开发人员密钥更改为虚假(在调试期间)并尝试进行身份验证,我会收到403错误。这让我相信认证工作正常。

不用说,使用GetYouTubeVideoEntry(youtube_id=XXXXXXX)检索的视频条目不包含编辑链接,我无法在DeleteVideoEntry(...)来电中使用该条目。

是否有一些特殊方法可以获得包含带rel =“edit”的链接元素的视频条目?有谁能建议某种方法来解决我的问题?这可能是一个错误吗?

更新

对于记录,当我尝试获取所有上传的Feed,然后循环浏览视频条目时,视频条目会有一个编辑链接。所以使用它有效:

uri = 'http://gdata.youtube.com/feeds/api/users/%s/uploads' % username
feed = yt_service.GetYouTubeVideoFeed(uri)
for entry in feed.entry:
   yt_service.DeleteVideoEntry(entry)

但这不是:

entry = yt_service.GetYouTubeVideoEntry(video_id = video.youtube_id)
yt_service.DeleteVideoEntry(entry)

使用相同的yt_service。

2 个答案:

答案 0 :(得分:6)

我刚刚使用gdata和ProgrammaticLogin()

删除了youtube视频

以下是重现的一些步骤:

import gdata.youtube.service
yt_service = gdata.youtube.service.YouTubeService()

yt_service.developer_key = 'developer_key'
yt_service.email = 'email'
yt_service.password = 'password'
yt_service.ProgrammaticLogin()


# video_id should looks like 'iu6Gq-tUsTc'
uri = 'https://gdata.youtube.com/feeds/api/users/%s/uploads/%s' % (username, video_id)  
entry = yt_service.GetYouTubeUserEntry(uri=uri)
response = yt_service.DeleteVideoEntry(entry)
print response  # True

yt_service.GetYouTubeVideoFeed(uri)有效,因为GetYouTubeVideoFeed不检查uri,只是调用self.Get(uri, ...),但我认为原来是'https://gdata.youtube.com/feeds/api/videos' uri。

反之亦然yt_service.GetYouTubeVideoEntry()使用YOUTUBE_VIDEO_URI = 'https://gdata.youtube.com/feeds/api/videos',但此条目不包含rel="edit"

希望能帮到你

答案 1 :(得分:1)

您可以通过将debug标志设置为true来查看生成的请求的HTTP标头。这很简单:

 yt_service = gdata.youtube.service.YouTubeService()
 yt_service.debug = True

You can read about this in the documentation here.