b站链接解析工具
获取b站视频详细数据,返回全部数据,视频画质最高支持4K/1080P+ 高码率
API接口稳定可用 · 支持高并发请求
总调用次数: 加载中...
API接口信息
接口地址
https://www.yutangxiaowu.cn:3008/api/combinedVideo
请求方法
GET
请求参数
| 参数名 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| bvid | string | 必填 | b站视频BV号(与url二选一) |
| url | string | 必填 | b站视频URL(与bvid二选一) |
响应格式
JSON
响应参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| 基础响应参数 | - | API通用响应参数 |
| code | integer | 状态码,0表示成功,非0表示失败 |
| message | string | 状态信息描述 |
| ttl | integer | 数据缓存时间,单位秒 |
| data | object | 响应数据主体 |
| 视频基本信息 | - | 视频的基本元数据信息 |
| aid | integer | 视频av号 |
| bvid | string | 视频bv号 |
| title | string | 视频标题 |
| pic | string | 视频封面URL |
| pubdate | integer | 发布时间,时间戳 |
| ctime | integer | 创建时间,时间戳 |
| desc | string | 视频描述 |
| state | integer | 视频状态(1=公开,0=私有等) |
| duration | integer | 总时长,单位秒 |
| videos | integer | 分P数量 |
| copyright | integer | 版权类型(1=原创,2=转载) |
| rights | object | 视频权限信息 |
| owner | object | UP主信息 |
| stat | object | 视频统计信息 |
| dynamic | string | 视频动态信息 |
| cid | integer | 首P的cid |
| pages | array | 分P信息列表 |
| dimension | object | 视频尺寸信息 |
| short_link | string | 视频短链接 |
| 分P信息 | - | 视频分P的详细信息 |
| cid | integer | 分P的cid |
| page | integer | 分P序号 |
| part | string | 分P标题 |
| duration | integer | 分P时长,单位秒 |
| dimension | object | 分P视频尺寸 |
| 权限信息 | - | 视频的权限设置信息 |
| download | integer | 是否允许下载(1=允许,0=禁止) |
| movie | integer | 是否为电影(1=是,0=否) |
| pay | integer | 是否为付费视频(1=是,0=否) |
| hd5 | integer | 是否支持HD5(1=支持,0=不支持) |
| no_reprint | integer | 是否禁止转载(1=禁止,0=允许) |
| autoplay | integer | 是否允许自动播放(1=允许,0=禁止) |
| 尺寸信息 | - | 视频的宽高尺寸信息 |
| width | integer | 视频宽度 |
| height | integer | 视频高度 |
| rotate | integer | 旋转角度(0/90/180/270) |
| UP主信息 | - | 视频作者相关信息 |
| mid | integer | UP主id |
| name | string | UP主昵称 |
| face | string | UP主头像URL |
| 视频数据 | - | 视频数据统计信息 |
| view | integer | 播放量 |
| danmaku | integer | 弹幕数 |
| reply | integer | 评论数 |
| favorite | integer | 收藏数 |
| coin | integer | 硬币数 |
| share | integer | 分享数 |
| like | integer | 点赞数 |
| his_rank | integer | 历史最高排名 |
| now_rank | integer | 当前排名(0表示无排名) |
| data.durl[0].url | url | 视频播放地址(4K/1080P+ 高码率) |
| dislike | integer | 点踩数(通常为0,不公开显示) |
| 视频流信息 | - | 视频播放地址及格式信息 |
| dash | object | DASH格式视频流信息 |
| durl | array | FLV格式视频分段信息 |
| quality | integer | 视频质量等级(16=360P, 32=480P, 64=720P, 74=720P60, 128=1080P, 112=1080P+, 116=1080P60) |
| format | string | 视频格式 |
| accept_format | string | 支持的视频格式,逗号分隔 |
| accept_quality | array | 支持的视频质量等级列表 |
| timelength | integer | 视频时长,单位毫秒 |
| DASH流信息 | - | 分离的音视频流信息 |
| video | array | 视频流信息列表 |
| audio | array | 音频流信息列表 |
| min_buffer_time | number | 最小缓冲时间 |
| segment_base | object | 分段基础信息 |
| 音视频流详情 | - | 视频/音频流的详细信息 |
| id | integer | 流ID |
| base_url | string | 基础视频URL |
| url | string | 完整视频URL(带签名) |
| backup_url | array | 备用视频URL列表 |
| bandwidth | integer | 带宽 |
| width | integer | 视频宽度(仅视频流) |
| height | integer | 视频高度(仅视频流) |
| frame_rate | string | 帧率(仅视频流) |
| codecs | string | 编码格式 |
| size | integer | 文件大小,单位字节 |
| mimeType | string | MIME类型 |
| sampling_rate | string | 采样率(仅音频流) |
| FLV流分段信息 | - | FLV格式视频的分段信息 |
| order | integer | 分段序号 |
| length | integer | 分段时长,单位毫秒 |
| size | integer | 分段大小,单位字节 |
| url | string | 分段视频URL |
| backup_url | array | 分段备用URL列表 |
代码示例
JavaScript (Axios)
const axios = require('axios');
const url = 'https://www.yutangxiaowu.cn:3008/api/combinedVideo';
axios.get(url, {
params: {
bvid: 'BV1guCHYbEHG'
}
})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('请求失败:', error.message);
});
JavaScript (Fetch)
const apiUrl = 'https://www.yutangxiaowu.cn:3008/api/combinedVideo';
const bvid = 'BV1guCHYbEHG';
fetch(`${apiUrl}?bvid=${encodeURIComponent(bvid)}`)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('请求失败:', error));
Python
import requests
api_url = 'https://www.yutangxiaowu.cn:3008/api/combinedVideo'
params = {
'bvid': 'BV1guCHYbEHG'
}
response = requests.get(api_url, params=params)
print(response.json())
PHP
$apiUrl = 'https://www.yutangxiaowu.cn:3008/api/combinedVideo';
$bvid = 'BV1guCHYbEHG';
$url = $apiUrl . '?bvid=' . urlencode($bvid);
$response = file_get_contents($url);
$data = json_decode($response, true);
print_r($data);
Java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
public class DouyinApi {
public static void main(String[] args) throws Exception {
String apiUrl = "https://www.yutangxiaowu.cn:3008/api/combinedVideo";
String bvid = "BV1guCHYbEHG";
String encodedUrl = URLEncoder.encode(bvid, StandardCharsets.UTF_8);
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(apiUrl + "?bvid=" + encodedUrl))
.build();
client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
.thenApply(HttpResponse::body)
.thenAccept(System.out::println)
.join();
}
}
C#
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program {
static async Task Main() {
string apiUrl = "https://www.yutangxiaowu.cn:3008/api/combinedVideo";
string bvid = "BV1guCHYbEHG";
using var client = new HttpClient();
string encodedUrl = Uri.EscapeDataString(bvid);
string response = await client.GetStringAsync(
$"{apiUrl}?bvid={encodedUrl}"
);
Console.WriteLine(response);
}
}
Ruby
require 'net/http'
require 'uri'
require 'json'
api_url = 'https://www.yutangxiaowu.cn:3008/api/combinedVideo'
bvid = 'BV1guCHYbEHG'
uri = URI.parse(api_url)
params = { bvid: bvid }
uri.query = URI.encode_www_form(params)
response = Net::HTTP.get_response(uri)
data = JSON.parse(response.body)
puts data
Go
package main
import (
"fmt"
"net/http"
"net/url"
"io/ioutil"
)
func main() {
apiUrl := "https://www.yutangxiaowu.cn:3008/api/combinedVideo"
bvid := "BV1guCHYbEHG"
params := url.Values{}
params.Add("bvid", bvid)
resp, err := http.Get(apiUrl + "?" + params.Encode())
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
Swift
import Foundation
let apiUrl = "https://www.yutangxiaowu.cn:3008/api/combinedVideo"
let bvid = "BV1guCHYbEHG"
if let encodedUrl = bvid.addingPercentEncoding(
withAllowedCharacters: .urlQueryAllowed
) {
let urlString = "\(apiUrl)?bvid=\(encodedUrl)"
if let url = URL(string: urlString) {
let task = URLSession.shared.dataTask(with: url) {
data, response, error in
if let data = data {
print(String(data: data, encoding: .utf8)!)
}
}
task.resume()
}
}
Kotlin
import java.net.URLEncoder
import java.net.URL
fun main() {
val apiUrl = "https://www.yutangxiaowu.cn:3008/api/combinedVideo"
val bvid = "BV1guCHYbEHG"
val encodedUrl = URLEncoder.encode(bvid, "UTF-8")
val url = URL("$apiUrl?bvid=$encodedUrl")
val response = url.readText()
println(response)
}