Dies ist mein erstes Mal hier etwas zu fragen. Ich habe versucht, auf die Youtube-API zuzugreifen, um etwas für ein Experiment zu erhalten, das ich gerade mache. Alles funktioniert so weit. Ich wollte nur nach diesem sehr inkonsequenten Fehler fragen, den ich bekomme.KeyError mit Youtube API mit Python
-----------
1
Title: All Movie Trailers of New York Comic-Con (2016) Power Rangers, John Wick 2...
Uploaded by: KinoCheck International
Uploaded on: 2016-10-12T14:43:42.000Z
Video ID: pWOH-OZQUj0
2
Title: Movieclips Trailers
Uploaded by: Movieclips Trailers
Uploaded on: 2011-04-01T18:43:14.000Z
Video ID: Traceback (most recent call last):
File "scrapeyoutube.py", line 24, in <module>
print "Video ID:\t", search_result['id']['videoId']
KeyError: 'videoId'
Ich habe versucht, die Video-ID ("videoID" laut Dokumentation) zu bekommen. Aber aus irgendeinem Grund funktioniert der Code für die erste Abfrage und dann für die zweite Abfrage. Es ist komisch, weil es nur für dieses spezielle Element geschieht. Alles andere ('description', 'publishedAt' usw.) funktioniert. Hier ist mein Code:
from apiclient.discovery import build
import json
import pprint
import sys
APINAME = 'youtube'
APIVERSION = 'v3'
APIKEY = 'secret teehee'
service = build(APINAME, APIVERSION, developerKey = APIKEY)
#volumes source ('public'), search query ('androide')
searchrequest = service.search().list(q ='movie trailers', part ='id, snippet', maxResults = 25).execute()
searchcount = 0
print "-----------"
for search_result in searchrequest.get("items", []):
searchcount +=1
print searchcount
print "Title:\t", search_result['snippet']['title']
# print "Description:\t", search_result['snippet']['description']
print "Uploaded by:\t", search_result['snippet']['channelTitle']
print "Uploaded on:\t", search_result['snippet']['publishedAt']
print "Video ID:\t", search_result['id']['videoId']
Hoffe ihr könnt mir helfen. Vielen Dank!
Ihre Beschreibung erwähnt 'videoID', aber der Code verwendet' videoId'. (Zugegeben, es funktioniert für das erste Video, also vielleicht nur ein Tippfehler?) –
Yup! Du hast es. Vielen Dank! Ich weiß, dass ich dir nie wirklich für die Antwort gedankt habe – Furankisan