ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

B站视频解析开源方案:bilibili-parse从部署到调用的完整指南

B站视频解析开源方案:bilibili-parse从部署到调用的完整指南 B站视频解析开源方案bilibili-parse从部署到调用的完整指南【免费下载链接】bilibili-parsebilibili Video API项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-parse想在自建网站上嵌入一条B站视频却拿不到真实的播放地址想做素材采集却要在十几个在线解析站之间来回试错bilibili-parse 就是为解决这个问题而生的一个基于 PHP 的轻量 B站视频解析 API只需传入 av 号、bv 号或 ep 号就能在几秒内返回可直接播放的视频地址并支持 json、url、dplayer 三种输出模式自己部署、数据可控、无登录依赖。三步部署从克隆到拿到第一条解析结果项目对运行环境的要求极低PHP 5.4 及以上且已安装 Curl 与 OpenSSL 扩展绝大多数虚拟主机都能满足。第一步拉取代码git clone https://gitcode.com/gh_mirrors/bi/bilibili-parse第二步上传到服务器。将整个目录放到任意可运行 PHP 的站点目录下例如htdocs或wwwroot无需修改任何配置。第三步发起第一个解析请求。复制任意一个B站视频的 bv 号替换下面命令中的BV1xxxxx/index.php?bvBV1xxxxxotypejson浏览器直接访问该地址几秒内就会返回一个 JSON其中code为 0 表示成功url字段就是可直接播放的视频地址。整个部署过程不需要数据库、不需要 composer五分钟左右就能跑通。核心能力一三种身份证识别视频一个接口全兼容B站视频编号几经变迁老视频是 av 号新视频是 bv 号番剧和课程又用 ep 号。bilibili-parse 在入口层做了统一收编由 index.php 负责参数校验由核心类 src/Bilibili.php 完成 API 组装与结果解析。参数含义示例av传统视频编号av14661594bv现行视频编号bvBV1xxxxxep番剧/课程剧集编号epxxxxxcid分P内容标识进阶可选cidxxxxx其中 av、bv 用于普通投稿视频ep 配合typebangumi或typecheese可解析番剧和付费课程分集。视频有多 P分集时用p参数指定集数默认取第 1 集。核心能力二画质与格式自由组合避免会员受限踩坑解析出的清晰度和封装格式都由你说了算四个参数即可完成组合参数可选值说明q16 / 32 / 64 / 80画质档位数值越高越清晰formatflv / dash / mp4输出封装格式typevideo / bangumi / cheese内容类型p≥1 的整数分集序号默认 1调用时把参数拼进 URL 即可例如/index.php?av14661594p2q64formatmp4otypejson需要注意的是当请求的画质超过视频实际可用的最高档位时核心类会自动向下取最接近的可用档位若format为 flv 且视频清晰度受限会返回视频清晰度受限可能需要会员的错误提示这是正常保护机制并不是接口故障。核心能力三三种输出模式覆盖开发—集成—展示全链路用otype参数切换输出形态一套接口适配三种使用场景json默认返回完整 JSON 元数据flv/mp4 格式下包含code、quality、accept_quality、url四个字段dash 格式下则返回分离的video与audio地址适合开发者二次加工。url只返回一行纯文本播放地址适合脚本里直接取用例如配合 wget、ffmpeg 等工具。dplayer不返回数据而是直接输出一个带 DPlayer 播放器的完整 HTML 页面视频自动加载适合快速演示或嵌入 iframe。注意该模式仅对 mp4 格式生效其内部逻辑实现在 public/dplayer.html。// 直接拿播放地址无需处理 JSON 结构 /index.php?av14661594p1q32otypeurl实战案例给自己的网站加一个 B站视频页以个人站点嵌入B站视频为例完整链路是这样的在页面里用iframe引用index.php?bv...otypedplayer如果想自定义播放器样式就改用otypejson拿到url字段喂给任意支持 flv/mp4 的播放器若视频为多 P只需拼接p2、p3即可实现视频合集效果每个 P 独立成页。批量采集场景同样简单写个 Shell 循环即可对多个视频逐一取地址for vid in BV1aaaaa BV2bbbbb BV3ccccc; do curl https://你的域名/index.php?bv$vidotypeurl playurls.txt done新手 vs 进阶两条缓存加速路线按需选择同一个视频被反复解析会白白消耗 B站 API 配额。项目内置缓存机制只是入口文件里默认注释掉了打开 index.php 第 43 行附近取消注释即可启用。这里给出两条路线对比路线启用方式适用场景优点注意文件缓存新手$bp-cache(true)-cache_time(3600);任意 PHP 环境零依赖开箱即用需保证cache/cid/目录可写APCu 缓存进阶$bp-cache(true, apcu)-cache_time(3600);高并发站点纯内存读写性能最优需安装 PHP APCu 扩展两种方式共用同一套调用链命中缓存直接返回结果、免去网络请求缓存默认有效期 3600 秒最短 60 秒相同参数下的重复解析基本是瞬时响应非常适合播放量集中、URL 短时内被反复请求的场景。常见问题 FAQQ需要登录B站账号或填写 Cookie 吗A不需要。项目内置了完整的请求头与 UA对公开视频直接调用官方 API 即可付费/会员内容不在支持范围内。Q为什么返回视频清晰度受限可能需要会员A说明该视频的实际可用画质低于你请求的档位通常是视频本身需要大会员或存在画质限制。换用q16或改用formatmp4通常能规避。Qdplayer 模式打不开播放器A先确认format是否为 mp4dplayer 输出仅支持 mp4同时播放器脚本来自 CDN服务器需能正常访问外网。Q解析出的地址可以下载吗A可以。url模式输出的就是真实播放地址可直接交给下载工具或 ffmpeg 保存本地。Q请求失败通常是什么原因A优先级从高到低排查视频编号是否有效、服务器能否访问 B站 API需外网HTTPS、是否触发频率限制最后再确认 PHP 的 Curl/OpenSSL 扩展已启用。总结与下一步bilibili-parse 的价值在于把B站视频解析这个高频需求收敛成了一个可自托管的 PHP 接口三种编号全兼容、画质格式可组合、输出模式按需切换、缓存机制一键开启。它适合内容创作者批量取素材也适合个人站长给站点加视频模块。现在就去克隆代码用你手边任意一个 bv 号发起第一次请求把第一条 JSON 跑通跑通之后再试试otypedplayer和缓存开关你就能直观感受到这套解析方案的完整工作流了。【免费下载链接】bilibili-parsebilibili Video API项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-parse创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表