B站视频解析如何实现?PHP 视频解析 API 三步拿到播放直链
B站视频解析如何实现PHP 视频解析 API 三步拿到播放直链【免费下载链接】bilibili-parsebilibili Video API项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-parse有没有过这种经历在 B 站刷到一个讲解特别通透的教学视频想下载下来在地铁里接着看或者想把这段内容嵌进自己的学习平台结果右键没有下载入口网页源码翻到底也只看到一堆加密字段你眼前的是播放器页面而真正能保存、能二次使用的是藏在这套页面背后的播放直链。bilibili-parse 就是来解决这道坎的开源 PHP 视频解析 API给它一个视频编号它替你把直链取回来。一、一个真实的困扰网页能播文件却够不着先说一个发生在我身边的场景。朋友负责公司内部的技能培训平台领导提了个需求把几段优秀的 B 站公开教程整合进平台让新员工不用跳转外部站点就能看完。他一开始走了两条弯路。第一条是直接 iframe 嵌入视频页结果页面上广告、推荐流、登录弹窗全跟着进来了体验一塌糊涂第二条是想办法抓取视频文件翻遍浏览器开发者工具看到的是分片地址、加密参数、还有一串过期时间手动拼根本拼不出来。卡了两天差点用录屏软件去录。问题到底出在哪把视频网页想象成餐厅的菜单把真实存在的视频文件想象成后厨已经做好的菜。菜单给你看的是介绍不是菜本身。B 站的视频播放页就是菜单而真正可下载、可嵌入、可离线缓存的播放直链是后厨那道菜。这两者之间隔着点菜、下单、传菜的全过程而 bilibili-parse 扮演的正是那个传菜窗口——你把菜名递过去它把做好的菜端到你面前。二、五分钟认识它它到底帮你做了什么一句话概括bilibili-parse 接收视频编号返回真实可用的播放地址。它内部替你完成了三步脏活累活认编号——支持av号旧编号、bv号新编号和ep剧集号三种身份标识你给哪种它都能认。发请求——模拟一个正常浏览器的身份UA、Referer、Cookie 都替你伪装好了向 B 站接口发起请求拿到原始视频数据。取直链——从返回数据中解析出带时效的播放地址按你指定的格式吐出来。它的输出方式很灵活适合不同用途参数名含义默认值可选值说明av / bv / ep视频标识无三者至少给一个定位你要解析哪个视频p分集页码1≥1多 P 视频选第几集q清晰度3216 / 32 / 64 / 80等级越高画质越好type视频类型videovideo / bangumi普通视频还是番剧format视频格式flvflv / dash / mp4影响返回的链接结构otype输出形式jsonjson / url / dplayer程序用还是浏览器用参数的逻辑很直白identify告诉它是谁 configure告诉它要什么质量 output告诉它结果怎么给。没有复杂的配置项每一个参数单独看都能猜出含义。三、第一次亲手搞定三步完成部署并跑通第一个请求部署成本低到可以忽略前提是服务器上已有 PHP 环境要求 PHP 5.4 及以上并安装 Curl 和 OpenSSL 扩展。第一步获取项目代码git clone https://gitcode.com/gh_mirrors/bi/bilibili-parse第二步把项目目录放到支持 PHP 的站点下比如 Nginx 或 Apache 的 web 根目录保持目录结构不动index.php是访问入口src/Bilibili.php是核心解析类。第三步浏览器打开入口页面验证环境不带任何参数访问index.php时页面会展示默认说明文档带参数访问时它才开始干活。试试下面这个请求你的域名/index.php?av14661594p1q64otypejson这段 URL 的意思是解析av14661594这个视频的第一集清晰度要 64结果以 JSON 格式返回。你会收到类似这样的数据{ code: 0, quality: 64, accept_quality: [127, 125, 120, 116, 112, 80, 64, 32, 16], url: https://upos-sz-mirror..../xxx.flv?t... }code为 0 表示成功url就是可以直接用于下载或播放的直链。从克隆代码到拿到第一个结果全程不超过五分钟。如果想在自己的 PHP 程序里调用代码同样非常简洁?php require src/Bilibili.php; use Injahow\Bilibili; $bp new Bilibili(video); // 普通视频 $bp-bvid(BV1xx4y1x7zz) // 指定视频 BV 号 -page(1) // 第一集 -quality(64) // 目标清晰度 -format(mp4); // 要 mp4 格式 echo $bp-result(); // 输出 JSON 结果这段代码做的事情和刚才的 URL 完全一致区别在于它适合写进你自己的项目里反复调用——比如循环处理一个视频列表把返回的直链批量存入数据库。四、把它用进日常三类用户各有各的玩法工具只有一个用的人不同用法也完全不同。面向学习者一分钟拿到离线视频只想下载某个视频离线看不需要写任何代码。用浏览器直接访问 URL 形式接口把otype换成url接口会直接吐出纯文本的直链你的域名/index.php?av14661594p2q32otypeurl把这个链接粘贴到下载工具里即可保存。清晰度选 32 比较稳妥——兼顾画质与文件体积移动设备上完全够用。面向开发者把它当成一个视频数据中间层如果你在搭建自己的学习平台、资料站或工具站把 bilibili-parse 当作一层视频地址网关最合适前端收集用户提交的 av/bv 号后端调用类方法解析把结果 JSON 返回给前端播放器。注意给这个入口加上访问频率限制避免被滥用拖垮接口。面向进阶玩家解析番剧与付费课程src/Bilibili.php中除了video还内置了bangumi番剧和cheeseB 站课堂课程两种类型。解析番剧时把 type 设为bangumi并用ep剧集号定位部分会员内容需要在实例上设置cookie()或access_key()才能通过权限校验这一点在源码注释里有明确说明。五、你可能踩过的坑现象、原因、解法实践中最常遇到的几个问题按现象 → 原因 → 解法整理如下现象原因解法返回无访问权限目标视频是会员专享或需要登录为实例设置有效cookie后重试确实无权访问就换视频返回 unknown cid视频编号填错或 av/bv 互转时抄漏了字符回到视频页核对编号bv号注意大小写与完整长度能解析但链接打不开直链带时效保存太久已过期尽量在解析后立即使用程序化场景改为实时解析并配合缓存请求的清晰度没生效该视频未提供那么高的码率工具会自动向下修正这是正常保护逻辑参考返回的accept_quality列表取值请求频繁后被限速触发了频率限制开启缓存减少重复请求或增加请求间隔六、让工具更好用三个值得深入研究的能力第一次跑通只是开始把下面三处吃透这套工具才算真正成为你工具箱里顺手的那一件。1. 缓存机制一劳永逸地降低请求压力。src/Bilibili.php内置了文件缓存和 APCu 内存缓存两种方案默认一小时有效期$bp-cache(true) // 开启文件缓存 -cache_time(3600); // 缓存 1 小时 // 内存充足时也可以换用 APCu $bp-cache(true, apcu)-cache_time(3600);开启后同一视频的重复请求会直接命中缓存对批量处理场景帮助极大。注意使用文件缓存时需要预先在项目下创建cache/cid目录。2. dash 格式拿到音画分离的高质量流。把format设为dash返回结果不再是单个 URL而是video与audio两个独立地址。这是 B 站高清视频的真实存储形态画质上限更高如果后续要做离线合流可以配合 ffmpeg 之类的工具把音视频合并适合对清晰度有执念的玩家。3. 清晰度的自动向下修正逻辑。你请求 64 清晰度但该视频最高只提供 32工具不会报错而是自动降档返回 32 并如实标注quality字段。这让接口在对接真实世界时足够宽容不需要调用方自己去猜每个视频支持到什么码率。七、写在最后回到开头那个够不着视频文件的困扰现在你应该已经看清问题不在于视频不存在而在于缺少一条把它从页面里取出来的通道。bilibili-parse 就是这样一条通道——普通用户用它下载离线视频开发者用它搭建视频数据接口进阶玩家研究它的请求与解析逻辑来理解流媒体分发机制。本项目代码量不大核心逻辑集中在src/Bilibili.php一个文件里配合public/dplayer.html的播放器演示和public/readme.html的说明文档学习成本相当友好。最后提醒一句技术本身是中性的请把这类解析工具用在个人学习、研究或平台整合的正当场景中尊重创作者版权遵守视频平台的服务条款。先从解析一个自己熟悉的视频开始跑通流程后再尝试批量场景动手比空想更能建立手感。【免费下载链接】bilibili-parsebilibili Video API项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-parse创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

