跳到正文

YouTube 下载 API

YouTube 下载 API 让你的应用、机器人或后端把一个 YouTube 链接变成即用型下载 URL——无需浏览器自动化,也无需本地转换。本指南展示如何用 Tunelio API 在一次请求中完成它。

YouTube 下载 API 有什么用

无需抓取页面或运行笨重的本地提取器,你只需把一个 YouTube URL 发送到某个端点,就能收到该文件直接的、签名的下载 URL。你的服务器保持轻量,响应在一次往返中返回——没有需要跟踪的 job ID,也没有需要轮询的 status 端点。

Tunelio 恰好暴露两个端点。GET /info 检查一个视频并列出每种可用格式及其精确文件大小;GET /create 返回你所选画质的直接下载 URL。这让集成小到可以一口气读完。

认证

每个请求都以 Bearer token 的形式携带你的 API key。新账户可获得 100 个免费额度,你可以用 Telegram 或 Email 在大约一分钟内注册——无需信用卡。

Authorization: Bearer tnl_your_api_key

快速开始

先检查视频,看看有哪些格式可用,然后为你想要的画质请求一个直接 URL。下面是使用 cURL 的完整流程:

# 1. List available formats (6 credits)
curl "https://tunelio.dev/info?url=https://youtu.be/dQw4w9WgXcQ" \
  -H "Authorization: Bearer tnl_your_api_key"

# 2. Get a direct download URL for 1080p (10 credits)
curl "https://tunelio.dev/create?url=https://youtu.be/dQw4w9WgXcQ&quality=1080p" \
  -H "Authorization: Bearer tnl_your_api_key"

/create 的响应包含一个 url 字段——一个签名下载链接,你可以直接交给用户,或流式保存到存储。它在数小时内保持有效。

Python

import os, requests

H = {"Authorization": f"Bearer {os.environ['TUNELIO_KEY']}"}

info = requests.get(
    "https://tunelio.dev/info",
    params={"url": "https://youtu.be/dQw4w9WgXcQ"},
    headers=H,
).json()
print(info["formats"][0]["quality"])  # e.g. "1080p"

dl = requests.get(
    "https://tunelio.dev/create",
    params={"url": "https://youtu.be/dQw4w9WgXcQ", "quality": "1080p"},
    headers=H,
).json()
print(dl["url"])  # direct download URL

选择画质和格式

quality 参数接受一个视频标签,例如 144p、240p、360p、480p、720p 或 1080p——以及 Mega 套餐上的 2160p (4K)。改为传入 quality=mp3 即可获得纯音频的 MP3 文件。由于 GET /info 会预先报告每种格式的精确字节大小,你可以在用户决定下载之前向其展示文件大小。

价格与额度

每次调用 /info 花费 6 个额度,每次 /create 花费 10;通过返回的 URL 实际下载文件是免费的。套餐从 100 个额度的免费试用,到 Pro ($9/mo,100,000 额度)、Ultra ($39/mo,500,000 额度) 和 Mega ($89/mo,1.5M 额度,含 4K MP4)。

后续步骤

这就是整个 API。阅读完整参考了解响应字段、错误码和速率限制,然后领取你的免费额度并发起第一次调用。

常见问题

有免费的 YouTube 下载 API 吗?

有——Tunelio 为每个新账户在注册时提供 100 个免费额度,足以在选择套餐前测试两个端点。

该 API 支持哪些格式?

从 144p 到 4K(Mega 套餐上的 2160p)的 MP4 视频,以及 MP3 音频。GET /info 会列出某个视频每种可用格式及其精确文件大小。

我需要轮询才能等下载完成吗?

不需要。GET /create 会立即在响应体中返回一个直接的、签名的下载 URL——没有 job ID、status 端点或 webhook。

相关指南