万邦抖音获得抖音直播间弹幕 API 返回值说明

item_video_barrage-获得抖音直播间弹幕 [查看演示] API测试工具 注册开通

douyin.item_video_barrage

公共参数

请求地址: https://api-gw.onebound.cn/douyin/item_video_barrage

名称 类型 必须 描述
keyString调用key(必须以GET方式拼接在URL中)
secretString调用密钥
api_nameStringAPI接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]
cacheString[yes,no]默认yes,将调用缓存的数据,速度比较快
result_typeString[json,jsonu,xml,serialize,var_export]返回数据格式,默认为json,jsonu输出的内容中文可以直接阅读
langString[cn,en,ru]翻译语言,默认cn简体中文
versionStringAPI版本
请求参数

请求参数:live_id=628361382333&mode=start&task_id=

参数说明:live_id:抖音直播间ID
mode: 模式(start建立连接,refresh获取弹幕,end断开连接)
task_id:连接ID(start建立连接后返回)

响应参数

Version: Date:

名称 类型 必须 示例值 描述
item
item[] 0 直播间弹幕数据
请求示例
	
-- 请求示例 url 默认请求参数已经URL编码处理
curl -i "https://api-gw.onebound.cn/douyin/item_video_barrage/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&live_id=628361382333&mode=start&task_id="
<?php

// 请求示例 url 默认请求参数已经URL编码处理
// 本示例代码未加密secret参数明文传输,若要加密请参考:https://open.onebound.cn/help/demo/sdk/demo-sign.php
$method = "GET";
$url = "https://api-gw.onebound.cn/douyin/item_video_barrage/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&live_id=628361382333&mode=start&task_id=";
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_ENCODING, "gzip");
var_dump(curl_exec($curl));
?>
<?php
//定义缓存目录和引入文件
define("DIR_RUNTIME","runtime/");
define("DIR_ERROR","runtime/");
define("SECACHE_SIZE","0");
//SDK下载地址 https://open.onebound.cn/help/demo/sdk/onebound-api-sdk.zip
include ("ObApiClient.php");

$obapi = new otao\ObApiClient();
$obapi->api_url = "http://api-gw.onebound.cn/";
$obapi->api_urls = array("http://api-gw.onebound.cn/","http://api-1.onebound.cn/");//备用API服务器
$obapi->api_urls_on = true;//当网络错误时,是否启用备用API服务器
$obapi->api_key = "<您自己的apiKey>";
$obapi->api_secret = "<您自己的apiSecret>";
$obapi->api_version ="";
$obapi->secache_path ="runtime/";
$obapi->secache_time ="86400";
$obapi->cache = true;

$api_data = $obapi->exec(
                array(
	                "api_type" =>"douyin",
	                "api_name" =>"item_video_barrage",
	                "api_params"=>array (
  'live_id' => '628361382333',
  'mode' => 'start',
  'task_id' => '',
)
                )
            );
 var_dump($api_data);
?>
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.nio.charset.Charset;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.PrintWriter;
import java.net.URLConnection;