如何用Python把整个网站离线保存到本地?WebSite-Downloader 3步上手全攻略

如何用Python把整个网站离线保存到本地?WebSite-Downloader 3步上手全攻略

如何用Python把整个网站离线保存到本地?WebSite-Downloader 3步上手全攻略 【免费下载链接】WebSite-Downloader A website downloader written with Python 项目地址: https://gitcode.com/gh_mirrors/web/WebSite-Downloader 你有没有遇到过这样的崩溃瞬间…

2026/9/11 20:16:59 阅读更多 →
想让新角色秒用现成动作?BoneAnimCopy插件5步搞定骨骼动画复制

想让新角色秒用现成动作?BoneAnimCopy插件5步搞定骨骼动画复制

想让新角色秒用现成动作?BoneAnimCopy插件5步搞定骨骼动画复制 【免费下载链接】blender_BoneAnimCopy 用于在blender中桥接骨骼动画的插件 项目地址: https://gitcode.com/gh_mirrors/bl/blender_BoneAnimCopy 做动画最怕什么?不是K帧累&#xf…

2026/9/13 0:36:43 阅读更多 →
python的工业过程控制场景模拟第一百三十三篇:编写程序统计调节阀动作次数,到达阀值推送维保提醒。

python的工业过程控制场景模拟第一百三十三篇:编写程序统计调节阀动作次数,到达阀值推送维保提醒。

