API概述
本API提供Bilibili视频解析服务,能够获取视频基本信息、播放地址及UP主信息。
![图片[1]-Bilibili视频解析API文档](https://joyb.cc/wp-content/uploads/2025/05/20250513054141555-Bilibili-视频解析-API-开发与使用成功解析效果-1024x233.webp)
接口地址
GET https://short-video.joyb.cc/api/bilibili.php
请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
url | 是 | string | Bilibili视频的分享地址 |
请求示例
curl "https://short-video.joyb.cc/api/bilibili.php?url=https://www.bilibili.com/video/BV1XHGYz8EXN/"
响应数据结构
成功响应示例
{
"code": 1,
"msg": "解析成功!",
"title": "谁的DNA又动了!这次是真的爷青回了……《月光》女声版",
"imgurl": "http://i0.hdslb.com/bfs/archive/99f3a7e13891df109d0e09a00b09a239e38bc711.jpg",
"desc": "月光\n词:林文炫\n曲:胡彦斌\n原唱:胡彦斌\n翻唱:真栗\n混音:酸奶茉",
"data": [
{
"title": "谁的DNA又动了!这次是真的爷青回了……《月光》",
"duration": 266,
"durationFormat": "00:04:25",
"accept": [
"流畅 360P"
],
"video_url": "https://upos-sz-mirrorhw.bilivideo.com/upgcxcode/61/11/29725101161/29725101161-1-16.mp4?..."
}
],
"user": {
"name": "真栗",
"user_img": "https://i2.hdslb.com/bfs/face/fc1e5aeeeb29c661c4f665cb089f2939c9b159c7.jpg"
}
}
字段说明
字段 | 类型 | 说明 |
---|---|---|
code | int | 状态码:1-成功,其他-失败 |
msg | string | 状态信息 |
title | string | 视频标题 |
imgurl | string | 视频封面图URL |
desc | string | 视频描述 |
data | array | 视频数据数组 |
data[0].title | string | 视频分P标题 |
data[0].duration | int | 视频时长(秒) |
data[0].durationFormat | string | 格式化后的视频时长(HH:MM:SS) |
data[0].accept | array | 支持的清晰度列表 |
data[0].video_url | string | 视频播放地址 |
user.name | string | UP主名称 |
user.user_img | string | UP主头像URL |
使用教程
1. 基本调用
const apiUrl = 'https://short-video.joyb.cc/api/bilibili.php?url=' +
encodeURIComponent('https://www.bilibili.com/video/BV1XHGYz8EXN/');
fetch(apiUrl)
.then(response => response.json())
.then(data => {
if(data.code === 1) {
console.log('视频标题:', data.title);
console.log('UP主:', data.user.name);
console.log('视频地址:', data.data[0].video_url);
} else {
console.error('解析失败:', data.msg);
}
})
.catch(error => console.error('请求出错:', error));
2. 前端展示视频
<div class="video-card">
<img id="video-cover" src="" alt="视频封面">
<h3 id="video-title"></h3>
<p id="video-author"></p>
<video id="video-player" controls width="100%"></video>
<p id="video-desc"></p>
</div>
<script>
const biliUrl = 'https://www.bilibili.com/video/BV1XHGYz8EXN/';
const apiUrl = `https://short-video.joyb.cc/api/bilibili.php?url=${encodeURIComponent(biliUrl)}`;
fetch(apiUrl)
.then(response => response.json())
.then(data => {
if(data.code === 1) {
document.getElementById('video-title').textContent = data.title;
document.getElementById('video-cover').src = data.imgurl;
document.getElementById('video-author').textContent = `UP主: ${data.user.name}`;
document.getElementById('video-player').src = data.data[0].video_url;
document.getElementById('video-player').poster = data.imgurl;
document.getElementById('video-desc').textContent = data.desc;
}
});
</script>
3. PHP后端调用示例
<?php
$bilibiliUrl = 'https://www.bilibili.com/video/BV1XHGYz8EXN/';
$apiUrl = 'https://short-video.joyb.cc/api/bilibili.php?url=' . urlencode($bilibiliUrl);
$response = file_get_contents($apiUrl);
$data = json_decode($response, true);
if ($data['code'] === 1) {
echo '<h1>' . htmlspecialchars($data['title']) . '</h1>';
echo '<img src="' . htmlspecialchars($data['imgurl']) . '" width="400">';
echo '<p>UP主: ' . htmlspecialchars($data['user']['name']) . '</p>';
echo '<video controls width="100%" src="' . htmlspecialchars($data['data'][0]['video_url']) . '"></video>';
echo '<p>' . nl2br(htmlspecialchars($data['desc'])) . '</p>';
} else {
echo '视频解析失败: ' . htmlspecialchars($data['msg']);
}
?>
开发注意事项
- 视频地址有效期:返回的视频URL通常有有效期限制,建议及时使用
- 清晰度选择:当前API返回的是默认清晰度(如360P),暂不支持选择
- 错误处理:请始终检查
code
字段,不为1时表示解析失败 - 频率限制:避免高频请求,建议合理使用缓存
- HTTPS支持:所有URL均支持HTTPS协议
常见问题解答
Q: 为什么有时视频地址无法播放?
A: Bilibili的视频地址通常有有效期限制,可能过期失效。解决方案是重新调用API获取最新地址。󠄐󠄹󠅀󠄪󠄡󠄨󠄞󠄩󠄧󠄞󠄡󠄤󠄞󠄨󠄦󠄬󠅒󠅢󠄟󠄮󠄐󠅅󠄹󠄴󠄪󠄾󠅟󠅤󠄐󠄼󠅟󠅗󠅙󠅞󠄬󠅒󠅢󠄟󠄮󠅄󠅙󠅝󠅕󠄪󠄡󠄧󠄥󠄠󠄠󠄧󠄧󠄨󠄣󠄦󠄬󠅒󠅢󠄟󠄮󠇕󠆬󠅰󠇕󠆯󠅳󠇕󠆞󠆍󠄐󠇗󠅹󠅸󠇖󠆍󠅳󠇖󠅹󠅰󠇖󠆌󠅹󠄬󠅒󠅢󠄟󠄮
Q: 如何获取更高清的视频?
A: 当前API返回的是默认清晰度(通常为360P)。如需更高清晰度,可以尝试解析返回的accept
数组中列出的其他清晰度(如有)。【我没有陪在cookis,所以无法解析1080p以上的视频】
Q: 是否支持多P视频?
A: 是的,data
字段是一个数组,包含视频的所有分P信息。目前示例中只有一个分P。
Q: 视频地址是否可以永久保存?
A: 不建议,Bilibili的视频地址通常会在一段时间后失效,建议在需要时实时获取。󠄐󠄹󠅀󠄪󠄡󠄨󠄞󠄩󠄧󠄞󠄡󠄤󠄞󠄨󠄦󠄬󠅒󠅢󠄟󠄮󠄐󠅅󠄹󠄴󠄪󠄾󠅟󠅤󠄐󠄼󠅟󠅗󠅙󠅞󠄬󠅒󠅢󠄟󠄮󠅄󠅙󠅝󠅕󠄪󠄡󠄧󠄥󠄠󠄠󠄧󠄧󠄨󠄣󠄦󠄬󠅒󠅢󠄟󠄮󠇕󠆬󠅰󠇕󠆯󠅳󠇕󠆞󠆍󠄐󠇗󠅹󠅸󠇖󠆍󠅳󠇖󠅹󠅰󠇖󠆌󠅹󠄬󠅒󠅢󠄟󠄮
󠄐󠄹󠅀󠄪󠄡󠄨󠄞󠄩󠄧󠄞󠄡󠄤󠄞󠄨󠄦󠄬󠅒󠅢󠄟󠄮󠄐󠅅󠄹󠄴󠄪󠄾󠅟󠅤󠄐󠄼󠅟󠅗󠅙󠅞󠄬󠅒󠅢󠄟󠄮󠅄󠅙󠅝󠅕󠄪󠄡󠄧󠄥󠄠󠄠󠄧󠄧󠄨󠄣󠄦󠄬󠅒󠅢󠄟󠄮󠇕󠆬󠅰󠇕󠆯󠅳󠇕󠆞󠆍󠄐󠇗󠅹󠅸󠇖󠆍󠅳󠇖󠅹󠅰󠇖󠆌󠅹󠄬󠅒󠅢󠄟󠄮© 版权声明
文章法典(文章版权声明)
- ◆ 领地名称:开心宝要塞(开心宝)
- ◆ 永久坐标:https://joyb.cc
- ◆ 部分知识来自冒险者笔记,仅供修习参考(本站文章部分内容来源于网络,仅供学习参考,如有侵权请联系站长删除)
- ◆ 资源配方不构成建造建议(本站资源不构成任何投资建议,仅代表个人观点)
- ◆ 发现危险物品请立即通知卫兵(严禁发布违法信息,访客发现请立即举报)
- ◆ 失效传送门请告知管理员更新(资源链接失效请联系我们,我们会及时更新)
THE END
暂无评论内容