404 when getting private YouTube video even when logged in with the owner's account using gdata-pyth

Posted by Gonzalo on Stack Overflow See other posts from Stack Overflow or by Gonzalo
Published on 2010-06-07T17:17:13Z Indexed on 2010/06/07 17:22 UTC
Read the original article Hit count: 298

Filed under:
|
|

If a YouTube video is set as private and I try to fetch it using the gdata Python API a 404 RequestError is raised, even though I have done a programmatic login with the account that owns that video:

from gdata.youtube import service
yt_service = service.YouTubeService(email=my_email,
                                    password=my_password,
                                    client_id=my_client_id,
                                    source=my_source,
                                    developer_key=my_developer_key)
yt_service.ProgrammaticLogin()
yt_service.GetYouTubeVideoEntry(video_id='IcVqemzfyYs')
---------------------------------------------------------------------------
RequestError                              Traceback (most recent call last)

<ipython console> 

/usr/lib/python2.4/site-packages/gdata/youtube/service.pyc in GetYouTubeVideoEntry(self, uri, video_id)
    203     elif video_id and not uri:
    204       uri = '%s/%s' % (YOUTUBE_VIDEO_URI, video_id)
--> 205     return self.Get(uri, converter=gdata.youtube.YouTubeVideoEntryFromString)
    206 
    207   def GetYouTubeContactFeed(self, uri=None, username='default'):

/usr/lib/python2.4/site-packages/gdata/service.pyc in Get(self, uri, extra_headers, redirects_remaining, encoding, converter)
   1100             'body': result_body}
   1101     else:
-> 1102       raise RequestError, {'status': server_response.status,
   1103           'reason': server_response.reason, 'body': result_body}
   1104 

RequestError: {'status': 404, 'body': 'Video not found', 'reason': 'Not Found'}

This happens every time, unless I go into my YouTube account (through the YouTube website) and set it public, after that I can set it as private and back to public using the Python API.

Am I missing a step or is there another (or any) way to fetch a YouTube video set as private from the API?

Thanks in advance.

© Stack Overflow or respective owner

Related posts about python

Related posts about gdata-api