GithubHelp home page GithubHelp logo

1395173231 / bilibili-live-chat Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tsuk1ko/bilibili-live-chat

0.0 0.0 0.0 2.76 MB

📽️ 无后端的仿 YouTube Live Chat 风格的简易 Bilibili 弹幕姬

Home Page: https://blc.lolicon.app

License: MIT License

JavaScript 26.21% HTML 6.21% Vue 67.58%

bilibili-live-chat's Introduction

Bilibili Live Chat

Preview

这是一个无后端的,仿 YouTube Live Chat 的,箱都不用开就能食用的 Bilibili 直播弹幕姬

主要用于 OBS,为的是在低功能需求的情况下,不依靠任何第三方本地软件实现弹幕和礼物的展示

老版本在 v1 分支,新版本是使用 Vue 3 重构的版本,并增加了一些新特性,成品直接部署在 Github Pages

食用步骤

  1. 打开 blc.lolicon.app
  2. 输入房间号,填写设置项,点击“Go!”,然后复制新页面的地址
  3. 在 OBS 中添加“浏览器”来源,将地址粘贴到“URL”处,根据自己需要调整宽高和缩放
  4. Enjoy~

其他说明

“获取房间失败”错误

由于B站 API 无法跨域调用,因此获取房间信息需要通过 codetabs 来绕开跨域限制,但这并不是一个可靠的方案,会受该服务的网络状况、稳定性、B站是否拉黑等因素影响

如果出现“获取房间失败”错误,请手动填写“主播UID”,并且如果直播间号填写的是短号,请手动获取长号(可以进到UP主空间查看右侧直播间链接末尾数字)

如果你在 OBS 中使用,建议使用“直接跨域”功能,这样无需依赖 codetabs,具体说明见下文

显示头像

获取用户头像需要调用B站 API,但B站限制了其 API 不能被跨域调用

  • 礼物弹幕数据会附带用户头像,所以仅对礼物弹幕显示头像不需要调用B站 API
  • 若不启用“直接跨域”,则调用B站 API 会自动通过 codetabs 来绕开跨域限制,但具有 5 请求/秒的限制,且请求可能比较慢甚至失败,不建议
  • 不启用“直接跨域”的情况下也可以选择调用 HibiAPI
  • 弹幕量较大时不建议显示头像(可以仅对礼物显示),请求B站或第三方 API 过于频繁可能导致 IP 被临时拉黑

头像加载机制:

  • 获取到头像后,图片会被预加载,加载完毕或超时(10 秒)后弹幕才会被插入弹幕列表
  • 非 GIF 头像会优先加载小头像(48x48)以节省流量,若首包到达时间超过 2 秒(B站 COS 图片压缩处理卡了,偶尔可能发生),则会回退为加载完整大小的头像图片

直接跨域

对于上面所述的无法跨域调用B站 API 的问题有一个解决方法:

任何基于 Chromium 的浏览器(例如 OBS Browser 和 Chrome)都可以通过添加 --disable-web-security 启动参数来禁用网页安全机制,此时可以开启“直接跨域”选项,所有B站 API 将被直接跨域调用,这样就不需要依赖任何第三方 API

示例:

  • OBS:直接在启动的快捷方式后追加该参数,然后通过快捷方式启动即可
    obs
  • Chrome:和 OBS 同理,不过必须额外添加一个 --user-data-dir 参数来指定用户目录,随意新建一个空文件夹来指定即可
    该操作看上去十分麻烦,实则是 Chrome 的一个安全措施,因为禁用网页安全机制是危险行为,日常使用时千万别这么做
    chrome

其他内核的浏览器可以自行搜索相应参数来禁用网页安全机制

Project setup

yarn install

Compiles and hot-reloads for development

yarn serve

Compiles and minifies for production

yarn build

Lints and fixes files

yarn lint

Customize configuration

See Configuration Reference.

bilibili-live-chat's People

Contributors

1395173231 avatar neotf avatar no5972 avatar tsuk1ko avatar yuiffy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.