public class Example {
	private static String readAll(Reader rd) throws IOException {
		StringBuilder sb = new StringBuilder();
		int cp;
		while ((cp = rd.read()) != -1) {
			sb.append((char) cp);
		}
		return  sb.toString();
	}
	public static JSONObject postRequestFromUrl(String url, String body) throws IOException, JSONException {
		URL realUrl = new URL(url);
		URLConnection conn = realUrl.openConnection();
		conn.setDoOutput(true);
		conn.setDoInput(true);
		PrintWriter out = new PrintWriter(conn.getOutputStream());
		out.print(body);
		out.flush();
		InputStream instream = conn.getInputStream();
		try {
			BufferedReader rd = new BufferedReader(new InputStreamReader(instream, Charset.forName("UTF-8")));
			String jsonText = readAll(rd);
			JSONObject json = new JSONObject(jsonText);
			return json;
		} finally {
			instream.close();
		}
	}
	public static JSONObject getRequestFromUrl(String url) throws IOException, JSONException {
		URL realUrl = new URL(url);
		URLConnection conn = realUrl.openConnection();
		InputStream instream = conn.getInputStream();
		try {
			BufferedReader rd = new BufferedReader(new InputStreamReader(instream, Charset.forName("UTF-8")));
			String jsonText = readAll(rd);
			JSONObject json = new JSONObject(jsonText);
			return json;
		} finally {
			instream.close();
		}
	}
	public static void main(String[] args) throws IOException, JSONException {
		// 请求示例 url 默认请求参数已经URL编码处理
		String url = "https://api-gw.onebound.cn/douyin/item_video_barrage/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&live_id=628361382333&mode=start&task_id=";
		JSONObject json = getRequestFromUrl(url);
		System.out.println(json.toString());
	}

}
//using System.Net.Security;
//using System.Security.Cryptography.X509Certificates;
private const String method = "GET";
static void Main(string[] args)
{
	String bodys = "";
	// 请求示例 url 默认请求参数已经做URL编码
	String url = "https://api-gw.onebound.cn/douyin/item_video_barrage/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&live_id=628361382333&mode=start&task_id=";
	HttpWebRequest httpRequest = null;
	HttpWebResponse httpResponse = null; 
	if (url.Contains("https://"))
	{
		ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
		httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
	}
	else
	{
		httpRequest = (HttpWebRequest)WebRequest.Create(url);
	}
	httpRequest.Method = method;
	if (0 < bodys.Length)
	{
		byte[] data = Encoding.UTF8.GetBytes(bodys);
		using (Stream stream = httpRequest.GetRequestStream())
		{
		stream.Write(data, 0, data.Length);
		}
	}
	try
	{
		httpResponse = (HttpWebResponse)httpRequest.GetResponse();
	}
	catch (WebException ex)
	{
		httpResponse = (HttpWebResponse)ex.Response;
	}
	Console.WriteLine(httpResponse.StatusCode);
	Console.WriteLine(httpResponse.Method);
	Console.WriteLine(httpResponse.Headers);
	Stream st = httpResponse.GetResponseStream();
	StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
	Console.WriteLine(reader.ReadToEnd());
	Console.WriteLine("\n");
}
public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{
	return true;
}
# coding:utf-8
"""
Compatible for python2.x and python3.x
requirement: pip install requests
"""
from __future__ import print_function
import requests
# 请求示例 url 默认请求参数已经做URL编码
url = "https://api-gw.onebound.cn/douyin/item_video_barrage/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&live_id=628361382333&mode=start&task_id="
headers = {
    "Accept-Encoding": "gzip",
    "Connection": "close"
}
if __name__ == "__main__":
    r = requests.get(url, headers=headers)
    json_obj = r.json()
    print(json_obj)
url := fmt.Sprintf("https://api-gw.onebound.cn/douyin/item_video_barrage/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&live_id=628361382333&mode=start&task_id=", params)
req, err := http.NewRequest("GET", url, nil)
if err != nil {
    panic(err)
}
req.Header.Set("Authorization", apiKey)

client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
    panic(err)
}
defer resp.Body.Close()

body, err := ioutil.ReadAll(resp.Body)
if err != nil {
    panic(err)
}

