跳到正文

YouTube 转 MP3 API

需要在自己的应用、机器人或后端里把 YouTube 视频转成 MP3?YouTube 转 MP3 API 以编程方式完成这件事——无需浏览器,也无需手动下载。本指南展示如何用 Tunelio API 在一次请求中从 YouTube 链接获得直接的 MP3 URL。

YouTube 转 MP3 API 的作用

无需抓取页面或运行本地转换器,你只需向端点发送一个 YouTube URL,就能获得直接从我们的 stream tunnel 提供的、可立即使用的 MP3 下载 URL。这让你的服务器保持轻量、响应时间更快——非常适合 Telegram 机器人、Web 应用和自动化工作流。

一次请求获取 MP3 URL

使用 quality=mp3 调用 GET /create。响应中的 url 字段就是指向 MP3 的直接的签名下载链接——没有需要单独等待的转换步骤。

curl "https://tunelio.dev/create?url=https://youtu.be/dQw4w9WgXcQ&quality=mp3" \
  -H "Authorization: Bearer tnl_your_api_key"
{
  "url": "https://tunelio.dev/tunnel?id=…&sig=…",
  "filename": "Example Video.mp3",
  "quality": "mp3",
  "mode": "audio",
  "file_size_str": "3.29 MB",
  "status": "ok"
}

Python

import os, requests

resp = requests.get(
    "https://tunelio.dev/create",
    params={"url": "https://youtu.be/dQw4w9WgXcQ", "quality": "mp3"},
    headers={"Authorization": f"Bearer {os.environ['TUNELIO_KEY']}"},
)
print(resp.json()["url"])  # direct MP3 download URL

Node.js

const res = await fetch(
  "https://tunelio.dev/create?" + new URLSearchParams({
    url: "https://youtu.be/dQw4w9WgXcQ",
    quality: "mp3",
  }),
  { headers: { Authorization: "Bearer " + process.env.TUNELIO_KEY } }
);
const data = await res.json();
console.log(data.url); // direct MP3 download URL

先查看音频大小(可选)

如果你想在下载前显示文件大小,可先调用 GET /info。它的 audioFormat 对象会报告该视频的 MP3 容器和精确的字节大小,因此你可以在用户点击下载前,就在 UI 中显示 "3.29 MB"。

开发者为何选择 Tunelio 做 YouTube 转 MP3

  • 一次请求、无轮询——直接返回 MP3 URL。
  • 可靠的流式分发,链接稳定、面向生产。
  • 慷慨的免费额度——注册即得 100 个额度,之后套餐低至 $9/mo。

生产环境提示

缓存每次 /create 响应中的 url 并在其过期前复用,而不是每次下载都调用端点——当许多用户请求同一首曲目时,这能节省额度。而且由于 MP3 链接就是一个普通的 HTTPS GET,你可以把它直接交给 Telegram 机器人的 sendAudio 方法,或将其流式写入存储,无需把整个文件缓冲到内存中。

后续步骤

阅读完整的 API 文档,了解认证、速率限制和每个参数,或领取 100 个免费额度,立即试用 YouTube 转 MP3 端点。

常见问题

有免费的 YouTube 转 MP3 API 吗?

有——Tunelio 在注册时提供 100 个免费额度,让你在选择套餐前就能测试 MP3 端点。

我如何获取 MP3 而不是视频?

使用 quality=mp3 调用 GET /create。响应中的 mode 将是 "audio",url 字段直接链接到 MP3 文件。

下载前能看到 MP3 文件大小吗?

可以。GET /info 返回一个 audioFormat 对象,包含以字节为单位的 MP3 大小和人类可读的字符串,因此你可以先在 UI 中显示它。

相关指南