调节阀动作次数统计与维保预警:用状态机计数器构建预测性维护系统 "一条化工生产线,68台调节阀分布全厂,以前靠坏了再修,全年非计划停机7次,单次紧急维修平均花费2.8万元,停产损失约15万元/次&#xf…

2026/9/17 0:27:38 阅读更多 →

最新新闻

Kali Linux下用“小皮面板”快速搭建Web开发环境实战指南

Kali Linux下用“小皮面板”快速搭建Web开发环境实战指南

你可能也遇到过这种处境:明明只是想在 Kali 里跑个 PHP 项目、搭个本地调试环境,结果光编译 Nginx 就折腾掉一个下午,装 MySQL 又碰到依赖冲突,最后项目没写几行代码,时间全耗在环境上。我最早在 Kali 上搭 Web 环境也…

2026/9/19 0:36:54 阅读更多 →
Agent Governance Toolkit 之 Antigravity CLI 治理包:安装、策略与生命周期管理实战指南

Agent Governance Toolkit 之 Antigravity CLI 治理包:安装、策略与生命周期管理实战指南

Agent Governance Toolkit 之 Antigravity CLI 治理包:安装、策略与生命周期管理实战指南 【免费下载链接】agent-governance-toolkit AI Agent Governance Toolkit — Policy enforcement, zero-trust identity, execution sandboxing, and reliability engineerin…

2026/9/19 0:36:54 阅读更多 →
PL/SQL Developer连接Oracle核心原理与可信配置指南

PL/SQL Developer连接Oracle核心原理与可信配置指南

1. 这不是“装个软件”那么简单:PL/SQL Developer Oracle 安装配置的本质是打通三层信任链你搜“PLSQL下载安装详解”,点开十篇教程,八篇开头就是“官网下载→双击安装→下一步→完成”。结果呢?装完打不开、闪退、连不上数据库、…

2026/9/19 0:36:54 阅读更多 →
IDEA离线工作模式全解析:让开发在无网环境下流畅运行

IDEA离线工作模式全解析:让开发在无网环境下流畅运行

1. 离线模式并不是“断开网络”,而是把这三层全部按住很多人在配置 IDEA 离线工作模式时都会踩同一个坑:把系统网络断开,或者把 WiFi 关了,然后打开 IDEA 继续干活,结果发现项目要么起不来,要么明明本地有依…

2026/9/19 0:36:54 阅读更多 →
Security-101 应用安全核心能力与工具全景解析:从 SAST、DAST、IAST 到 RASP 与 WAF 的十三类 AppSec 防线

Security-101 应用安全核心能力与工具全景解析:从 SAST、DAST、IAST 到 RASP 与 WAF 的十三类 AppSec 防线

Security-101 应用安全核心能力与工具全景解析:从 SAST、DAST、IAST 到 RASP 与 WAF 的十三类 AppSec 防线 【免费下载链接】Security-101 8 Lessons, Kick-start Your Cybersecurity Learning. 项目地址: https://gitcode.com/GitHub_Trending/se/Security-101 …

2026/9/19 0:36:54 阅读更多 →
TypeSpec 语言基础:Union 联合类型完全指南(表达式、具名联合与 extends 约束)

TypeSpec 语言基础:Union 联合类型完全指南(表达式、具名联合与 extends 约束)

TypeSpec 语言基础:Union 联合类型完全指南(表达式、具名联合与 extends 约束) 【免费下载链接】typespec 项目地址: https://gitcode.com/GitHub_Trending/ty/typespec 本文是 TypeSpec 语言基础系列中关于 Union(联合类…

2026/9/19 0:35:53 阅读更多 →

日新闻

BP神经网络时序预测:滑窗长度与多窗口平均策略

BP神经网络时序预测:滑窗长度与多窗口平均策略

简介:面向机器学习、深度学习与数据建模学习者的一份完整研究文献,聚焦BP神经网络在农业产量预测中的应用。文档以1980—2018年全国棉花产量为样本,系统讲解数据归一化处理、激活函数原理、多层神经网络结构搭建及训练流程,展示敏…

2026/9/19 0:00:30 阅读更多 →
Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

上个月调一个Deformable DETR模型,在单卡上要跑将近两天。第二天早上我下意识打开终端翻日志,发现loss从凌晨两点就开始往上爬,一路从0.8涨到1.35,整整六个小时没人发现。那六个小时的训练不仅白跑,还霸占着卡——等于…

2026/9/19 0:00:30 阅读更多 →
OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南 【免费下载链接】opencloud 🌤️ OpenCloud is the open source platform for file management, sharing and collaboration. Simple and sovereign. 项目地址: htt…

2026/9/19 0:00:30 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/16 19:03:19 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/17 7:57:36 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/17 10:19:14 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/16 22:31:27 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/15 21:39:18 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/16 22:32:59 阅读更多 →