Skip to content

Yamada-Ryo4/bili-resolver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

📺 Bilibili Resolver & Proxy Worker

专为 VRChat 优化的 Bilibili 视频播放兼容层与流媒体代理服务。 修复 VRChat 播放器因 Referer 校验机制导致无法播放 B 站视频的问题。

本项目的核心目的是帮助用户利用 Cloudflare 资源,构建私有、稳定且数据安全的 VRChat 视频兼容服务。

VRChat Ready Cloudflare Workers License

Bili-Resolver-Worker 是一个运行在 Cloudflare Workers 上的轻量级工具。

对于 VRChat 玩家而言,它是一个协议适配器。由于 Bilibili 的视频链接需要特定的 Referer 头才能访问,标准的 VRChat 播放器(Unity Video Player)通常会因为缺少该头部而报错(403 Forbidden)。本服务作为一个中间层,补全必要的请求头,实现视频流在 VR 环境下的正常加载。

⚠️ 网络连接重要提示 (必读)

Warning

关于 workers.dev 域名的访问限制 Cloudflare 分配的默认域名(例如 xxx.workers.dev)在中国大陆通常无法直接访问。 为了确保服务可用,部署 Worker 后请务必在后台绑定自己的自定义域名。

  • 有域名: 直接在 Cloudflare Worker 设置中绑定二级域名(如 api.yourdomain.com)。
  • 无域名: 可以尝试使用免费域名服务(如 pp.uaeu.orgdpdns.org等)。
  • 💡 购买提示: 如果需要购买廉价域名(首年 $1 左右),可以参考 TLD-List 进行比价。

如果你在国内仅使用加速器游玩 VRChat,必须绑定自定义域名 (Custom Domain) 才能正常解析和播放。

  • 错误用法: https://bili.你的名字.workers.dev/BV... (国内无法连接)
  • 正确用法: https://bili.你的域名.com/BV... (直连速度通常不错)

✨ 核心特性

  • 🎮 VRChat 深度适配: 专为 USharpVideo, ProTV, iwaSyncVideo 等播放器优化,解决黑屏与加载失败问题。
  • 🕶️ Quest 性能模式: 提供 H.264 (720P) 兼容选项,完美解决 Quest 一体机解码兼容性问题。
  • 🛡️ 智能容错: 1080P 请求失败时自动降级 (720P/480P),优先保证播放连通性。
  • 🔄 Referer 协议修正: 自动补全 VRChat 缺失的请求头,修复 403 Forbidden 错误。
  • 万能链接识别: 支持直接粘贴混杂文本(如 B 站分享文案),智能提取视频 ID。
  • 📥 本地缓存: 支持提取 MP4 直链进行本地预览或缓存,优化弱网环境下的 VR 体验。
  • 💾 历史回溯: 本地浏览器自动记录最近 5 次解析,方便快速重播。
  • 🚀 零成本部署: 单文件架构,基于 Cloudflare Workers 免费版即可运行。

🎮 VRChat 使用指南

1. 基础用法

在 VRChat 世界的视频播放器(URL 输入栏)中,直接输入你的自定义域名加视频 BV 号或分享链接:

格式:

https://你的自定义域名.com/BVxxxxxx

或者直接粘贴复制的 B 站分享文本(脚本会自动提取):

https://你的自定义域名.com/【视频标题】 https://b23.tv/xxx

2. 指定画质

如果世界内网络卡顿,可以强制指定低画质(默认是 80 即 1080P):

  • 720P: .../BVxxxxxx?qn=64
  • 480P: .../BVxxxxxx?qn=32

🛠️ 部署指南

方法一:GitHub 集成部署 (推荐,支持自动更新)

