【问题标题】:How to get Youtube video title with v3 URL API in javascript w Ajax & JSON如何使用 Ajax 和 JSON 在 javascript 中使用 v3 URL API 获取 Youtube 视频标题
【发布时间】:2015-03-17 02:44:07
【问题描述】:

我只是想获取 Youtube 视频的标题。好像想不通到目前为止,我有这个:

     q = 'https://www.googleapis.com/youtube/v3/videos?id='+ itemId +'&key='+ ytApiKey +'&fields=items(snippet(channelId,title,categoryId))&part=snippet' ;

$.ajax({
      url: q, 
      dataType: "jsonp",
      success: function(data){
               alert(data.items[0].title);
               console.log(data.snippet.title);            
      },
      error: function(jqXHR, textStatus, errorThrown) {
          alert (textStatus, + ' | ' + errorThrown);
      }
  });

谢谢,

【问题讨论】:

    标签: javascript json youtube youtube-api youtube-javascript-api


    【解决方案1】:

    以下 jquery 代码将获取视频的标题。

    $.ajax({
          url: "https://www.googleapis.com/youtube/v3/videos?id=" + videoId + "&key="+ apiKey + "&fields=items(snippet(title))&part=snippet", 
          dataType: "jsonp",
          success: function(data){
                   console.log(data.items[0].snippet.title);           
          },
          error: function(jqXHR, textStatus, errorThrown) {
              alert (textStatus, + ' | ' + errorThrown);
          }
      });
    

    【讨论】:

    • 这样做会不会不好?由于您必须将您的 apiKey 公开给任何人都可以查看的 javascript?
    【解决方案2】:

    我让它工作了

    https://www.googleapis.com/youtube/v3/videos?id=itemId&key=apiKey&fields=items(snippet(title))&part=snippet
    

    alert(data.items[0].snippet.title);
    

    所以,语法没有太大问题!但是我在设置 Google API 的“允许的引用者”时发现问题确实出在后端。使用 V3 API,您可以选择 API 应该属于哪些引用者,因此其他人不能简单地窃取您的 API 并使用它。因此,如果请求来自您指定的域名/IP,API 将起作用。 当我不给它限制时,代码可以工作,但是当我进入我的域时它会失败!我输入了 .mydomainname.com/ ,与建议的格式相同,但不知何故出错了。现在我已经弄清楚原因了。

    【讨论】:

    • 这样做会不会不好?由于您必须将您的 apiKey 公开给任何人都可以查看的 javascript?
    • 我的理解是,您可以在 Google 的设置页面中将您的域链接到您的 API 密钥!这样 Youtube 就知道 API 调用的来源,因此其他人不能简单地使用您的 API 密钥。不过,我遇到了一些让它工作的问题,所以我有一个问题悬而未决。那里有评论,但我还没试过:stackoverflow.com/questions/28032237/…
    • 收到此错误消息怎么办:No 'Access-Control-Allow-Origin' header is present on the requested resource.
    • 这是 CORS 问题。你可以查查看。如果您使用 jQuery 或从后端服务器调用,则有不同的处理方式。并查看此帖子:stackoverflow.com/questions/47523265/…
    猜你喜欢
    • 2015-12-01
    • 1970-01-01
    • 2013-04-13
    • 2016-10-31
    • 2015-10-12
    • 2014-04-08
    • 2019-07-27
    • 2016-01-21
    • 2018-01-30
    相关资源
    最近更新 更多