Bilibili视频解析API文档

正在加载问候语...

API概述

本API提供Bilibili视频解析服务,能够获取视频基本信息、播放地址及UP主信息。

图片[1]-Bilibili视频解析API文档

接口地址

GET https://short-video.joyb.cc/api/bilibili.php

请求参数

参数名必选类型说明
urlstringBilibili视频的分享地址

请求示例

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"
    }
}

字段说明

字段类型说明
codeint状态码:1-成功,其他-失败
msgstring状态信息
titlestring视频标题
imgurlstring视频封面图URL
descstring视频描述
dataarray视频数据数组
data[0].titlestring视频分P标题
data[0].durationint视频时长(秒)
data[0].durationFormatstring格式化后的视频时长(HH:MM:SS)
data[0].acceptarray支持的清晰度列表
data[0].video_urlstring视频播放地址
user.namestringUP主名称
user.user_imgstringUP主头像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']);
}
?>

开发注意事项

  1. 视频地址有效期:返回的视频URL通常有有效期限制,建议及时使用
  2. 清晰度选择:当前API返回的是默认清晰度(如360P),暂不支持选择
  3. 错误处理:请始终检查code字段,不为1时表示解析失败
  4. 频率限制:避免高频请求,建议合理使用缓存
  5. HTTPS支持:所有URL均支持HTTPS协议

常见问题解答

Q: 为什么有时视频地址无法播放?

A: Bilibili的视频地址通常有有效期限制,可能过期失效。解决方案是重新调用API获取最新地址。󠄐󠄹󠅀󠄪󠄡󠄨󠄞󠄩󠄧󠄞󠄡󠄤󠄞󠄨󠄦󠄬󠅒󠅢󠄟󠄮󠄐󠅅󠄹󠄴󠄪󠄾󠅟󠅤󠄐󠄼󠅟󠅗󠅙󠅞󠄬󠅒󠅢󠄟󠄮󠅄󠅙󠅝󠅕󠄪󠄡󠄧󠄥󠄠󠄠󠄧󠄧󠄨󠄣󠄦󠄬󠅒󠅢󠄟󠄮󠇕󠆬󠅰󠇕󠆯󠅳󠇕󠆞󠆍󠄐󠇗󠅹󠅸󠇖󠆍󠅳󠇖󠅹󠅰󠇖󠆌󠅹󠄬󠅒󠅢󠄟󠄮

Q: 如何获取更高清的视频?

A: 当前API返回的是默认清晰度(通常为360P)。如需更高清晰度,可以尝试解析返回的accept数组中列出的其他清晰度(如有)。【我没有陪在cookis,所以无法解析1080p以上的视频】

Q: 是否支持多P视频?

A: 是的,data字段是一个数组,包含视频的所有分P信息。目前示例中只有一个分P。

Q: 视频地址是否可以永久保存?

A: 不建议,Bilibili的视频地址通常会在一段时间后失效,建议在需要时实时获取。󠄐󠄹󠅀󠄪󠄡󠄨󠄞󠄩󠄧󠄞󠄡󠄤󠄞󠄨󠄦󠄬󠅒󠅢󠄟󠄮󠄐󠅅󠄹󠄴󠄪󠄾󠅟󠅤󠄐󠄼󠅟󠅗󠅙󠅞󠄬󠅒󠅢󠄟󠄮󠅄󠅙󠅝󠅕󠄪󠄡󠄧󠄥󠄠󠄠󠄧󠄧󠄨󠄣󠄦󠄬󠅒󠅢󠄟󠄮󠇕󠆬󠅰󠇕󠆯󠅳󠇕󠆞󠆍󠄐󠇗󠅹󠅸󠇖󠆍󠅳󠇖󠅹󠅰󠇖󠆌󠅹󠄬󠅒󠅢󠄟󠄮

󠄐󠄹󠅀󠄪󠄡󠄨󠄞󠄩󠄧󠄞󠄡󠄤󠄞󠄨󠄦󠄬󠅒󠅢󠄟󠄮󠄐󠅅󠄹󠄴󠄪󠄾󠅟󠅤󠄐󠄼󠅟󠅗󠅙󠅞󠄬󠅒󠅢󠄟󠄮󠅄󠅙󠅝󠅕󠄪󠄡󠄧󠄥󠄠󠄠󠄧󠄧󠄨󠄣󠄦󠄬󠅒󠅢󠄟󠄮󠇕󠆬󠅰󠇕󠆯󠅳󠇕󠆞󠆍󠄐󠇗󠅹󠅸󠇖󠆍󠅳󠇖󠅹󠅰󠇖󠆌󠅹󠄬󠅒󠅢󠄟󠄮

© 版权声明
THE END
喜欢就支持一下吧
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容