fmt.Println(string(body))
fetch('https://api-gw.onebound.cn/douyin/item_video_barrage/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({"live_id":"628361382333","mode":"start","task_id":""})// request parameters here
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
<script src="js/obapi.js"></script>
<script type="text/javascript">
obAPI.config({
    debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
    api_url: "https://api-gw.onebound.cn", // 
    api_key: "<您自己的apiKey>", // 必填,
    api_secret: "<您自己的apiSecret>", //
    lang: "cn", // 
    timestamp: "", // 必填,生成签名的时间戳
    nonceStr: "", // 必填,生成签名的随机串
    signature: "",// 必填,签名
    jsApiList: [] // 必填,需要使用的JS接口列表
});
</script>
<div id="api_data_box"></div>
<script type="text/javascript">
obAPI.exec(
     {
     "api_type":"douyin",
     "api_name" : "item_video_barrage",
     "api_params": {"live_id":"628361382333","mode":"start","task_id":""}//live_id=628361382333&mode=start&task_id=,#具体参数请参考文档说明
     },
     function(e){
        document.querySelector("#api_data_box").innerHTML=JSON.stringify(e)
     }
);
</script>
require "net/http"
require "uri"
url = URI("https://api-gw.onebound.cn/douyin/item_video_barrage/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&live_id=628361382333&mode=start&task_id=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body 
import Foundation
 
let url = URL(string: "https://api-gw.onebound.cn/douyin/item_video_barrage/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&live_id=628361382333&mode=start&task_id=")!
let task = URLSession.shared.dataTask(with: url) { data, response, error in
    guard let data = data else {
        print("Error: No data was returned")
        return
    }
     
    if let data = String(data: data, encoding: .utf8) {
        print(data)
    }
}
task.resume()
NSURL *myUrl = [NSURL URLWithString:@"https://api-gw.onebound.cn/douyin/item_video_barrage/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&live_id=628361382333&mode=start&task_id="];

NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:myUrl cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60.0];

[request setHTTPMethod:@"GET"];
NSError *error;
NSURLResponse *response;

NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",result);
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
#include<curl/curl.h>

int main(){
  CURL *curl;  
  CURLcode res;   
  struct curl_slist *headers=NULL; 

  char url[] = "https://api-gw.onebound.cn/douyin/item_video_barrage/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&live_id=628361382333&mode=start&task_id=";
  curl_global_init(CURL_GLOBAL_ALL); 
  curl = curl_easy_init(); 

  if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL,url);
    headers = curl_slist_append(headers, "Content-Type: application/json"); 

    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); 
    res = curl_easy_perform(curl);

    if(res != CURLE_OK){
      printf("curl_easy_perform(): %s\n",curl_easy_strerror(res));                     
    }
    curl_easy_cleanup(curl);          
  }
  curl_global_cleanup();
  return 0;
}
#include<iostream>
#include<string>
#include<curl/curl.h>

using namespace std;

static size_t Data(void *ptr, size_t size, size_t nmemb, string *stream)
{
    std::size_t realSize = size *nmemb;
    auto *realPtr = reinterpret_cast<char *>(ptr);

    for (std::size_t i=0;i<realSize;++i) {
        *(stream) += *(realPtr + i);
    }

    return realSize;
}

int main(){

     CURL *curl;
     CURLcode result;
     string readBuffer;
     curl = curl_easy_init();

     if(curl) {

         curl_easy_setopt(curl, CURLOPT_URL, "https://api-gw.onebound.cn/douyin/item_video_barrage/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&live_id=628361382333&mode=start&task_id=");
         curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
         curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, Data);
         curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);

         result = curl_easy_perform(curl);

         if(result == CURLE_OK) {
             cout<<readBuffer<<endl;
         }else{
             cerr<<"curl_easy error:"<<curl_easy_strerror(result)<<endl;
         }

         curl_easy_cleanup(curl);
     }
     return 0;
}
const https = require("https");

https.get("https://api-gw.onebound.cn/douyin/item_video_barrage/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&live_id=628361382333&mode=start&task_id=", (resp) => {
  let data = "";

  resp.on("data", (chunk) => {
    data += chunk;
  });

  resp.on("end", () => {
    console.log(data);
  });
}).on("error", (err) => {
  console.log("Error: " + err.message);
});
import java.net.HttpURLConnection
import java.net.URL

fun main() {
    val url = URL("https://api-gw.onebound.cn/douyin/item_video_barrage/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&live_id=628361382333&mode=start&task_id=")
    val con = url.openConnection() as HttpURLConnection
    con.requestMethod = "GET"

    val responseCode = con.responseCode
    if (responseCode == HttpURLConnection.HTTP_OK) { // success
        val inputLine = con.inputStream.bufferedReader().use { it.readText() }
        println(inputLine)
    } else {
        println("GET request failed")
    }
}
use std::io::{self, Read};
use reqwest;

fn main() -> io::Result<()> {

    let mut resp = reqwest::get("https://api-gw.onebound.cn/douyin/item_video_barrage/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&live_id=628361382333&mode=start&task_id=")?;
    let mut content = String::new();
    resp.read_to_string(&mut content)?;

    println!("{}", content);

    Ok(())
}

