如何用 bilibili-parse 快速拿到B站视频播放地址?PHP解析方案上手指南
如何用 bilibili-parse 快速拿到B站视频播放地址PHP解析方案上手指南【免费下载链接】bilibili-parsebilibili Video API项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-parse想在自己的网站里嵌入一个B站视频却找不到能直接播放的地址复制粘贴的分享链接不是被防盗链拦截就是无法在第三方播放器里正常播放。B站视频解析工具bilibili-parse正是为解决这个难题而生它用纯PHP调用B站官方接口把av号、bv号甚至番剧ep号统一解析成可直接播放的视频地址支持多清晰度、多格式输出整个项目只有两个核心文件部署即用。它改变了什么三个真实场景的使用前 vs 使用后在动手前先看看这套工具到底能替你解决什么问题。它不是一份功能清单而是三种常见处境的转变。场景使用前使用后素材采集开浏览器、开播放器调试面板、手动翻找真实视频流地址运气不好还遇到分段flv一条URL直接返回视频地址脚本循环即可批量拿到整个系列网站嵌入用iframe塞B站页面带推荐流、带弹幕体验割裂拿到mp4地址后交给任何播放器播放器界面完全由你控制番剧整合番剧与普通投稿接口不同需要分别适配av/bv/ep三种编号统一入口一处代码覆盖所有内容类型最直观的变化是你不再关心B站接口细节只需关心要哪一集、什么画质、什么格式。这套工具把这些选择压缩成了几个URL参数。三步入门安装、配置、首次调用这一节是全文的主心骨。跟着走十分钟内你就能在自己的服务器上跑通第一次解析。第1步部署到支持PHP的环境bilibili-parse 对环境要求极低PHP 5.4 且已安装 Curl 与 OpenSSL 扩展即可绝大多数虚拟主机都能满足。git clone https://gitcode.com/gh_mirrors/bi/bilibili-parse cd bilibili-parse把整个目录上传到服务器后无需任何数据库和依赖安装项目即可访问。入口文件是index.php核心解析逻辑全部封装在src/Bilibili.php的Injahow\Bilibili类中展示层public/dplayer.html则是一个可直接使用的播放器演示页。第2步认识入口参数index.php通过URL参数接收请求下面这张表建议收藏后续所有调用都以它为准参数含义默认值可选值av视频av编号-任意有效av号bv视频bv编号-任意有效bv号ep番剧/课程剧集编号-任意有效ep号cid直接指定分P的cid-任意有效cidp视频集数1≥1的整数q视频清晰度3216/32/64/80type内容类型videovideo/bangumi/cheeseformat视频格式flvflv/dash/mp4otype返回格式jsonjson/url/dplayer其中typecheese对应B站课堂课程内容typebangumi对应番剧这是很多同类工具没有覆盖到的能力。第3步发起第一次调用以某个公开视频为例三种输出格式对应三种用法# 1. JSON格式拿到完整解析结果适合程序集成 curl https://你的域名/index.php?bvBV1xxxxxq64otypejson # 2. URL格式直接返回一个纯文本播放地址 curl https://你的域名/index.php?av14661594p2otypeurl # 3. DPlayer格式直接返回一个可播放的页面 curl https://你的域名/index.php?bvBV1xxxxxotypedplayerJSON格式的返回结构如下其中url就是可以直接喂给播放器的视频流地址{ code: 0, quality: 64, accept_quality: [80, 64, 32, 16], url: https://upos-sz-mirrorcos.bilivideo.com/... }otypedplayer会返回public/dplayer.html页面它内置了 DPlayer 播放器会自动请求 mp4 格式的解析结果并完成播放适合快速验证某个视频能否被解析。它的价值在于不写一行前端代码就能先看到解析是否成功的最终效果。进阶玩法从能用到好用跑通基础调用之后这三个扩展能力值得你花时间尝试。玩法一脚本批量解析系列视频p参数支持指定分P配合循环脚本几分钟就能把一套系列课程的全部播放地址抓下来#!/bin/bash for p in {1..10} do curl https://你的域名/index.php?bvBV1xxxxxp$potypeurl urls.txt echo 第 $p 集地址已获取 done这个能力的适用对象是需要批量备份教程内容、或批量生成合集页面的内容创作者。玩法二开启缓存把重复请求提速index.php中预留了两行缓存代码去掉注释即可启用。文件缓存零依赖APCu缓存性能更好需要服务器安装APCu扩展// 文件缓存缓存1小时 $bp-cache(true)-cache_time(3600); // APCu缓存适合高并发场景 $bp-cache(true, apcu)-cache_time(3600);注意缓存目录是src/../cache/cid/首次启用前需要手动创建cache/cid目录并保证可写。它的价值很直接相同视频的二次解析不再请求B站响应几乎瞬时完成同时减轻你服务器的外网流量。玩法三脱离HTTP入口在PHP代码里直接集成如果你不想走URL接口可以把src/Bilibili.php当普通类库引入链式调用更清晰include src/Bilibili.php; use Injahow\Bilibili; $bp new Bilibili(video); $bp-bvid(BV1xxxxx)-page(1)-quality(64)-format(mp4); $result json_decode($bp-result(), true); if ($result[code] 0) { $videoUrl $result[url]; // 把 $videoUrl 交给播放器 }避坑指南新手最容易踩的4个坑把最常见的失败场景集中说明遇到问题先来这里对照。1. 提示视频清晰度受限可能需要会员原因该视频本身不开放高画质或你请求的清晰度超出了视频的accept_quality。对策工具会自动向下修正清晰度遇到此提示说明连修正后的画质都受限建议降低 q 值重试或确认视频是否为会员限定。2. 返回unknown cid原因工具需要先通过视频信息接口把 av/bv/ep 换算成 cid这一步失败通常是编号本身无效。对策先在B站确认编号真实存在另外如果你手里本来就有 cid直接传cid参数可跳过换算步骤。3. DPlayer模式播放失败原因dplayer.html内部固定请求的是formatmp4而dash格式返回的是分离的音视频地址。对策dplayer模式只用于普通视频的快速预览需要dash格式时请改用otypejson自行处理音视频流。4. 高清视频播放报错或地址失效原因部分播放地址带时效性且对请求来源有校验。对策src/Bilibili.php中的curlset()已经内置了B站所需的 Referer、Cookie、User-Agent 等请求头不要随意精简如果播放失败重新解析获取新地址即可。收尾这套工具适合谁如果你是在PHP环境里折腾B站视频的开发者或内容创作者——想给网站嵌视频、想批量抓取播放地址、想整合番剧和课程内容——bilibili-parse 用最轻量的方式替你封装了所有B站接口细节核心类不过几百行任何一个有点PHP基础的人都能读懂和改造。现在就把视频编号填进URL试一次从复制链接到拿到真实播放地址你只差一条请求的距离。【免费下载链接】bilibili-parsebilibili Video API项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-parse创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考