【发布时间】:2014-06-05 13:36:14
【问题描述】:
我第一次尝试
class Youtube
def search_url(term)
url = "https://gdata.youtube.com/feeds/api/videos"
url += "?q=#{term}&alt=json&restriction=US&max-results=50&orderby=viewCount"
url += "&fields=entry(id,title,yt:noembed,media:group(media:description),author(name),yt:statistics(@viewCount))"
url += "&key=#{DEV_KEY}"
但它无法处理像“Macklemore & Ryan Lewis”这样的查询
然后有人建议
require 'cgi'
class Youtube
def search_url(term)
term = CGI.escape(term)
url = "https://gdata.youtube.com/feeds/api/videos"
url += "?q=#{term}&alt=json&restriction=US&max-results=50&orderby=viewCount"
url += "&fields=entry(id,title,yt:noembed,media:group(media:description),author(name),yt:statistics(@viewCount))"
url += "&key=#{DEV_KEY}"
但这并没有解决问题。但它只是使以前有效的查询不再有效。
在火狐打开这两个链接(其他浏览器好像打不开)
https://gdata.youtube.com/feeds/api/videos?q=Macklemore+%26+Ryan+Lewis&restriction=US&max-results=50&orderby=viewCount https://gdata.youtube.com/feeds/api/videos?q=Macklemore & Ryan Lewis&restriction=US&max-results=50&orderby=viewCount
告诉我查询中的“&”确实影响很大。
如何才能真正解决这个问题?
【问题讨论】:
标签: youtube youtube-api gdata youtube-data-api