library(httr)
r <- GET("https://api-gw.onebound.cn/douyin/item_video_barrage/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&live_id=628361382333&mode=start&task_id=")
content(r)
url = "https://api-gw.onebound.cn/douyin/item_video_barrage/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&live_id=628361382333&mode=start&task_id=";
response = webread(url);
disp(response);
响应示例
{
        "item": {
        "code": 0,
        "live_id": "62547745723",
        "massage": "连接正常",
        "msg_list": [
        "【2024-08-01 17:56:53】【直播间统计msg】9471在线观众",
        "【2024-08-01 17:56:53】【点赞msg】随遇而安 点了1个赞",
        "【2024-08-01 17:56:53】【点赞msg】锦念 点了10个赞",
        "【2024-08-01 17:56:53】【进场msg】[306101371802387][女]大满贯 进入了直播间",
        "【2024-08-01 17:56:53】【进场msg】[82389738845][男]超 进入了直播间",
        "【2024-08-01 17:56:53】【礼物msg】有约 送出了 加油鸭x1",
        "【2024-08-01 17:56:53】【点赞msg】无 点了10个赞",
        "【2024-08-01 17:56:54】【礼物msg】望捷严选 送出了 入团卡x1",
        "【2024-08-01 17:56:54】【聊天msg】[3711549235274791]牧阳🌴人: 左上角手机一部关注前榜五",
        "【2024-08-01 17:56:54】【点赞msg】春侠晚上7..10点开播 点了3个赞",
        "【2024-08-01 17:56:54】【进场msg】[95196355839][男]该用户身份不明 进入了直播间",
        "【2024-08-01 17:56:54】【进场msg】[107693792356][男]天泽 进入了直播间",
        "【2024-08-01 17:56:54】【进场msg】[69980607939][女]随机应变 进入了直播间",
        "【2024-08-01 17:56:54】【统计msg】当前观看人数: 9497, 累计观看人数: 53.6万",
        "【2024-08-01 17:56:54】【直播间统计msg】9462在线观众",
        "【2024-08-01 17:56:54】【聊天msg】[1238481112413840]幸运🌟: 鱼越来越少不好抓",
        "【2024-08-01 17:56:55】【聊天msg】[103132711097]老五: 空间太大,鱼太少",
        "【2024-08-01 17:56:55】【聊天msg】[92944529398]仰望星空666666: 不可抓到6个",
        "【2024-08-01 17:56:55】【进场msg】[2632696949379379][女]狼之道2 进入了直播间",
        "【2024-08-01 17:56:55】【点赞msg】锦念 点了10个赞",
        "【2024-08-01 17:56:55】【进场msg】[817669106313214][女]用户7925271982209 进入了直播间",
        "【2024-08-01 17:56:55】【进场msg】[2057935432712392][女]用户94992960 进入了直播间",
        "【2024-08-01 17:56:55】【礼物msg】幸运草(>﹏<) 送出了 点亮粉丝团x1",
        "【2024-08-01 17:56:55】【点赞msg】无 点了9个赞",
        "【2024-08-01 17:56:55】【聊天msg】[104989448880]Qi静: 鱼比人賊",
        "【2024-08-01 17:56:56】【直播间统计msg】9475在线观众",
        "【2024-08-01 17:56:56】【点赞msg】春侠晚上7..10点开播 点了2个赞",
        "【2024-08-01 17:56:56】【点赞msg】小秦• 点了10个赞",
        "【2024-08-01 17:56:56】【礼物msg】向阳花✌ 送出了 小心心x1",
        "【2024-08-01 17:56:56】【聊天msg】[65986373428]🎣鲫情无限🎣: 左上角手机一部关注前榜五",
        "【2024-08-01 17:56:56】【进场msg】[65862985118][女]小燕子 进入了直播间",
        "【2024-08-01 17:56:56】【进场msg】[4339106188639691][女]用户8243802083938 进入了直播间",
        "【2024-08-01 17:56:56】【统计msg】当前观看人数: 9488, 累计观看人数: 53.5万",
        "【2024-08-01 17:56:56】【直播间统计msg】9454在线观众",
        "【2024-08-01 17:56:57】【点赞msg】锦念 点了11个赞",
        "【2024-08-01 17:56:57】【关注msg】[53096256550]时光静好 关注了主播",
        "【2024-08-01 17:56:57】【聊天msg】[588962885801244]孙家煎饼店: 忽悠人的,面积太大",
        "【2024-08-01 17:56:57】【进场msg】[65354456294][男]热心市民·刘先生 ╲ 进入了直播间",
        "【2024-08-01 17:56:57】【进场msg】[66426459842][女]相约 进入了直播间",
        "【2024-08-01 17:56:57】【点赞msg】555 点了1个赞",
        "【2024-08-01 17:56:57】【关注msg】[2255850643654900]一切随风 关注了主播",
        "【2024-08-01 17:56:58】【点赞msg】春侠晚上7..10点开播 点了7个赞",
        "【2024-08-01 17:56:58】【点赞msg】无 点了7个赞",
        "【2024-08-01 17:56:58】【点赞msg】小秦• 点了10个赞",
        "【2024-08-01 17:56:58】【聊天msg】[97076478046]🌈军无戏言⁽⁹⁰⁸⁸⁾: 点赞赞啦[比心]点赞赞啦点赞赞啦[比心]点赞赞啦点赞赞啦[比心]点赞赞啦点赞赞啦[比心]点赞赞啦",
        "【2024-08-01 17:56:58】【聊天msg】[558988382453470]让梦飞翔: 一个也抓不着",
        "【2024-08-01 17:56:58】【进场msg】[2968275295941912][男]柚柚 进入了直播间",
        "【2024-08-01 17:56:58】【统计msg】当前观看人数: 9480, 累计观看人数: 53.6万",
        "【2024-08-01 17:56:58】【进场msg】[102139745069][男]ZY~骆 进入了直播间",
        "【2024-08-01 17:56:58】【进场msg】[96060729885][男]四川人在新疆 进入了直播间",
        "【2024-08-01 17:56:58】【进场msg】[4314118070740887][男]肥仔南 进入了直播间",
        "【2024-08-01 17:56:58】【点赞msg】胡永兰 点了1个赞",
        "【2024-08-01 17:56:58】【礼物msg】向阳花✌ 送出了 小心心x1",
        "【2024-08-01 17:56:58】【礼物msg】迎*星 送出了 点亮粉丝团x1",
        "【2024-08-01 17:56:59】【直播间统计msg】9387在线观众",
        "【2024-08-01 17:56:59】【进场msg】[4309704838746951][男]家华⁾🌈 进入了直播间",
        "【2024-08-01 17:56:59】【点赞msg】锦念 点了11个赞",
        "【2024-08-01 17:56:59】【进场msg】[1138735050138692][男]老虎图文 进入了直播间",
        "【2024-08-01 17:56:59】【点赞msg】无 点了8个赞"
        ],
        "task_id": "de17892c414665d7c16f98f73a78d309",
        "_ddf": "alex"
        },
        "error": "",
        "reason": "",
        "error_code": "0000",
        "cache": 0,
        "api_info": "today: max:15000 all[=++];expires:2031-01-01",
        "execution_time": "0.12",
        "server_time": "Beijing/2024-08-01 17:56:45",
        "client_ip": "127.0.0.1",
        "call_args": [ ],
        "api_type": "douyin",
        "server_memory": "3.15MB",
        "last_id": false
        }
