2 Stimmen

Ungültige Anforderungs-URI beim Hinzufügen eines Videos zur Wiedergabeliste über die YouTube-API.

Ich konnte diesen Fehler nicht überwinden, während ich versucht habe, ein Video zu meiner Playlist hinzuzufügen, indem ich die YouTube GData Python API verwendet habe.

gdata.service.RequestError: {'status': 400, 'body': 'Ungültige Anforderungs-URI', 'reason': 'Schlechte Anfrage'}

Das scheint der gleiche Fehler zu sein, aber bisher gibt es keine Lösungen. Kann jemand helfen?

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

 yt_service = gdata.youtube.service.YouTubeService()

 # Die YouTube API unterstützt derzeit keinen HTTPS/SSL-Zugriff.
 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')
 # Durchlaufen des Feeds wie bei jedem anderen
 for entry in feed.entry:
     if (entry.title.text == "test"):
         lst = entry;
         print entry.title.text, entry.id.text

 custom_video_title = 'Mein Testvideo auf meiner Testplaylist'  
 custom_video_description = 'Dies ist ein Testvideo auf meiner Testplaylist'  
 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 hinzugefügt'

Das Verwirrende ist, dass das Aktualisieren der Playlist funktioniert, das Hinzufügen eines Videos jedoch nicht.

 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)

Die video_id ist nicht falsch, da es sich um das Video aus dem Beispielscode handelt. Was fehlt mir hier? Jemand hilft!

Danke.

2voto

rajeshsr Punkte 306

Gdata scheint die API v1 zu verwenden. Die entsprechende Dokumentation finden Sie hier: http://code.google.com/apis/youtube/1.0/developers_guide_protocol.html#Retrieving_a_playlist

Dies bedeutet, dass Ihr "playlist_uri" nicht den Wert von "lst.id.text" übernehmen sollte, sondern das Attribut "href" des "feedLink"-Elements, um mit "AddPlaylistVideoEntryToPlaylist" verwendet zu werden.

Auch wenn Sie zufällig die v2-API verwenden, sollten Sie die URI aus dem Attribut "src" des "content"-Elements übernehmen, wie in der Dokumentation erläutert, die Sie erhalten, indem Sie 2.0 durch die obige URL ersetzen! (SO erlaubt mir nicht, zwei Hyperlinks zu setzen, weil ich nicht genug Ansehen habe! :))

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X