ShanY直链解析工具

介绍

这是一个bilibili视频解析网页,有视频解析的基本功能,且保证不收费不用登录,代码开源,且网页端使用方便无需安装油猴插件或者浏览器插件,且界面简洁,操作简化。

使用教程

点击bilibili视频的分享按钮或复制视频链接都可进行自动分析,当用户的粘贴板上有bilibili视频链接时,点击粘贴自动解析按钮时便可自动解析并自动复制到用户的粘贴板上,极大的简化了操作逻辑,时为快捷解析B站视频和vrchat游戏用户提供了快捷方便网页端解析工具。

访问bili.shany.cc可快速使用

源码与底层

此项目为纯开源项目,因为项目部分代码和功能用到了开源项目二次分发,部分前端设计由AI和本人完成,后端由开源项目bilibili-parse提供API解析的代码参考,后端部署在香港服务器,由本人的服务器进行解析

本项目底层逻辑十分简单,由开源项目做后端,本人做前端和前后端协作后端简单逻辑为,通过服务器所部署的地区向哔哩哔哩视频CDN服务器申请直链请求并返回值链链接,其中后端解决了跨域无法请求的问题,也解决了哔哩哔哩官方防盗链的问题,详细原理请去后端开源项目bilibili-parse详细了解。


部署教程

1.部署宝塔面板环境

2.安装 PHP 及扩展

解析工具依赖 PHP 5.4+、curl、openssl 扩展,步骤如下:

  1. 登录宝塔面板;
  2. 点击左侧「软件商店」→「已安装」,查看是否安装 PHP(推荐 7.4 版本,兼容性最佳);
    • 未安装:点击「PHP」→ 选择 7.4 版本 → 「安装」(等待 5-10 分钟);
  3. 点击 PHP 7.4 右侧「设置」→「安装扩展」;
    • 找到curl扩展 → 点击「安装」(解析 B 站接口必需);
    • 找到openssl扩展 → 点击「安装」(HTTPS 请求必需);
  4. 安装完成后,点击「服务」→「重启」(使扩展生效)。

解释:curl 扩展用于发起 HTTP 请求获取 B 站视频数据,openssl 扩展用于处理 HTTPS 加密请求,缺少任一扩展会导致解析失败。

3.创建PHP网站项目,绑定域名并开启SSL

解释:开启 SSL(HTTPS)是为了避免浏览器拦截剪贴板操作、混合内容(HTTP/HTTPS 混用)等问题,解析工具必须使用 HTTPS。

4.上传项目文件

  1. 点击站点右侧「根目录」→「进入目录」;
  2. 删除目录内默认文件(如index.html404.html);
  3. 点击「上传」→「上传文件」,依次上传index.htmlparse.phpplay.php
  4. 点击「上传文件夹」,上传src目录(保持目录结构完整);
  5. 设置目录权限:
    • 右键src目录→「权限」;
    • 所有者:www,所有组:www
    • 权限:读√、写√、执行√(仅目录需要执行权限);
    • 点击「保存」。

解释:PHP 进程以www用户运行,若目录无写入权限,解析缓存(如有)会失败,需确保src及根目录有 www 用户的读写权限。

关键配置调整

4.1 设置默认首页(解决访问域名不显示前端)

  1. 宝塔面板→站点→「设置」→「配置文件」(Nginx 配置);
  2. 找到index开头的行(默认:index index.php index.html index.htm);
  3. 修改为:index index.html index.php index.htm(将index.html移到最前);
  4. 点击「保存」→「重启 Nginx」。

解释:Nginx 默认优先加载index.php,修改后访问域名会直接显示前端index.html,而非后端解析文件。


分隔线以下操作,并不是必须要进行的步骤,旨在解决部署后无法进行解析的问题作为参考。

4.2 解决跨域问题(关键)

B 站解析接口可能存在跨域限制,需在 Nginx 配置中添加跨域头:

  1. 宝塔面板→站点→「设置」→「配置文件」;
  2. server块内(location /上方)添加以下代码
# 跨域配置
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
# 处理OPTIONS预检请求
if ($request_method = 'OPTIONS') {
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
    add_header Access-Control-Allow-Headers 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
    add_header Access-Control-Max-Age 1728000;
    add_header Content-Length 0;
    add_header Content-Type 'text/plain; charset=utf-8';
    return 204;
}

点击「保存」→「重启 Nginx」。

解释:跨域是浏览器的安全限制,Access-Control-Allow-Origin *允许所有域名访问接口,解决前端调用parse.php时的跨域报错。

