无法使用 Youtube Data API 删除视频。我正在使用 Python 客户端库。
所有这些似乎都是直接来自文档,所以我真的很困惑为什么它不起作用。这是我的功能:
def delete_youtube_video_by_id(video_id):
yt_service = gdata.youtube.service.YouTubeService()
yt_service.email = YOUTUBE_EMAIL
yt_service.password = YOUTUBE_SECRET_PASSWORD
yt_service.source = YOUTUBE_SOURCE
yt_service.developer_key = YOUTUBE_SECRET_DEVELOPER_KEY
yt_service.client_id = YOUTUBE_CLIENT_ID
yt_service.ProgrammaticLogin()
video_entry = yt_service.GetYouTubeVideoEntry(video_id=video_id)
response = yt_service.DeleteVideoEntry(video_entry)
return response
从文档来看,如果视频被成功删除,这应该返回 True。但是,它返回 None:
>>> response = delete_youtube_video_by_id('my_youtube_video_id')
>>> type(response)
<type 'NoneType'>
>>>
而且视频也没有被删除。我知道凭据很好,因为它们与我最初上传视频时使用的凭据相同,而且我知道 ID 很好,因为我直接从 YouTube 频道中获取了它。
有任何想法吗?
我相当确定这是因为需要从上传源中获取视频条目,而不是一般视频源。否则该条目不可编辑。
这将翻译为
video_entry = yt_service.GetYouTubeVideoEntry('https://gdata.youtube.com/feeds/api/users/default/uploads/VIDEO_ID')
Python GData 客户端库仍然使用 Data API v1,该 API 现已弃用很长时间,并且客户端库总体维护得不好。
我建议切换到v3 https://developers.google.com/youtube/v3/以及相应的新客户库 https://developers.google.com/api-client-library/python/因为这绝对是未来的环境。我们有一个现已提供少量 Python 示例 https://developers.google.com/youtube/v3/code_samples/python,虽然没有专门用于删除视频的工具,但它应该看起来像
youtube.videos().delete(id=VIDEO_ID).execute()
(假设youtube
是经过正确授权的 YouTube 客户端界面,遵循该页面上的现有示例)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)