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

如何使用原生JavaScript通过YouTube视频ID获取视频标题

实现YouTube视频标题+缩略图同步拉取的方案

你现有的缩略图拉取逻辑可以直接复用,要额外获取视频标题可以调用YouTube官方公开的oEmbed接口,不需要申请开发者密钥,前端直接请求即可,接口会返回包含标题在内的视频公开元数据。

完整实现代码

JavaScript代码

(function playYouTube() {
  let YouTubeContainers = document.querySelectorAll(".embed-youtube");
  for (let i = 0; i < YouTubeContainers.length; i++) {
    let container = YouTubeContainers[i];
    let videoId = container.dataset.videoId;

    // 原有缩略图拉取逻辑
    let imageSource = `https://img.youtube.com/vi/${videoId}/sddefault.jpg`;
    let image = new Image();
    image.src = imageSource;
    
    // 新增标题拉取逻辑
    fetch(`https://www.youtube.com/oembed?url=https://www.youtube.com/watch?v=${videoId}&format=json`)
      .then(res => res.json())
      .then(data => {
        // 生成标题元素,可自行修改标签类型和样式
        let titleEl = document.createElement('p');
        titleEl.className = 'youtube-title';
        titleEl.textContent = data.title;
        container.appendChild(titleEl);
        // 缩略图加载完成后插入容器
        image.addEventListener("load", function () {
          container.appendChild(image);
        });
      })
      .catch(err => {
        // 请求失败降级:仅显示缩略图
        console.error('标题拉取失败', err);
        image.addEventListener("load", function () {
          container.appendChild(image);
        });
      });
  }
})();

原有HTML无需修改,可补充可选CSS自定义标题样式

.youtube-title {
  font-size: 16px;
  font-weight: 500;
  margin: 10px 0;
  color: #222;
  line-height: 1.4;
}

注意事项

  • oEmbed接口返回的是YouTube平台的原始公开标题,和视频页面展示的标题完全一致
  • 该接口原生支持跨域请求,前端直接调用不需要额外配置代理服务
  • 如果需要获取更多元数据(比如时长、频道名称、封面尺寸),可以直接从oEmbed返回的结构体中提取对应字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:06:03