bilibili-parse快速上手指南:三步搭起B站视频解析API,轻松获取播放地址
bilibili-parse快速上手指南三步搭起B站视频解析API轻松获取播放地址【免费下载链接】bilibili-parsebilibili Video API项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-parsebilibili-parse 是一个用 PHP 写成的 B站视频解析API 开源方案只需把它部署到任意支持 PHP 的服务器上就能把 av 号、bv 号甚至番剧 ep 号实时换算成可直接播放的视频地址。如果你正在做视频素材采集、网站视频集成或教学资源整理这篇指南会按部署、调参、集成、排错的顺序带你用最短路径把它跑通。先别急着找现成接口自己解析的三个理由很多同学的第一反应是去用现成的“解析站”。但它们通常有这些让人头疼的地方稳定性没保障站点说关就关域名说换就换你的业务随时被牵连。限制多有访问频率限制、有广告、有清晰度门槛体验不可控。不够灵活想要指定分 P、指定清晰度、指定输出格式人家不一定给你开这个口。自己部署一个解析服务就等于把控制权握在自己手里清晰度自己选、缓存自己配、接口随便调。更重要的是这套逻辑本身很值得学——理解了它你对视频站点如何鉴权、如何下发播放地址的机制也就有了底。bilibili-parse 能做什么先看清能力边界在动手之前先把这个工具的能力范围摸清楚识别四种编号av 号、bv 号、番剧 ep 号还支持直接用 cid。覆盖三类内容普通投稿video、番剧bangumi、课程cheese入口处用type参数切换。三种输出模式JSON 元数据、纯文本直链、DPlayer 播放页分别对应otypejson/url/dplayer。三种视频格式flv、dash、mp4满足不同的播放与转存需求。清晰度自动协商你请求一个值它自动落到“不超过该值”的最高可用档位。内置缓存文件缓存和 APCu 缓存两种后端重复请求直接命中。代码极其精简全部核心逻辑就在一个类文件 src/Bilibili.php 里读起来很轻松。起步准备环境、文件与权限官方要求不高满足下面两条就能跑PHP 版本 5.4 及以上。已启用 Curl 和 OpenSSL 扩展绝大多数 PHP 环境默认都带。拉下来的项目一共就几个文件作用一目了然index.php入口负责接收请求参数并转发结果。src/Bilibili.php核心解析类所有 API 逻辑都在这里。public/dplayer.html内置播放器测试页。public/readme.html无参数访问时展示的说明页。另外注意一点如果打算启用文件缓存需要让 PHP 有权限在项目根目录下的cache/cid/目录中写入文件。项目里已经预置了这个目录部署时确认一下它的可写权限即可。三步部署从空目录到返回 JSON第一步拉取代码git clone https://gitcode.com/gh_mirrors/bi/bilibili-parse cd bilibili-parse第二步放到可执行 PHP 的环境里如果你有现成的 Web 服务器Nginx PHP-FPM、Apache、宝塔面板等都行把整个目录放进站点根目录即可。如果只想本地快速验证一条命令就能起个临时服务php -S 0.0.0.0:8080第三步浏览器验证首次解析打开下面的地址这是一个经典的测试用 av 号http://127.0.0.1:8080/index.php?av14661594p1q64otypejson正常情况下会得到类似这样的 JSON{ code: 0, quality: 64, url: http://...bilivideo.com/upgcxcode/...flv?... }看到code为 0说明整条链路已经通了从请求到返回播放地址不过一步之遥。参数地图编号、清晰度、格式与类型这个工具的配置参数不多但每个都值得说清楚。按用途分成四组编号组选一个即可av老式编号例如av14661594。bv现行编号例如BV1xx411c7mD。ep番剧剧集编号配合typebangumi使用。cid内容 ID适合你已经知道 cid 的高级场景。播放组p分 P 集数默认 1用于多 P 视频指定第几集。q请求清晰度默认 32。对外推荐四档16360P、32480P、64720P、801080P。代码内部实际支持到 127 等多个档位请求的值不可达时会自动回落到不超过该值的最高档。format视频格式可选flv、dash、mp4默认flv。类型组type内容类型video投稿/bangumi番剧/cheese课程默认video。输出组otype返回格式json/url/dplayer默认json。几个随手可用的组合示例# 多 P 视频取第 2 集1080P返回纯直链 /index.php?av14661594p2q80otypeurl # 指定 bv 号720Pmp4 格式 /index.php?bvBV1xx411c7mDq64formatmp4otypejson # 直接用 dplayer 模式预览 /index.php?bvBV1xx411c7mDp1otypedplayer三种输出模式对应三类用法otype决定了你拿到手的东西长什么样选哪个取决于下游怎么消费json返回结构化数据包含code、quality和url字段。dash格式略有不同返回video与audio两条独立流地址。适合程序化集成比如你的后端拿到后再次转发。url直接返回一行纯文本播放地址。适合“只要一个链接”的场景比如拼进重定向页面或者配合下载脚本使用。dplayer返回一个播放器页面。内部读取你传来的 av/bv 与 p 参数自动请求 mp4 地址并塞进 DPlayer。浏览器打开就能看非常适合临时预览或者快速嵌入。演示页源码就是 public/dplayer.html想改样式直接改它。番剧与课程type 参数的正确打开方式普通投稿的解析走一套接口番剧和课程走的是另一套——这正是type参数存在的意义。处理番剧时通常用ep号发起请求/index.php?ep某集ep号typebangumiq64otypejson课程内容则把type切到cheese。库内部会自动换用对应的 API 端点并针对课程 mp4 的播放做一些特殊处理比如特定版本号参数这些细节你不需要操心只要把type传对就行。一句话总结普通视频不用管 type番剧带 ep、课程带 type三者的解析入口是互不干扰的。在自有代码中调用PHP 集成与缓存提速HTTP 接口适合外部调用但如果你本来就在 PHP 项目里直接引入核心类更顺手。它的方法全部支持链式调用include src/Bilibili.php; use Injahow\Bilibili; $bp new Bilibili(video); // video / bangumi / cheese $bp-bvid(BV1xx411c7mD) -page(1) -quality(64) -format(mp4); $result json_decode($bp-result(), true); if ($result[code] 0) { echo $result[url]; // 拿到的就是播放直链 }可用的链式方法还包括aid()、epid()、cid()、type()、access_key()、cookie()和proxy()基本覆盖了大多数定制需求。缓存把重复请求的耗时压下来同一个视频的播放地址在一段时间内基本不变没必要每次都去 B 站要一遍。开启缓存即可显著提速// 文件缓存默认有效期 3600 秒 $bp-cache(true)-cache_time(3600); // 如果服务器装了 APCu可以换内存缓存更快 $bp-cache(true, apcu)-cache_time(3600);文件缓存会落到cache/cid/目录文件名形如{cid}_{清晰度}_{格式}.json。注意cache_time()的最小值是 60 秒防止设置过短导致缓存形同虚设。踩坑清单五个高频问题一次说清1. 返回“视频清晰度受限可能需要会员”高清晰度通常要求登录或大会员。把q调低一档如 80 降到 64或改用formatmp4mp4 内部会把清晰度参数固定处理往往就能解决。2. 用了 dash 格式却发现没有url字段这是正常现象。dash 是音视频分离的流返回的是video和audio两个地址需要播放端自行合成别拿它当单文件直链用。3. 开了缓存但速度没变化大概率是cache/cid/目录不存在或不可写导致写入静默失败。先确认目录存在、属主和权限正确。4. 页面跨域请求被拦入口已经内置了Access-Control-Allow-Origin: *头浏览器跨域调用一般可以直接用。若你的项目对跨域有更严要求再自行在 Nginx 层调整。5. 付费内容解析失败只支持公开可访问的内容。会员专享、付费课程这类资源在接口层面就受限不是加参数能绕过的。收尾用它搭出你自己的播放服务至此你已经掌握了一条完整链路部署入口 → 组织请求参数 → 拿到播放地址 → 对接自己的播放器或下载流程。在此基础上你还可以进一步做三件事给otypeurl包一层自己的重定向接口把直链藏起来把缓存时间按视频热度动态调整缓解冷门视频首次解析的延迟在高并发场景前加一层 CDN把解析压力挡在源头。bilibili-parse 的价值在于“小而完整”四个文件、一个类、几行链式调用就把视频解析这件事做完了。把代码 clone 到你的服务器上跑一次真实请求你会发现自己也能在几分钟内拥有一个可用的 B站视频解析API。写作说明本次文章围绕“B站视频解析API”这一核心关键词展开正文与各级小标题中自然植入了以下长尾关键词bilibili-parse部署教程、B站视频播放地址获取、av号bv号ep号解析、B站视频解析PHP、DPlayer播放器嵌入B站视频。文章以“问题驱动 三步学习路径”为主线重新设计了章节骨架示例中的参数表格改写为分组要点列表全部话术、示例与排错内容均基于项目源码独立撰写。【免费下载链接】bilibili-parsebilibili Video API项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-parse创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考