连接到YouTube API并下载URL获取密钥

2024-04-25 17:16:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我的目标是连接到youtubeapi并下载特定音乐制作人的url。在视频中,代码运行得很好。但是当我在Python2.7上尝试它时,它给了我KeyError:“items”。你知道吗

我知道当字典使用不正确或键不存在时,可能会发生键错误。你知道吗

我试着去google开发者的youtube网站,确保“items”存在并且确实存在。你知道吗

我也知道使用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')

Tags: key代码importapijsonurlforyoutube
1条回答
网友
1楼 · 发布于 2024-04-25 17:16:57

问题很可能是对API键使用RTF文件而不是纯文本文件的组合,并且您似乎不知道是使用urllib还是urllib2,因为您同时导入了这两个文件。你知道吗

我个人建议使用requests,但我认为您需要读取()请求的内容以获取字符串

response = urllib.urlopen(url).read() 

您可以通过打印响应变量来检查这一点

相关问题 更多 >