跳到正文

YouTube 元数据 API

YouTube 元数据 API 返回关于视频的结构化信息——它的标题、时长、缩略图和可用格式——而不下载任何内容。本指南展示如何用 Tunelio GET /info 端点在一次请求中读取这些数据。

元数据端点返回什么

GET /info 只接收一个 url 参数,返回视频的 title、duration(同时给出秒数和便于阅读的字符串)、最高分辨率的 thumbnail,以及一个 formats 数组,描述每一个可下载的视频和音频版本及其精确的文件大小。

curl "https://tunelio.dev/info?url=https://youtu.be/dQw4w9WgXcQ" \
  -H "Authorization: Bearer tnl_your_api_key"
{
  "title": "Example Video",
  "duration_seconds": 213,
  "duration_str": "03:33",
  "thumbnail": "https://i.ytimg.com/vi_webp/…/maxresdefault.webp",
  "formats": [
    { "quality": "1080p", "file_size_str": "48.10 MB", "width": 1920, "height": 1080 },
    { "quality": "720p",  "file_size_str": "28.52 MB", "width": 1280, "height": 720 }
  ],
  "audioFormat": { "format": "mp3", "file_size_str": "3.29 MB" }
}

常见用途

  • 在用户下载之前展示视频预览——title、thumbnail 和 duration。
  • 展示每种分辨率及其精确大小,让用户自行选择格式。
  • 在为下载花费额度之前,先验证 URL 并确认视频确实存在。

用 Python 读取

import os, requests

info = requests.get(
    "https://tunelio.dev/info",
    params={"url": "https://youtu.be/dQw4w9WgXcQ"},
    headers={"Authorization": f"Bearer {os.environ['TUNELIO_KEY']}"},
).json()

print(info["title"], info["duration_str"])
for f in info["formats"]:
    print(f["quality"], f["file_size_str"])

下载前先验证视频

GET /info 也是最省的方式:在你为 /create 花费额度之前,确认视频存在且可下载。如果 URL 是私有的、已删除或被地区封锁,/info 会返回一个错误,你可以立即呈现给用户——不会浪费一次下载尝试。这里 duration_seconds 字段也很有用,可用来拒绝直播或超过你应用允许时长的视频。

缩略图与时长

thumbnail 字段是 YouTube 为该视频提供的最高分辨率图片,因此你无需第二次请求即可渲染预览卡片。duration_str 已经格式化为 HH:MM:SS(不足一小时则为 MM:SS),而 duration_seconds 则给你原始整数,便于自行格式化或过滤。

费用

每次 GET /info 调用花费 6 个额度,新账户起始即有 100 个免费额度。由于 /info 会报告精确的文件大小,你可以让用户先选择格式,然后再花费一次 GET /create 下载所需的 10 个额度。

后续步骤

查看完整的 API 文档,了解 /info 的完整响应结构和每个字段,或将其与 GET /create 搭配,把读取到的元数据变成一个直接下载 URL。

常见问题

元数据 API 会下载视频吗?

不会。GET /info 只读取元数据——title、duration、thumbnail 和 formats。当你确实需要下载 URL 时,请使用 GET /create。

它会返回每种格式的文件大小吗?

会。formats 数组中的每一项都包含精确的字节大小和便于阅读的大小字符串,视频格式还附带 width 和 height。

相关指南