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

如何通过YouTube API获取YouTube Clip的相关信息?

获取YouTube Clip专属数据的可行方案

由于YouTube官方尚未推出针对Clip的专属API,且现有Videos: list接口不支持Clip ID查询,以下是两种可获取Clip专属数据(title、views、duration、embed URL)的实用方案:

1. 解析Clip页面的内嵌数据

直接请求Clip的网页(如https://youtube.com/clip/UgkxJKmfKeQYLM9ex5qrU-W2wkwLCfRvlgYU),提取页面中的ytInitialData对象——这是YouTube页面加载时嵌入的核心数据块,包含Clip的全部专属信息:

  • title:路径为 contents.clipVideoRenderer.title.runs[0].text
  • views:路径为 contents.clipVideoRenderer.viewCountText.simpleText
  • duration:可从 contents.clipVideoRenderer.durationText.simpleText 获取格式化时长,或从 lengthSeconds 字段获取秒数
  • embed URL:可直接构造为 https://www.youtube.com/embed/{CLIP_ID}?clip={CLIP_ID},也可从页面的<iframe>标签中提取
  • 专属缩略图:路径为 contents.clipVideoRenderer.thumbnail.thumbnails,无需依赖父视频缩略图

注意:该方案依赖YouTube页面结构,平台可能随时调整数据路径,需做好容错处理。

2. 模拟YouTube内部GraphQL API请求

观察Clip页面的网络请求,会发现一个指向YouTube内部GraphQL接口的POST请求(通常路径包含youtubei/v1/player),模拟该请求可直接获取结构化的Clip数据:

  • 请求示例(简化版):
    POST https://www.youtube.com/youtubei/v1/player?key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8
    Content-Type: application/json
    
    {
      "videoId": "UgkxJKmfKeQYLM9ex5qrU-W2wkwLCfRvlgYU",
      "context": {
        "client": {
          "clientName": "WEB",
          "clientVersion": "2.20240520.01.00"
        }
      }
    }
    
  • 返回的JSON响应中,不仅包含Clip的title、views、duration、embed配置,还会附带父视频ID,可直接用于后续调用官方Videos: list接口获取uploader等父视频信息。

注意:该内部API无官方文档,请求参数(如clientVersion)可能随YouTube版本更新变化,需定期验证参数有效性。

补充:结合官方API完善数据

从上述两种方案中获取父视频ID后,调用官方Videos: list接口(指定id为父视频ID,part为snippet,statistics),即可获取uploader(频道名称、ID)等与父视频一致的信息,与Clip专属数据整合后即可得到完整的所需字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 15:31:11