내 목표는 YouTube API에 연결하고 특정 음악 제작자의 URL을 다운로드하는 것입니다. 다음 링크에서 사용한 스크립트는 다음과 같습니다. https://www.youtube.com/watch?v=_M_wle0Iq9M. 비디오에서 코드는 아름답게 작동합니다. 하지만 파이썬 2.7에서이 키를 사용하면 KeyError : 'items'를 얻을 수 있습니다.YouTube API에 연결하고 URL 다운로드 - KeyError 받기
사전을 잘못 사용하거나 키가없는 경우 KeyErrors가 발생할 수 있음을 알고 있습니다.
나는 'items'가 존재하는지 확인하기 위해 youtube 용 google 개발자 사이트로 이동하려고 시도했다.
get()을 사용하면 내 문제에 도움이 될 수 있지만 잘 모르겠습니다. 다음 코드를 사용하여 KeyError를 수정하거나 URL을 다운로드하는 주요 목표 인 코드를 개선하는 방법에 대한 제안 (Youtube API 사용)에 대한 제안 사항은 무엇입니까? 여기
코드입니다 : 이#these modules help with HTTP request from Youtube
import urllib
import urllib2
import json
API_KEY = open("/Users/ereyes/Desktop/APIKey.rtf","r")
API_KEY = API_KEY.read()
searchTerm = raw_input('Search for a video:')
searchTerm = urllib.quote_plus(searchTerm)
url = 'https://www.googleapis.com/youtube/v3/search?part=snippet&q='+searchTerm+'&key='+API_KEY
response = urllib.urlopen(url)
videos = json.load(response)
videoMetadata = [] #declaring our list
for video in videos['items']: #"for loop" cycle through json response and searches in items
if video['id']['kind'] == 'youtube#video': #makes sure that item we are looking at is only videos
videoMetadata.append(video['snippet']['title']+ # getting title of video and putting into list
"\nhttp://youtube.com/watch?v="+video['id']['videoId'])
videoMetadata.sort(); # sorts our list alphaetically
print ("\nSearch Results:\n") #print out search results
for metadata in videoMetadata:
print (metadata)+"\n"
raw_input('Press Enter to Exit')
거기에 무엇이 있는지보기 위해'비디오 '를 인쇄 해 보셨습니까? 예 : 'print json.dumps (비디오, 들여 쓰기 = 2)'. 아마도 API가 일종의 오류 응답 (무단 또는 무언가)을 제공하고 있습니다. – mgilson
사이드 질문 : API 키를 RTF 파일에 저장하는 이유는 무엇입니까? –
@ cricket_007 실제로는 부수적 인 질문이 아닐 수도 있습니다. RTF 형식은 파일의 머리 부분에 서식을 지정하기위한 일부 정크를 포함하는 경향이 있습니다. 아마도 그 정크가 API 키의 일부로 YouTube에 보내져 401 (또는 그 ilk의 다른 오류)가 발생했을 것입니다. – pzp