Vtuber直播间的弹幕哟
const { rooms, records, roomsRecords, read } = require('./json')
// 以上全部都是async/Promise
返回Array, 内容是房间列表
rooms()
// [
// "10143",
// "10209381",
// "102153",
// ...
// ]
- roomid: 房间号
返回Array, 内容是该房间所有记录的目录
records(12235923)
// [
// '2019-5-10', '2019-5-11',
// '2019-5-12', '2019-5-13',
// '2019-5-14', '2019-5-15',
// ...
// ]
返回Object, 内容是所有房间以及房间目录, rooms+records
roomsRecords(12235923)
// {
// '10143': [
// '2019-5-17',
// '2019-5-20',
// '2019-5-27',
// '2019-5-29',
// '2019-5-30',
// '2019-5-31'
// ],
// '10317': [ '2019-5-31', '2019-6-1' ],
// '14893': [
// '2019-5-10', '2019-5-11',
// '2019-5-12', '2019-5-13',
// '2019-5-14', '2019-5-15',
// ...
// }
- roomid: 房间号
- date: 年-月-日
读取TXT并进行一些分析
read(12235923, '2019-6-4')
// {
// danmaku: [
// { time: 0, mid: 14501198, text: '挤进去打哭她' },
// { time: 0, mid: 9175795, text: '草,根本挤不进去' },
// { time: 0, mid: 13586622, text: 'foooooooo' },
// ...
// ],
// raw: ...
// speakers: {
// '2514': { speakerNum: 1, uname: 'lostsoul' },
// '4955': { speakerNum: 55, uname: '纱布丁' },
// '35712': { speakerNum: 8, uname: 'aLIE_w' },
// ...
// },
// online: [
// 1, 1, 1,
// 1, 1, 1,
// ...
// ],
// speakerNum: 140
// }
其中数据的意思:
- danmaku: Array, 文档中的所有弹幕
- time: 单位分钟, 从今天0:0算起发送弹幕的时间
- mid: 发送者mid
- text: 弹幕文本
- timestamp: 精确到毫秒的时间戳
- speakers: Object, 发过弹幕的人, Key=mid
- speakerNum: 发了几条弹幕
- uname: 用户名
- online: Array, 长度为 1440, 记录每分钟的人气, 没开播时为1
- speakerNum: 总发言人数, 其实是
Object.keys(speakers).length
- raw: txt的文本
const io = require('socket.io-client')
const socket = io('https://api.vtbs.moe/vds')
socket.emit('join', roomid) // 订阅特定房间
socket.emit('join', 'all') // 订阅所有房间
socket.emit('leave', roomid) // 取消订阅特定房间
socket.emit('leave', 'all') // 取消订阅所有房间
注意:订阅了一部分房间之后取消订阅 all
并不会取消所有房间,只会取消之前订阅的 all
。
socket.on('danmaku', console.log)
// {message: "233", roomid: 12235923, mid: 3499295}
纯文本,记录发送者信息
[timestamp]:[mid]:[text]
TIME[x:x]ONLINE[number]
如 TIME2:3ONLINE397
: 凌晨2:3, 人气397
每天结束时在文件结尾统计SPEAKERNUM[x];[mid]:[uname]:[x], ...
- Project Paryi
- Chukolala
- Homolive
- 犬山玉姬Official: 4634167
- hololive: 8982686
- 时乃空Official: 8899503
- 萝卜子Official: 4664126
- 樱巫女Official: 21144047
- 夜空梅露Official: 21131813
- 亚绮-罗森Official: 21219990
- 赤井心Official: 14275133
- 白上吹雪Official: 11588230
- 夏色祭Official: 13946381
- 湊-阿库娅Official: 14917277
- 紫咲诗音Official: 21132965
- 百鬼绫目Official: 21130785
- 癒月巧可Official: 21107534
- 大空昴Official: 21129632
- 大神澪Official: 21133979
- AIchannel搬运: 1485080
- ENTUM
- 🔨
- Overidea_China: 704808
- 虚拟女友Yomemi: 10363055
- sora4
- 白音小雪Official: 6241497
- Winks
- Winks Extra
- KMNHZ
- KMNHZ-China: 7688266
- Office339
- Unlimited
- 游戏部企划official: 6586670
- 2434
- 赤星共和国連邦Channel: 24276
- THE MOON STUDIO
- Lucca Project
- SOW
- HoderAstra
- Chucolala
- HoneyStrap
- Animare 有閑喫茶あにまーれ
- 虚研社
- 幽灵子辰: 40529
- 无所属/无细分 (懒)
- 神楽七奈Official: 21304638
- 清露イクナ搬运组: 21327595
- YuNi_Channel: 11110277
- 青家大院: 4657471
- 战斗吧歌姬官方账号: 14578426
- 魔宵さきゅOfficial: 1321846
- 物述有栖-爱丽丝搬运: 9680769
- 是子彧吖: 510409
- 织田信姬official: 11933197
- 琥珀-虚颜: 4632617
- 8911勘测研究所: 894919
- 虚拟次元计划: 4138602
- 兽耳放送: 11631906
- Mendako醤Official: 21195793
- 竹轮喵Official: 21357592
- 乐喵Channel: 284685
- 安堂いなり_official: 21224291
- 柚唧の微光小剧场: 21338753
- 心斎桥オクトOfficial: 3827429
- 李稍牙牙語: 729794
- Siva_小虾鱼_: 13576775
- 兰若_Re: 14110147
- 女巫Vivian: 14239687
- 東雲恵Official: 10358807
- 电脑少女siro_小白: 21307497
- 紙木姐妹Official: 21288388
- 木糖纯和庄不纯: 919919
- 摩提_MoChi: 21116901
- 蒼乃幽姬: 21254047
- RukiRokiChannel: 21346226
- 兰若_Ruo: 12386041
- Kanna_康娜Official: 14222920
- 田中姬铃木雏Official: 10209381
- 白道十二宫和巴恰鲁: 21147578
- shugen: 912226
- 天神子兔音Official: 13744134
- AZKi_Official: 21267062
- 涉谷HAL_official: 21391318
- 音俣るか運搬組: 21317030
- 进击的冰糖: 876396
- 陽向ここみOfficial: 566227
- 雪城真尋搬運組: 21390586
- 水漠豆腐: 895206
- 日月咪玉-官方: 21300316
- 花芽姐妹Official: 15065340
- 淺羽Asaha_Mino: 7170879
- 竹取かるた搬运组: 21252047
- 星空悠Channel: 11493013
- RiNE_Channel: 1305231
- 樱美Yuna-Official: 43822
- 七濑胡桃menherachan: 11754098