最推荐的方式。通过连接 GitHub,当本项目更新时,你只需在 GitHub 点击 "Sync Fork",Cloudflare 会自动更新你的服务。

  1. Fork 本仓库:

    • 点击本项目页面右上角的 Fork 按钮,将其复制到你自己的 GitHub 账号下。
  2. 创建 Worker:

    • 登录 Cloudflare Dashboard
    • 在左侧菜单点击 Workers & Pages -> Create Application
    • 点击 Continue with GitHub
    • 选择你刚才 Fork 的仓库。
    • 保持默认设置 (Settings 均无需修改),点击 Save and Deploy
  3. 绑定域名 (中国用户必做):

    • 部署完成后,进入该 Worker 的详情页。
    • 点击顶部的 Settings (设置) -> 域和路由
    • 点击 Add Custom Domain,输入你的二级域名并保存。

方法二:网页在线部署 (简单,无需 Git)

适合不想折腾 GitHub 账号的用户。

  1. 创建 Worker:

    • 登录 Cloudflare Dashboard
    • 点击 Workers & Pages -> Create Application -> 从 Hello World! 开始
    • 点击 Deploy
  2. 粘贴代码:

    • 点击 Edit code
    • 删除原有代码,将本项目 index.js 中的代码全部复制粘贴进去。
    • 点击 Deploy 保存。
  3. 绑定域名:

    • 同样在 Settings -> 域和路由 中添加自定义域名。

方法三:使用 Wrangler CLI (开发者)

适合习惯使用命令行进行版本管理的用户。

  1. 安装与登录:

    npm install -g wrangler
    wrangler login
  2. 配置与发布:

    • 下载代码到本地。
    • 运行 wrangler deploy

🔗 API 接口文档

1. VRChat 直连 / 重定向 (万能路径)

最常用的接口,支持各种格式的路径。

  • URL: /<任意内容>
  • 说明: 路径可以是 BV号b23.tv短链,甚至是包含中文标题的脏文本。Worker 会自动提取链接并重定向到视频流。

2. 网页解析器 (Web UI)

在浏览器中直接访问域名,提供一个现代化的图形界面(Glassmorphism 风格)。

  • URL: /
  • 功能: 支持解析预览、复制直链、本地缓存 MP4。

3. 万能流代理 (Proxy)

Worker 的核心代理端点,用于中转 Bilibili 的流量。

  • URL: /proxy?url=<ENCODED_URL>&dl=<0|1>
  • 参数: dl=1 可触发浏览器附件保存行为(用于本地缓存)。

❓ 常见问题 (FAQ)

Q: 为什么 VRChat 里还是显示 Loading Error? A:

  1. 域名问题: 确认你是否使用了自定义域名?不要使用 workers.dev
  2. 播放器支持: 只有视频流是 302 重定向的,请确保你的 VRChat 播放器支持重定向(目前主流的 ProTV 和 USharpVideo 都支持)。
  3. 会员限制: 某些 B 站视频(如番剧、大会员专享)需要 Cookie 才能解析,本脚本默认是未登录状态,只能看公共视频。

Q: 为什么下载的文件名是乱码或者没有 .mp4 后缀? A: 请使用我们提供的 Web UI 界面点击下载,或者手动在链接后加上 &name=文件名。Worker 会自动处理 Content-Disposition 头来保证文件名正确。

Q: 会消耗 Cloudflare 额度吗? A: 会。Cloudflare Workers 免费版每天有 100,000 次请求限制。视频流代理会消耗 Worker 的 CPU 时间,建议仅供个人或小规模好友使用。

⚠️ 免责声明 (Disclaimer)

  1. 使用目的: 本项目仅供开发者技术学习及 VRChat 个人房主 测试组件兼容性使用。
  2. 服务条款: 严禁 将本项目用于搭建公开的大规模视频代理服务,这可能违反 Cloudflare 服务条款 (Non-HTML Content)。
  3. 版权声明: 本项目不存储、不发布任何视频内容,仅做实时流量协议转换。请尊重版权,严禁 使用本项目进行非法分发。
  4. 责任豁免: 作者不对使用本项目造成的任何账号封禁(Bilibili/Cloudflare)或法律后果负责。如果您收到滥用警告,请立即停止服务。

📄 License

MIT License

About

用Workers部署哔哩哔哩解析网站

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published