有API v3但没有API密钥的Youtube视频标题?

有API v3但没有API密钥的Youtube视频标题?,youtube,youtube-api,youtube-data-api,Youtube,Youtube Api,Youtube Data Api,是否可以在不使用API键的情况下使用带API v3的视频ID获取视频标题?我在API文档中找不到任何获取标题的信息或示例。要获取视频标题,您需要一个API密钥,并且需要请求: https://www.googleapis.com/youtube/v3/videos?part=snippet&id={COMMA_DELIMITED_LIST_OF_IDS}&key={YOUR_API_KEY} 在返回的数据包中,标题将位于items.snippet.title 没有API密钥,您

是否可以在不使用API键的情况下使用带API v3的视频ID获取视频标题?我在API文档中找不到任何获取标题的信息或示例。

要获取视频标题,您需要一个API密钥,并且需要请求:

https://www.googleapis.com/youtube/v3/videos?part=snippet&id={COMMA_DELIMITED_LIST_OF_IDS}&key={YOUR_API_KEY}
在返回的数据包中,标题将位于
items.snippet.title

没有API密钥,您无法检索任何API数据;所有API请求都在配额系统中,该密钥用于确定对应用程序的每日限额收取多少费用。然而,像上面这样的电话是相当便宜的;总共有3个单元(2个用于代码段,1个用于请求本身)。由于您每天可以获得50000000个单元,并且可以为相同的3个单元检索多达50个代码片段,因此使用API密钥不会带来太大负担。

无需API密钥
要获取视频标题,您将而不是需要API密钥,并且您需要请求:

https://www.googleapis.com/youtube/v3/videos?part=snippet&id={COMMA_DELIMITED_LIST_OF_IDS}&key={YOUR_API_KEY}

更改所需视频的YouTube URL

它还可以与Vimeo和许多其他URL一起使用,例如:

细节 如果直接使用API,则不可能在没有API键的情况下使用带API v3的视频ID获取视频标题。YouTube数据API v2已弃用(请参阅:),当前YouTube API不支持(请参阅)

但幸运的是,有一项服务可以让您使用JSONP获取YouTube视频的标题(和其他数据),而无需API密钥

演示 下面是一个使用jQuery获取标题的简单演示:

var id = 'dQw4w9WgXcQ';
var url = 'https://www.youtube.com/watch?v=' + id;

$.getJSON('https://noembed.com/embed',
    {format: 'json', url: url}, function (data) {
    alert(data.title);
});
请参见JS-Bin上的

另见以下问题:


    • 这正是oEmbed协议的含义

      oEmbed是一种允许在服务器上嵌入URL表示的格式 第三方网站。简单的API允许网站显示嵌入式 用户发布指向该内容的链接时的内容(如照片或视频) 资源,而不必直接解析资源

      此文档存储在上

      有关格式的更多信息,请访问:

      样本输出:

      {
          "version": "1.0",
          "type": "video",
          "provider_name": "YouTube",
          "provider_url": "http://youtube.com/",
          "width": 425,
          "height": 344,
          "title": "Amazing Nintendo Facts",
          "author_name": "ZackScott",
          "author_url": "http://www.youtube.com/user/ZackScott",
          "html":
              "<object width=\"425\" height=\"344\">
                  <param name=\"movie\" value=\"http://www.youtube.com/v/M3r2XDceM6A&fs=1\"></param>
                  <param name=\"allowFullScreen\" value=\"true\"></param>
                  <param name=\"allowscriptaccess\" value=\"always\"></param>
                  <embed src=\"http://www.youtube.com/v/M3r2XDceM6A&fs=1\"
                      type=\"application/x-shockwave-flash\" width=\"425\" height=\"344\"
                      allowscriptaccess=\"always\" allowfullscreen=\"true\"></embed>
              </object>",
      }
      
      请注意,这并不意味着此网站上启用了

      这些数据主要用于在服务器端进行解析

      大多数信息也可以通过解析给定页面的
      打开图html属性来获得


      有关打开的图形的信息,请参阅

      是的,您可以在没有任何API的情况下只请求一个re模块

      Python代码: 输出: [+]视频标题:艾伦·沃克-唱《让我入睡》

      是的,这是可能的

      我对Python进行了一些修改,并在Python上编写了以下代码段:

      import urllib, urllib.request, json
      
      input = "C:\\urls.txt"
      output = "C:\\tracks.csv"
      
      urls=[line.strip() for line in open(input)]
      for url in urls:
          ID = url.split('=')
          VideoID = ID[1]
          params = {"format": "json", "url": "https://www.youtube.com/watch?v=%s" % VideoID}
          url = "https://www.youtube.com/oembed"
          query_string = urllib.parse.urlencode(params)
          url = url + "?" + query_string
          with urllib.request.urlopen(url) as response:
              response_text = response.read()
              try:
                  data = json.loads(response_text.decode())
              except ValueError as e:
                  continue # skip faulty url
              if data is not None:
                  author = data['author_name'].split(' - ')
                  author = author[0].rstrip()
                  f = open(output, "a", encoding='utf-8')
                  print(author, ',', data['title'], sep="", file=f)
      
      它选择一个包含Youtube URL列表的文本文件:

      https://www.youtube.com/watch?v=F_Vfgdfgg
      https://www.youtube.com/watch?v=RndfgdfN8
      ...
      
      并返回带有艺术家标题对的CSV文件:

      Beyonce,Pretty hurts
      Justin Timberlake,Cry me a river
      

      片段中的p.S.文件路径格式适用于Windows,对于Linux,只需使用
      ~/tracks.csv

      太好了,视频长度字段已从API v3中删除。为什么他们要打破谷歌那些家伙的工作模式(它并没有消失,只是在一个不同的“部分”——主要是为了让不需要持续时间的人不需要为配额付费(V3更模块化,而V2只是将大量XML文件返回给所有内容,结果非常浪费)。视频持续时间在contentDetails部分,所以像这样的请求:{video_ID}&key={你的API密钥}将允许您访问items.contentDetails.duration参数。请注意,该值是ISO-8601-duration格式的,因此您可能需要对其进行转换。这是一个很好的答案,它不需要api密钥,也不依赖于第三方服务。这非常有效。是否也有方法执行搜索?抱歉,@Suncatcher,但是如果是这样呢TAN标题包含逗号?只需在标题上使用逗号即可。在编写CSV期间,这应该不会有问题,在解析生成的CSV期间,也不应该有问题,您可以将标题用引号括起来,如
      print(author,“,”,data['title'],“'”,“sep=”“,file=f)
      或应用您想要的任何规则
      https://www.youtube.com/watch?v=F_Vfgdfgg
      https://www.youtube.com/watch?v=RndfgdfN8
      ...
      
      Beyonce,Pretty hurts
      Justin Timberlake,Cry me a river