4.3 配置反向代理(解决 CDN 播放 / 地域限制)

香港服务器解析的深圳 CDN 链接可能无法直接播放,需配置反向代理:

  1. 宝塔面板→站点→「设置」→「反向代理」→「添加反向代理」;
  2. 填写:
    • 代理名称:bilibili-cdn
    • 目标 URL:https://upos-sz-mirrorcos.bilivideo.com
    • 反向代理路径:/upgcxcode/
  3. 点击「配置修改」,在自定义配置中添加:
proxy_set_header Referer "https://www.bilibili.com/";
proxy_set_header User-Agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36";
proxy_set_header Origin "https://www.bilibili.com";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

点击「保存」→「重启 Nginx」。

解释:添加 B 站合规的 Referer/UA 头可绕过防盗链,反向代理将视频请求转发到国内 CDN 节点,解决香港 IP 播放限制。

5.1 基础测试

  1. 访问你的域名(如:https://bili.shany.cc);
  2. 确认页面显示:
    • 明主题:白色背景 + 浅蓝色渐变标题;
    • 右下角有主题切换按钮;
    • 核心操作区显示「粘贴自动解析」按钮;
  3. 复制 B 站视频链接(如:https://www.bilibili.com/video/BV1xx411c7mZ/);
  4. 点击「粘贴自动解析」按钮:
    • 成功:显示解析后的直链,提示「直链已复制到剪贴板」;
    • 失败:查看下方常见问题解决。

5.2 播放测试

  1. 复制解析后的直链,访问https://bili.shany.cc/play.php?url=解析后的直链
  2. 确认视频能正常播放(若不能,检查反向代理配置)。

六、常见问题及解决

6.1 跨域报错(控制台显示 Access-Control-Allow-Origin)

  • 原因:Nginx 跨域配置未生效;
  • 解决:
    1. 检查配置文件中跨域代码是否在server块内;
    2. 重启 Nginx(宝塔面板→「软件商店」→「已安装」→「Nginx」→「重启」);
    3. 清除浏览器缓存后重试。

6.2 解析失败(提示「无法解析该 B 站链接」)

  • 原因 1:PHP 扩展未安装;解决:重新安装 curl/openssl 扩展,重启 PHP;
  • 原因 2:B 站接口更新;解决:更新src目录下的解析库(重新克隆最新版bilibili-parse);
  • 原因 3:链接格式错误;解决:确保链接包含 BV/AV 号,如BV1xx411c7mZav14661594

6.3 解析后的直链无法播放

  • 原因 1:防盗链拦截;解决:使用play.php代理播放(工具已自动跳转);
  • 原因 2:地域版权限制;解决:配置反向代理(见 4.3),或更换国内服务器;
  • 原因 3:链接过期;解决:B 站直链有效期 5-30 分钟,重新解析即可。

6.4 剪贴板无法读取 / 复制

  • 原因:浏览器权限限制 / 非 HTTPS 环境;
  • 解决:
    1. 确保站点开启 SSL(HTTPS);
    2. 点击浏览器地址栏左侧「锁」图标→「允许剪贴板访问」;
    3. 手动粘贴链接到输入框,再点击解析。

6.5 主题切换按钮不生效

  • 原因:本地存储被禁用;
  • 解决:
    1. 浏览器设置→「隐私和安全」→「网站设置」→「Cookie 和网站权限」→ 允许本站使用本地存储;
    2. 清除浏览器缓存后重试。

七、注意事项

  1. 版权说明:本工具仅用于个人学习,禁止解析版权保护视频,禁止商用;
  2. 接口稳定性:B 站会不定期更新接口,若解析失败需更新src目录下的解析库;
  3. 服务器安全:
    • 宝塔面板修改默认端口(8888→自定义端口);
    • 开启「防火墙」,仅放行 80、443、自定义宝塔端口;
  4. 流量限制:解析后的视频直链会消耗服务器带宽,建议配置流量限制(宝塔→「监控」→「流量限制」);
  5. 备份:定期备份index.htmlparse.php等核心文件,避免误删。

八、文件获取

本教程配套的index.htmlparse.phpplay.phpsrc目录,可通过以下方式获取:

  1. 克隆 B 站解析库:git clone https://github.com/injahow/bilibili-parse.git
  2. 替换库内index.php为教程中的parse.php,添加index.htmlplay.php
  3. 下载一键配置包

致谢

后端项目源码bilibili-parse

其他网页解析网站的功能示范和参考

91vrchat的参考

php
75%
html/Java
25%
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇

感谢你的访问呢(*´∀`)~♥