【问题标题】:Handling & in Youtube API query处理 & in Youtube API 查询
【发布时间】: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


    【解决方案1】:

    你不能在不转义的情况下在 q= 中使用 &。 URL 中带有 %26 的 & 转义似乎是正确的。如果 & 被排除在外?

    当我在 youtube.com 上仅搜索 1 个字词时:& 然后我的浏览器显示网址:http://www.youtube.com/results?search_query=%26

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-14
      • 2014-09-02
      • 2014-01-18
      • 2013-05-12
      • 2021-05-13
      • 2015-06-26
      相关资源
      最近更新 更多