在Python中使用gdata Youtube API时发生套接字错误
我使用在Python中使用gdata Youtube API时发生套接字错误,python,youtube,youtube-api,gdata,Python,Youtube,Youtube Api,Gdata,我使用gdata将YouTube URL映射到视频标题,使用以下代码: import gdata.youtube.service as youtube import re import queue import urlparse ytservice = youtube.YouTubeService() ytservice.ssl = True ytservice.developer_key = '' # snip class youtube(mediaplugin): def __ini
gdata
将YouTube URL映射到视频标题,使用以下代码:
import gdata.youtube.service as youtube
import re
import queue
import urlparse
ytservice = youtube.YouTubeService()
ytservice.ssl = True
ytservice.developer_key = '' # snip
class youtube(mediaplugin):
def __init__(self, parsed_url):
self.url = parsed_url
self.video_id = urlparse.parse_qs(parsed_url.query)['v'][0]
self.ytdata = ytservice.GetYouTubeVideoEntry(self.video_id)
print self.ytdata
调用service.GetYouTubeVideoEntry()时出现以下套接字异常:
我甚至不知道如何开始调试这个。任何想法都值得赞赏。谢谢
编辑:在回答评论中提出的问题时,
video\u id
是qh-mwjF-OMo
和parsed\u-url
是:
ParseResult(scheme=u'http', netloc=u'www.youtube.com', path=u'/watch', params='', query=u'v=qh-mwjF-OMo&feature=g-user-u', fragment='')
我的错误是,
video\u id
应该作为关键字参数传递,如下所示:
self.ytdata = ytservice.GetYouTubeVideoEntry(video_id=self.video_id)
看来套接字异常是将抛出异常的
gdata
的唯一一层;它试图根据参数盲目地获取URL,只有在URL获取失败时才会失败。解析的URL和self.video\u id
的值是多少?我问这个问题是因为当库试图在异常发生时解析地址。parsed_url
是来自urlparse.parse_qs
的解析url,而video_id是来自Youtube url的v
参数。我将编辑问题以添加一些信息。
self.ytdata = ytservice.GetYouTubeVideoEntry(video_id=self.video_id)