B站视频解析免费工具 bilibili-parse 快速上手:三步拿到视频直链的完整指南
【免费下载链接】bilibili-parsebilibili Video API项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-parse
你是否曾为了下载一个B站教程视频,把收藏夹翻了个底朝天,却始终找不到官方下载入口?是不是每次想把心仪的视频"搬"进自己的网课页面或学习笔记,都被嵌入失败的提示反复折磨?如果你正被这类问题困扰,说明你缺的不是耐心,而是一个靠谱的B站视频解析方案。今天要介绍的 bilibili-parse,就是一个开源的 PHP 工具,专治"看得了播不了、看得见存不下"的毛病。
从"看不了"到"存得下":一个考研党的故事
小雨是今年的考研党,每天通勤要花一个多小时。他把B站上老师的线性代数课反复刷了三四遍,可地铁里信号飘忽,视频动不动就卡成"幻灯片"。他想把课程存下来离线看,结果折腾了一整晚:下载网站要会员、下载工具提示要登录、好不容易拿到一个链接又被告知"来源不明、无法解析"。最后他只能对着手机叹气——看自己收藏的视频,怎么这么难?
后来朋友的一句话点醒了他:"你要的不是下载网站,而是让一个工具把播放地址直接给你。"朋友推荐的,正是开源项目bilibili-parse。它是用 PHP 写成的轻量解析器,装到服务器上,扔进去一个视频编号,就能拿回一行真实可用的播放地址。小雨把它部署到自己一年几十块钱的虚拟主机上,从此地铁上、被窝里,课程想存就存、想学就学。
这个故事里最动人的部分,是这个工具把"B站的语言"翻译成了"你能直接用的东西"——就像一位耐心、老练的翻译官,站在你与B站接口之间,替你完成所有繁琐的沟通。
bilibili-parse 是什么?一位帮你"翻译"视频地址的翻译官
那么,这位翻译官到底是怎么工作的?
其实原理并不玄妙。bilibili-parse 本质上是一个 PHP 类,核心代码集中在一个文件里(src/Bilibili.php),对外入口是 index.php。当你把 av 号、bv 号或 ep 号(番剧剧集号)交给它,它会像普通浏览器一样,向 B 站官方的播放接口发出请求,拿到一份加密的 JSON 数据,再从中比对清晰度、拆分音视频地址,最终把"真实播放地址"翻译出来交还给你。
更贴心的是,这位翻译官还会用三种"口吻"向你汇报结果:
| 输出方式 | 返回内容 | 适合谁 |
|---|---|---|
| json | 结构化数据(直链、清晰度、可接受画质列表等) | 程序二次处理 |
| url | 一行纯文本直链 | 直接重定向或下载 |
| dplayer | 内置播放器的测试页面 | 快速预览效果 |
与此同时,它一套代码同时支持普通视频(video)、番剧(bangumi)和付费课程(cheese)三种类型,清晰度从 16 到 80 可调,输出格式支持 flv、dash 与 mp4。简单说:普通用户拿来即用,开发者拿来即调,都不需要做额外的"培训"。
五分钟跑通:从下载部署到拿到第一条视频直链
别急,马上就到实操环节。跟着下面这几步走,新手也能在五分钟内拿到人生第一条视频直链。
- 下载项目:在服务器或本地终端执行
git clone https://gitcode.com/gh_mirrors/bi/bilibili-parse,把项目文件完整拿下来。 - 上传部署:把整个文件夹上传到支持 PHP 的站点目录(如
wwwroot/bilibili-parse)。环境要求很亲民:PHP 5.4 以上,装好 Curl 和 OpenSSL 扩展即可,绝大多数虚拟主机都已自带。 - 找一个视频编号:打开任意B站视频页,地址栏里
BV开头的那串字符就是 bv 号,复制下来备用。 - 发起第一次解析:浏览器访问
你的域名/index.php?bv=BV1xx411c79U&q=64&format=mp4&otype=json,把 bv 换成你自己的编号。 - 取结果:页面会返回一段 JSON,里面的
url字段就是可直接播放或下载的真实地址。收工。
如果你更喜欢在 PHP 代码里调用,也就三行的事:
$helper = new Injahow\Bilibili(); $helper->bvid('BV1xx411c79U') // 填入视频BV号 ->quality(64); // 想要高清就填64 echo $helper->result(); // 输出解析结果从第一步到看到结果,全程不需要写复杂的配置,也没有多余的依赖。是不是比想象中轻松得多?
三个实用玩法:不同人群怎么把工具用到极致
会跑通只是第一步,真正有意思的是把它"用起来"。下面按人群拆成三个玩法,你可以直接对号入座。
玩法一:给自己的站点装一个"视频外挂",嵌入任意页面
如果你是站长、内容创作者,想把B站视频干净地嵌进自己的文章或课程页面,这个玩法最适合你。传统的 iframe 嵌入受限于站外规则,常常加载慢、体验差;而用 bilibili-parse 拿到 mp4 直链后,你可以自由选择任意播放器来承载。
- 用
format=mp4拿到网页友好的格式; - 用
otype=dplayer直接打开项目自带的播放器测试页(public/dplayer.html)快速验证效果; - 把拿到的直链交给你自己的播放器组件,视觉、速度、交互全部由你掌控。
玩法二:把B站收藏夹变成离线课程库,通勤路上接着学
回到小雨的处境——学生和自学党最在意的,是把视频"装进口袋"。这个场景的操作要点是"降清晰度、选 mp4、开缓存":
- 清晰度填 32,在画质与文件体积之间取得平衡;
- 格式选 mp4,兼容手机和电脑上几乎所有的本地播放器;
- 拿到直链后用下载工具保存,Wi-Fi 环境下批量下载最省流量。
多集视频(多 P)也不怕,p参数可以逐集切换,配合循环脚本就能把整门课一集集拉下来,离线也能跟着进度条安心学习。
玩法三:30 分钟搭一个视频查询接口,让程序替你跑腿
如果你是开发者,想把 B 站视频能力集成进自己的应用,这个工具几乎就是现成的后端。index.php本身就是一个极简接口,返回 JSON 结构清晰,前端用一行 fetch 就能消费。
- 番剧内容改用
type=bangumi配合ep剧集号; - 需要更高画质或会员专属视频时,可以传入
cookie提升权限; - 把接口包一层鉴权与限流,就能安全地对外提供服务。
一条实用小抄:把otype设为url,接口直接返回纯文本直链,拿来当下载重定向入口再合适不过。
避坑与进阶:常见报错、缓存优化与下一步
工具虽好用,路上总有几个小坑。这里把最常见的三个问题先替你踩平:
问:为什么返回"视频清晰度受限,可能需要会员"?答:该清晰度通常需要大会员权限。解决办法是降低清晰度等级,或者传入有效的登录 Cookie(项目提供了cookie()方法)重新解析。
问:dash 格式返回的 video 和 audio 是分开的两个地址?答:这是 dash 流媒体的正常形态——音视频分离,需要下载后合并才能观看。想省事的话,直接改用format=mp4一步到位。
问:解析失败或超时怎么办?答:先确认 av/bv 编号无误,再检查服务器网络能否正常访问 B 站接口,最后留意是否触发了频率限制。合理使用缓存、拉长请求间隔,通常都能缓解。
说完避坑,再送你两条进阶技巧:
- 给翻译官开缓存:对热门视频开启缓存,重复解析接近"秒回"——
$helper->cache(true)->cache_time(3600);即缓存一小时;若服务器支持 APCu 内存缓存,还能更快。 - 把批量任务做成流水线:将视频编号排成队列,逐条解析、失败自动重试、每次请求间隔两三秒,再配上日志记录进度,几百集的课程也能稳稳跑完。
现在回头想想开头那个问题:下载B站视频真的那么难吗?其实难的从来不是视频本身,而是缺少一个帮你把地址"翻译"出来的桥梁。bilibili-parse 这位翻译官,恰好就站在这个位置上——它不需要你懂接口签名,不需要你会抓包,只需要一个视频编号和一台能跑 PHP 的服务器。
下一步,不妨从部署开始:把项目放到你的服务器上,用刚才的三步流程解析第一个视频,然后挑一个最贴合你身份的玩法,把收藏夹里那些"只能看不能存"的视频,真正变成属于你的资源。技术工具从来都是越用越熟,你与这位翻译官的配合,也一定会越来越默契。
【免费下载链接】bilibili-parsebilibili Video API项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-parse
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考