{"id":13431643,"url":"https://github.com/starknt/tiny-bilibili-ws","last_synced_at":"2025-04-13T06:42:12.706Z","repository":{"id":60247460,"uuid":"541609981","full_name":"starknt/tiny-bilibili-ws","owner":"starknt","description":"Bilibili Live websocket api.","archived":false,"fork":false,"pushed_at":"2024-11-07T11:25:56.000Z","size":804,"stargazers_count":35,"open_issues_count":1,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-24T10:11:05.260Z","etag":null,"topics":["bilibili-api","bilibili-live","nodejs","typescript"],"latest_commit_sha":null,"homepage":"https://starknt.github.io/tiny-bilibili-ws","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/starknt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-26T13:47:33.000Z","updated_at":"2025-02-10T12:06:17.000Z","dependencies_parsed_at":"2025-01-02T02:10:48.698Z","dependency_job_id":"03545689-a7bb-4dfd-995c-76ce8f98f40f","html_url":"https://github.com/starknt/tiny-bilibili-ws","commit_stats":{"total_commits":131,"total_committers":3,"mean_commits":"43.666666666666664","dds":"0.022900763358778664","last_synced_commit":"3191ad6dac06d62bf1f84ad99ea6c3b91c382977"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starknt%2Ftiny-bilibili-ws","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starknt%2Ftiny-bilibili-ws/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starknt%2Ftiny-bilibili-ws/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/starknt%2Ftiny-bilibili-ws/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/starknt","download_url":"https://codeload.github.com/starknt/tiny-bilibili-ws/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248675439,"owners_count":21143763,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bilibili-api","bilibili-live","nodejs","typescript"],"created_at":"2024-07-31T02:01:04.750Z","updated_at":"2025-04-13T06:42:12.689Z","avatar_url":"https://github.com/starknt.png","language":"TypeScript","funding_links":[],"categories":["开发"],"sub_categories":["直播脚本"],"readme":"# tiny-bilibili-ws\n\n[![Version](https://img.shields.io/npm/v/tiny-bilibili-ws?style=flat\u0026colorA=000000\u0026colorB=000000)](https://www.npmjs.com/package/tiny-bilibili-ws)\n[![Build Size](https://img.shields.io/bundlephobia/minzip/jotai?label=bundle%20size\u0026style=flat\u0026colorA=000000\u0026colorB=000000)](https://bundlephobia.com/result?p=tiny-bilibili-ws)\n[![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/tiny-bilibili-ws)\n\n## 特点\n\n- 开箱即用\n- 同时支持浏览器和 NodeJs 环境\n- 开箱即用的 Typescript 类型提示\n- 轻量级的包体积\n\n## 文档\n\n阅读 [文档](https://starknt.github.io/tiny-bilibili-ws) 查看更多信息.\n\n## 安装\n\n```bash\npnpm install tiny-bilibili-ws\n```\n\n## 简单使用\n\n### 在 Nodejs 中使用\n\n```typescript\nimport { KeepLiveWS, toMessageData } from 'tiny-bilibili-ws'\n\nconst room = 652581\nconst live = new KeepLiveWS(room, {\n  // 触发风控后，你会无法获取弹幕发送者的用户名，详情可见：https://github.com/ddiu8081/blive-message-listener/issues/29， 传入以下参数即可解除\n  headers: {\n    Cookie: 'xxx', // 从 Bilibili 网页版获取\n  },\n  uid: 0, // 你的 Cookie 对应的 UID\n})\n\nlive.runWhenConnected(() =\u003e {\n  console.log(`正在监听 ${room}`) // 连接成功后才会触发\n})\n\nlive.on('heartbeat', (online) =\u003e {\n  console.log('人气值: ', online)\n})\n\nlive.on('DANMU_MSG', (danmu) =\u003e {\n  console.log(toMessageData(danmu))\n})\n\nlive.on('error', (e) =\u003e {\n  console.error('错误: ', e)\n})\n\nlive.on('close', () =\u003e {\n  console.log(`退出监听 ${room}`)\n})\n```\n\n### 在浏览器中使用\n\n```typescript\nimport { KeepLiveWS } from 'tiny-bilibili-ws/browser'\n\n// 因为存在跨域问题, Bilibili API 不能在浏览器中访问，现在需要手动传入 key 和 url\n// 例子可以参考 https://github.com/starknt/tiny-bilibili-ws/blob/master/playground/src/App.vue#L13\nconst room = 652581\nconst live = new KeepLiveWS(room, {\n  url: 'xxx',\n  key: 'xxx',\n})\n\nlive.runWhenConnected(() =\u003e {\n  console.log(`正在监听 ${room}`) // 连接成功后才会触发\n})\n\nlive.on('heartbeat', (online) =\u003e {\n  console.log('人气值: ', online)\n})\n\nlive.on('DANMU_MSG', (danmu) =\u003e {\n  console.log(toMessageData(danmu))\n})\n\nlive.on('error', (e) =\u003e {\n  console.error('错误: ', e)\n})\n\nlive.on('close', () =\u003e {\n  console.log(`退出监听 ${room}`)\n})\n```\n\n## Credits\n\nInspired by [https://github.com/simon300000/bilibili-live-ws](https://github.com/simon300000/bilibili-live-ws)\n\n## 参考资料\n\nBilibili API: [https://github.com/lovelyyoshino/Bilibili-Live-API/blob/master/API.WebSocket.md](https://github.com/lovelyyoshino/Bilibili-Live-API/blob/master/API.WebSocket.md)\n\n## License\n\n[MIT](./LICENSE) License ©2022 [starknt](https://github.com/starknt)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstarknt%2Ftiny-bilibili-ws","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstarknt%2Ftiny-bilibili-ws","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstarknt%2Ftiny-bilibili-ws/lists"}