Youtube API中的Unicode用于python中的视频搜索

时间:2011-11-01 03:56:02

标签: python search unicode utf-8 youtube-api

我正在尝试使用youtube的数据api来搜索搜索词的位置 包括汉字。 但搜索查询未返回正确的结果。

我正在使用python,我刚刚编写了一些使用unicode的测试代码 在测试代​​码中,我硬编码unicode术语,将其转换为utf-8,然后是url 将其编码为搜索词并将其传递给youtube api。 代码如下:

   yt_service = gdata.youtube.service.YouTubeService()
   query = gdata.youtube.service.YouTubeVideoQuery()

   u_topic = u"a-mei"
   u_topic = u"阿妹"    # a-mei
   s_topic = u_topic.encode('utf-8')
   query.vq = urllib.quote_plus(s_topic  )

   query.time = 'this_month'
   query.orderby = 'relevance'
   query.racy = 'include'
   feed = yt_service.YouTubeQuery(query)

当我搜索你的“a-mei”时代码有效 但是当我搜索你的“阿妹”时,我得不到正确的结果

我还尝试了以下网址:

   https://gdata.youtube.com/feeds/api/videos?q=%E9%98%BF%E5%A6%B9

(这是作为链接的网址:https://gdata.youtube.com/feeds/api/videos?q=%E9%98%BF%E5%A6%B9
其中q字符串是utf-8的url编码,用于你“阿妹”
此网址会返回正确的结果。

因此,似乎youtube api允许utf-8用于搜索术语,但是 由于某种原因,我的api电话没有返回正确的结果。

1 个答案:

答案 0 :(得分:4)

我相信gdata API应该为您设置格式化查询参数。因此,您不需要手动urllib.quote_plus您的查询,这样做会导致双重转义字符串,让您真正搜索名称为百分比负载的视频。