处理及;在Youtube API查询中
我第一次试过处理及;在Youtube API查询中,youtube,youtube-api,gdata,youtube-data-api,Youtube,Youtube Api,Gdata,Youtube Data Api,我第一次试过 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,medi
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}"
但这并没有解决问题。但它只是使以前有效的查询不再有效
在Firefox中打开这两个链接(其他浏览器似乎无法打开)
&Ryan Lewis&restriction=US&max结果=50&orderby=viewCount
告诉我查询中的“&”确实影响严重
如何才能真正解决这个问题呢?你不能在q=中使用&in而不逃避它。URL中带有%26的转义似乎是正确的。如果&被遗漏了呢 当我在youtube.com上仅搜索一个术语时:& 然后我的浏览器显示url: