YouTube 转 MP4 API
YouTube 转 MP4 API 能把一个视频链接变成你的应用可立即使用的直接 MP4 下载链接——最高支持 4K 分辨率。本指南展示如何用 Tunelio API 在一次请求中选择分辨率并获得可直接使用的 MP4 链接。
YouTube 转 MP4 API 如何工作
你发送一个 YouTube URL 以及所需的分辨率,API 便返回一个已合并 MP4(视频与音频合并在一起)的签名下载 URL。没有渲染队列,也无需轮询——下载链接会在同一个响应中返回。
先列出分辨率,再下载
调用 GET /info 查看某个视频有哪些分辨率、每个 MP4 有多大,然后用你选定的画质调用 GET /create。下面的示例请求 1080p:
# See available MP4 resolutions and sizes (6 credits)
curl "https://tunelio.dev/info?url=https://youtu.be/dQw4w9WgXcQ" \
-H "Authorization: Bearer tnl_your_api_key"
# Get a direct 1080p MP4 URL (10 credits)
curl "https://tunelio.dev/create?url=https://youtu.be/dQw4w9WgXcQ&quality=1080p" \
-H "Authorization: Bearer tnl_your_api_key"create 的响应会返回 MP4 的 url、建议的 filename、以字节为单位的最终 file_size,以及一个 expires 时间戳,告诉你这个签名链接的有效时长。
可用的 MP4 分辨率
- 144p、240p、360p、480p——适合预览和低带宽用户的小文件。
- 720p 和 1080p——大多数应用常用的“高清”下载。
- 2160p(4K)——在 Mega 套餐上提供,用于高分辨率的源视频。
Node.js 示例
const res = await fetch(
"https://tunelio.dev/create?" + new URLSearchParams({
url: "https://youtu.be/dQw4w9WgXcQ",
quality: "1080p",
}),
{ headers: { Authorization: "Bearer " + process.env.TUNELIO_KEY } }
);
const { url, filename, file_size_str } = await res.json();
console.log(filename, file_size_str, url);把 MP4 保存到你自己的存储
由于 /create 返回的是一个普通的 HTTPS URL,你可以把 MP4 直接流式写入磁盘或对象存储,而无需把整个文件缓存在内存中。一旦你从 /create 响应中拿到 url,它就是一个普通的 GET:
import requests
with requests.get(download_url, stream=True) as r:
r.raise_for_status()
with open("video.mp4", "wb") as f:
for chunk in r.iter_content(1 << 20):
f.write(chunk)如果某个链接已过其 expires 时间戳,只需再次调用 GET /create 获取一个新的——GET /info 返回的元数据并没有变化,所以你只需重复最后一步,而无需重新检查该视频。
后续步骤
查看完整的 API 文档,了解完整的响应结构、错误码和速率限制;或者领取 100 个免费额度,请求你的第一个 MP4 URL。
常见问题
这个 API 能从 YouTube 下载 4K MP4 吗?
可以。在 Mega 套餐上请求 quality=2160p,当源视频有 4K 版本时,即可获得 4K MP4 URL。
MP4 是包含音频的单个文件吗?
是的。/create 返回的是已合并的 MP4,视频与音频合并在一起,因此下载的文件可直接播放,无需额外的合并步骤。
下载 URL 的有效期有多久?
签名 url 包含一个 expires 时间戳——通常为几个小时——之后你只需请求一个新的即可。