Недопустимый URI запроса при добавлении видео в плейлист через API YouTube.

Мне не удалось устранить эту ошибку при попытке добавить видео в свой список воспроизведения с помощью API youtube gdata python.

gdata.service.RequestError: {'статус': 400, 'тело': 'Неверный URI запроса', 'причина': 'Неверный запрос'}

Это похоже на ту же ошибку, но решений пока нет. Любая помощь, ребята?

 import getpass
 import gdata.youtube
 import gdata.youtube.service

 yt_service = gdata.youtube.service.YouTubeService()

 # The YouTube API does not currently support HTTPS/SSL access.
 yt_service.ssl = False
 yt_service = gdata.youtube.service.YouTubeService()
 yt_service.email = #myemail
 yt_service.password = getpass.getpass()
 yt_service.developer_key = #mykey
 yt_service.source = #text
 yt_service.client_id= #text
 yt_service.ProgrammaticLogin()

 feed = yt_service.GetYouTubePlaylistFeed(username='default')
 # iterate through the feed as you would with any other
 for entry in feed.entry:
     if (entry.title.text == "test"):
         lst = entry;
         print entry.title.text, entry.id.text

 custom_video_title = 'my test video on my test playlist'  
 custom_video_description = 'this is a test video on my test playlist'  
 video_id = 'Ncakifd_16k'  
 playlist_uri = lst.id.text    

 playlist_video_entry = yt_service.AddPlaylistVideoEntryToPlaylist(playlist_uri, video_id, custom_video_title, custom_video_description)    

 if isinstance(playlist_video_entry, gdata.youtube.YouTubePlaylistVideoEntry):
 print 'Video added'

Смущает то, что обновление плейлиста работает, а добавление видео - нет.

 playlist_entry_id = lst.id.text.split('/')[-1]
 original_playlist_description = lst.description.text
 updated_playlist = yt_service.UpdatePlaylist(playlist_entry_id,'test',original_playlist_description,playlist_private=False)

video_id не является неправильным, потому что это видео из примера кода. Что мне здесь не хватает? Кто-нибудь помогите!

Спасибо.


person Sanjeev Satheesh    schedule 11.12.2010    source источник


Ответы (1)


Gdata, кажется, использует v1 API. Итак, соответствующая документация находится здесь: http://code.google.com/apis/youtube/1.0/developers_guide_protocol.html#Retrieving_a_playlist

Это означает, что ваш «playlist_uri» не должен принимать значение «lst.id.text», но должен принимать атрибут «href» элемента «feedLink», чтобы его можно было использовать с «AddPlaylistVideoEntryToPlaylist».

Даже если вы используете v2 API, вы должны взять URI из атрибута «src» элемента «content», как описано в документации, вы получите, заменив 2.0 в приведенном выше URL-адресе! (SO не позволяет мне поставить две гиперссылки, потому что у меня недостаточно репутации! :))

person rajeshsr    schedule 14.12.2010