免费弹幕API

永久免费的多平台弹幕解析服务 - 无限制调用

100% 永久免费
哔哩哔哩 爱奇艺 腾讯视频 优酷 芒果TV

API 调用方式

方式一:URL直链模式

直接传入视频URL,自动识别平台并解析弹幕

GET 请求格式:
https://danmu.huaqi.pro/?url=视频链接
示例调用:
curl "https://danmu.huaqi.pro/?url=https://www.bilibili.com/video/BV1xx411c7mu"
返回格式 (JSON):
{ "danmaku": [ { "time": 15.5, "type": 1, "color": 16777215, "author": "用户123", "text": "这里是弹幕内容" } ], "total": 1234 }

方式二:ID模式

传统接口模式,支持各平台视频ID

GET 请求格式:
https://danmu.huaqi.pro/?ac=dm&id=视频ID
示例调用:
curl "https://danmu.huaqi.pro/?ac=dm&id=BV1xx411c7mu"
返回格式 (JSON):
{ "danmaku": [ { "time": 15.5, "type": 1, "color": 16777215, "author": "用户123", "text": "这里是弹幕内容" }, { "time": 30.2, "type": 1, "color": 65280, "author": "用户456", "text": "另一条弹幕" } ], "total": 2 }
智能缓存:弹幕数据自动缓存1天,提升访问速度,节省服务器资源

服务特点

💰

永久免费

无任何收费项目,永久免费使用

🚀

高速响应

平均响应时间 < 50ms

🔓

无限调用

没有调用次数限制

🛡️

稳定可靠

7×24小时稳定运行

📱

全平台支持

支持5大主流视频平台

即时使用

无需注册,即开即用

服务数据

100%
永久免费保证
5个
支持平台数量
0限制
调用次数限制
24/7
持续服务时间

完整使用示例

JavaScript / Node.js 完整示例:
// 方式一:URL模式获取B站视频弹幕
async function getBilibiliDanmaku() {
  try {
    const response = await fetch('https://danmu.huaqi.pro/?url=https://www.bilibili.com/video/BV1xx411c7mu');
    const data = await response.json();

    console.log(`弹幕总数: ${data.total}`);
    console.log(`前10条弹幕:`);

    data.danmaku.slice(0, 10).forEach((dm, index) => {
      console.log(`${index + 1}. [${dm.time}s] ${dm.text} (用户: ${dm.author})`);
    });
  } catch (error) {
    console.error('获取弹幕失败:', error);
  }
}

// 方式二:ID模式获取弹幕
async function getDanmakuById() {
  try {
    const response = await fetch('https://danmu.huaqi.pro/?ac=dm&id=BV1xx411c7mu');
    const data = await response.json();

    console.log(`通过ID获取弹幕数量: ${data.total}`);
    data.danmaku.forEach(dm => {
      console.log(`${dm.time}s: ${dm.text}`);
    });
  } catch (error) {
    console.error('获取弹幕失败:', error);
  }
}

// 执行示例
getBilibiliDanmaku();
getDanmakuById();
Python 完整示例:
import requests
import json

def get_danmaku_by_url(video_url):
    """通过视频URL获取弹幕"""
    try:
        api_url = f"https://danmu.huaqi.pro/?url={video_url}"
        response = requests.get(api_url)
        response.raise_for_status()

        data = response.json()
        print(f"弹幕总数: {data['total']}")
        print(f"前10条弹幕:")

        for i, dm in enumerate(data['danmaku'][:10]):
            print(f"{i+1}. [{dm['time']}s] {dm['text']} (用户: {dm['author']})")

        return data
    except requests.RequestException as e:
        print(f"请求失败: {e}")
        return None
    except json.JSONDecodeError as e:
        print(f"JSON解析失败: {e}")
        return None

def get_danmaku_by_id(video_id):
    """通过视频ID获取弹幕"""
    try:
        api_url = f"https://danmu.huaqi.pro/?ac=dm&id={video_id}"
        response = requests.get(api_url)
        response.raise_for_status()

        data = response.json()
        print(f"通过ID获取弹幕数量: {data['total']}")

        for dm in data['danmaku'][:5]:
            print(f"{dm['time']}s: {dm['text']}")

        return data
    except Exception as e:
        print(f"获取弹幕失败: {e}")
        return None

# 使用示例
if __name__ == "__main__":
    # 测试B站
    get_danmaku_by_url("https://www.bilibili.com/video/BV1xx411c7mu")

    # 测试ID模式
    get_danmaku_by_id("BV1xx411c7mu")