跳到正文

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 时间戳——通常为几个小时——之后你只需请求一个新的即可。

相关指南