异常示例
{
  "error": "live-not-found",
  "reason": "直播间没找到",
  "error_code": "2000",
  "success": 0,
  "cache": 0,
  "api_info": "today:0 max:10000",
  "execution_time": 0.081,
  "server_time": "Beijing/2020-06-10 23:44:00",
  "call_args": [],
  "api_type": "douyin",
  "request_id": "1ee0ffc041242"}
相关资料
错误码解释
状态代码(error_code) 状态信息 详细描述 是否收费
0000success接口调用成功并返回相关数据
2000Search success but no result接口访问成功,但是搜索没有结果
4000Server internal error服务器内部错误
4001Network error网络错误
4002Target server error目标服务器错误
4003Param error用户输入参数错误忽略
4004Account not found用户帐号不存在忽略
4005Invalid authentication credentials授权失败忽略
4006API stopped您的当前API已停用忽略
4007Account stopped您的账户已停用忽略
4008API rate limit exceeded并发已达上限忽略
4009API maintenanceAPI维护中忽略
4010API not found with these valuesAPI不存在忽略
4012Please add api first请先添加api忽略
4013Number of calls exceeded调用次数超限忽略
4014Missing url param参数缺失忽略
4015Wrong pageToken参数pageToken有误忽略
4016Insufficient balance余额不足忽略
4017timeout error请求超时
5000unknown error未知错误
API 工具
如何获得此API
立即开通 有疑问联系客服QQ:QQ:31424016063142401606(微信同号)