ARTICLE DETAIL

资讯详情

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

bilibili-parse怎么用?三步拿到B站高清视频源地址的免费PHP解析工具实测

bilibili-parse怎么用?三步拿到B站高清视频源地址的免费PHP解析工具实测 bilibili-parse怎么用三步拿到B站高清视频源地址的免费PHP解析工具实测【免费下载链接】bilibili-parsebilibili Video API项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-parse凌晨一点我的剪辑软件停在时间轴上缺的那段素材来自B站一个讲解视频。平台没有下载按钮我试了录屏画质糊成一团试了网页上那些一键下载的小站弹窗比我的浏览器收藏夹还多。最后是一个做后端的朋友甩来一行字bilibili-parse。这个免费开源的B站视频解析工具只靠几个URL参数就把高清视频源地址交到了我手里——而它背后的代码量小得让我一度怀疑自己看错了。一、一次失败的抢救我以为B站视频下载不了先说我的失败史也许你也经历过。第一招录屏。开到最高画质录完发现不仅占了几十个G画面还在弹幕飘过时掉帧。放弃。第二招找在线解析站。界面很漂亮点下去先弹三个广告窗口再要我下载一个来路不明的万能播放器。我果断关掉顺手把那个网站拉黑了。第三招自己动手。打开开发者工具在B站播放器请求里翻出了视频地址激动地粘进下载器——第二天再打开失效了。原来这类地址是临时签发的跟视频编号、清晰度、你的浏览器身份绑定在一起过一段时间就作废。那天晚上我得出一个结论不是B站视频下载不了而是缺一个能替你把地址参数全部对上的正经工具。二、为什么B站不给下载按钮源地址上了三道锁把这件事拆开看你会发现播放器其实看得到视频的真相地址只是不给你。打个比方。视频源地址就像电影院的放映室你在银幕前看得津津有味但胶片真实地址只有放映员碰得到。B站给你看的永远是隔着玻璃的投影而不是胶片本身。这扇门上了三道锁第一道锁动态签发。每个视频的真实地址都由服务器按需生成绑定一个叫 CID 的编号每个分P、每集番剧都有自己独一无二的编号你光有页面链接没用还得对上这个暗号。第二道锁请求伪装。向B站要地址时请求必须带着正确的 User-Agent、Referer、Cookie假装自己就是官方播放器。普通人手搓一个请求分分钟被识破。第三道锁参数对应。清晰度、输出格式flv、mp4、dash、分P序号每一个都要在请求里写对写错任何一个要么返回报错要么给你一个阉割版画质。bilibili-parse 干的事情就是把这三道锁的钥匙一次性配齐你告诉它视频编号它去B站官方接口按规矩要地址再把干净的结果交还给你。三、实战第一次用 bilibili-parse 解析出高清源地址上手过程比我想象的简单得多。项目是纯 PHP 写的要求很低PHP 5.4 以上装好 Curl 和 OpenSSL 扩展就能跑。Curl 负责向B站发请求OpenSSL 负责处理加密数据这两个都是PHP生态里最常见的东西。拉代码只需要一行git clone https://gitcode.com/gh_mirrors/bi/bilibili-parse丢到服务器上然后在浏览器里输入https://你的域名/index.php?bvBV1xx4y1x7zzp1q64formatmp4otypejson当时我心里直打鼓就这么几个参数真能把地址挖出来回车屏幕上返回了一段 JSON{ code: 0, quality: 64, accept_quality: [127, 120, 80, 64, 32, 16], url: https://upos-hz-mirrorakam.bilivideo.com/upgcx/code/xxxxxxxx }标题、可选清晰度、真实播放地址清清楚楚摆在眼前。那种感觉很像以为锁死的门结果发现钥匙就挂在门边。这还没完它给了三种收货方式按otype参数切换otypejson返回结构化数据适合程序读取也是上面看到的样子otypeurl只回一行纯地址可以直接丢进下载器或者命令行工具otypedplayer直接唤起一个内置播放器想在自己网站里嵌视频改一个参数就行。完整的参数表是这样的照着用就行参数作用可选值av / bv视频编号二选一-ep番剧剧集编号-p分P序号默认 1q清晰度16 / 32 / 64 / 80type视频类型video / bangumi / cheeseformat输出格式flv / dash / mp4otype返回形式json / url / dplayer清晰度数字越大越清晰64 到 80 之间足够日常用了不至于把文件撑得太大。四、除了视频它还懂番剧、课程和分P几个少有人提的用法只拿一个普通视频练手远远没到它的上限。我多试了几个场景发现它比第一眼看起来贪心得多。1. 番剧和付费课程也能解。把type改成bangumi或cheese再用ep传剧集编号它就会去对应接口要地址。看动画追番、临时需要课程片段都不用回到录屏的老路。2. 多P视频按集取。很多UP主把一个系列拆成好几P用p参数指定第几集它会解析对应分P的地址不会给你整个播放列表。3. dash 模式把音画拆开。formatdash时返回的是分离的音轨和画轨地址video audio 两段画质上限更高适合追求极致清晰度、或者想自己做音画合成的场景。普通下载用 flv 或 mp4 就够了。4. 会员专属清晰度交 Cookie 就行。遇到视频清晰度受限可能需要会员的提示多数是权限问题。库里准备了cookie()方法把你自己登录态的 Cookie 传进去往往就通了。5. 自带缓存热视频秒回。默认关闭但预留了一小时缓存机制文件或 apcu 两种实现。同一个视频解析过一次后续请求直接读缓存服务器压力小响应也快。核心逻辑全在src/Bilibili.php这一个文件里想改逻辑、加功能都从这儿下手入口在index.php参数全走 URL前端集成非常省事——它甚至已经帮你开好了跨域头。五、用之前请先记下这三条边界工具是好工具但有几句话得说在前面。清晰度受限不等于失败。多数情况是视频需要会员权限带上自己的 Cookie 往往能解决如果还不行说明确实没有权限换个档位即可不必死磕。批量请求别太猛。解析接口本质是在访问B站官方服务器一口气打几百个请求既显得没礼貌也可能让你的IP被暂时限制。放慢节奏留点余地。它可以解析不代表你可以为所欲为。这个工具返回的地址依然来自B站官方服务器它不存储任何内容也不搬运视频。下载与否、存到哪里都由你自己决定。把解析到的内容用于个人学习、离线备课、正当的素材整理是没有问题的但随意搬运他人作品、二次分发那就在越线了。工具是中性的它最终是帮手还是麻烦取决于用它的那只手。六、回到凌晨一点的剪辑台凌晨一点半我把解析出来的地址粘进下载器看着进度条慢慢走满。第二天上课课件在没联网的会议室里流畅播放一点没卡。回头想想那个晚上真正让我懊恼的其实不是下载不了视频而是明明看得到的东西却留不住。bilibili-parse 解决的正是这件事普通用户想离线存档、老师想离线备课、开发者想给自己的应用加一个视频解析能力它都覆盖得到。部署简单文档友好MIT 开源协议想商用、想二次开发都随你。如果你也曾在某个深夜对着一个想留住的视频页面发呆那它值得你花五分钟试一次。愿你把每一份值得珍惜的内容都稳稳地收进自己的生活里——而不是让它随着页面刷新悄悄溜走。【免费下载链接】bilibili-parsebilibili Video API项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-parse创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表