通过Python API尝试上传YouTube会导致“此操作所需的开发人员密钥”错误

时间:2013-01-16 03:41:08

标签: python youtube gdata

我正在尝试使用我获得的开发人员密钥将视频上传到YouTube,并与特定用户的凭据配对。在我看来,我的YoutubeService对象应该具有正确的开发人员凭据,但服务器返回403:此操作所需的开发人员密钥。

import gdata
import gdata.youtube
import gdata.youtube.service
client_id = 'dummy-client'
developer_key = 'xxxxxxx......'
youtube_user = 'sampleuser@gmail.com'
youtube_password = 'passwordgoeshere'
yt_service = gdata.youtube.service.YouTubeService(client_id, developer_key)
yt_service.ssl = True
yt_service.developer_id = developer_key
yt_service.client_id = client_id
yt_service.email = youtube_user
yt_service.password = youtube_password
yt_service.source = client_id
yt_service.ProgrammaticLogin() #Successfully login with the developer key and the user's credentials

my_media_group = gdata.media.Group(
    title=gdata.media.Title(text='video.avi'),
    description=gdata.media.Description(description_type='plain', text='My Video'),
    keywords=gdata.media.Keywords(text=''),
    category=[gdata.media.Category(
    text='Autos',
    scheme='http://gdata.youtube.com/schemas/2007/categories.cat', label='Autos')],
    player=None,
    private=gdata.media.Private()
)
video_entry = gdata.youtube.YouTubeVideoEntry(media=my_media_group)
video_file_location = '/path/to/video.avi'

#Use the supposedly authenticated and developer_id associated YoutubeService object to upload the video
new_entry = yt_service.InsertVideoEntry(video_entry, video_file_location)

#Receive the following error:
#
#Traceback (most recent call last):
#  File "<stdin>", line 1, in <module>
#  File "/usr/lib/python2.7/dist-packages/gdata/youtube/service.py", line 661, in InsertVideoEntry
#    raise YouTubeError(e.args[0])
#gdata.youtube.service.YouTubeError: {'status': 403, 'body': 'Developer key required     for this operation', 'reason': 'Forbidden'}

1 个答案:

答案 0 :(得分:0)

您的开发者ID和开发人员密钥是不同的东西。您需要将密钥(与您的帐户相关联而非特定的已注册应用程序)放入yt_service.developer_key