You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过YouTube视频链接获取标题?能否用指定代码实现?

嘿,我来帮你搞定这两个关于YouTube视频标题获取的问题:

问题一:已知YouTube视频链接,如何获取视频标题?

有几种靠谱的方式,我给你列两个最常用的:

1. 使用官方YouTube Data API v3(推荐)

这是最稳定、功能最全的方法,步骤如下:

  • 先去Google Cloud控制台创建一个项目,启用YouTube Data API v3,然后生成一个API密钥
  • 从你的YouTube链接里提取视频ID:比如链接是https://www.youtube.com/watch?v=abc123,那视频ID就是abc123
  • 调用API的videos.list接口,请求参数设置:
    • part=snippet(我们需要获取包含标题的snippet部分)
    • id=你的视频ID
    • key=你的API密钥
  • 接口返回的JSON里,items[0].snippet.title就是视频的标题

2. 使用YouTube oEmbed接口

YouTube支持oEmbed协议,你可以直接请求对应的接口获取元数据,但要注意跨域问题(前端直接请求可能会被浏览器拦截,除非服务器允许CORS)。请求格式大概是:

https://www.youtube.com/oembed?url=https://www.youtube.com/watch?v=你的视频ID&format=json

返回的JSON里title字段就是视频标题。如果前端要直接用,要么确认该接口支持CORS,要么通过自己的后端代理转发请求。


问题二:你提供的代码能否获取YouTube视频标题?

先把你贴的代码完整整理出来(补全了截断的部分):

function setYouTubeTitle(id) { 
  $.ajax({ 
    url: window.location.protocol + '//query.yahooapis.com/v1/public/yql', 
    data: { 
      q: "select * from json where url ='http://www.youtube.com/oembed?url=http://www.youtube.com/watch?v=" + id + "&format=json'", 
      format: "json" 
    }, 
    dataType: "jsonp", 
    success: function (data) { 
      if (data && data.query && data.query.results && data.query.results.json) { 
        // 这里应该是把data.query.results.json.title赋值到页面元素里
        // 比如 $('#title').text(data.query.results.json.title);
      }
    }
  })
}

很遗憾地说,这段代码现在完全用不了了——因为Yahoo的YQL服务早在2019年就正式关闭了,你请求query.yahooapis.com这个域名会直接失败。

不过思路是对的:通过oEmbed获取视频元数据,再用JSONP绕开跨域限制。但现在YQL没了,你可以换成下面两种方案:

  • 改用前面说的YouTube Data API v3,这是长期可用的方案
  • 如果想继续用oEmbed,要么自己搭一个后端代理来转发请求(避免跨域),要么检查YouTube oEmbed接口是否支持CORS,直接用jQuery的ajax请求(注意要去掉JSONP,用普通的ajax,如果CORS允许的话)

内容的提问来源于stack exchange,提问作者Bsde

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:23:48