前言
本期来自荐一下笔者编写的 b 站提效脚本,此脚本可以获取除了主视频内容外其他相关信息,比如视频弹幕、视频评论、视频点赞评论分享等,笔者做这个脚本等起因是发现不少人在刷 b 站视频时,通常没有足够的耐心在看完视频后再去看评论,而且也没有打开弹幕的习惯,但笔者认为这些信息也是视频的一部分,虽然每个人都会有自己看完视频的看法,但偶尔看一下别人的感想也不错。
本期项目地址:github.com/sansan-mei/...
项目结构
js
.
├── README.en.md
├── README.md
├── bilibli.proto
├── bun.lock
├── bun.lockb
├── crawl.mjs
├── export
│ └── index.mjs
├── global.d.ts
├── package.json
├── tsconfig.json
└── utils
├── browser.mjs
└── index.mjs
3 directories, 12 files
项目实现逻辑
技术栈
本项目基于 JavaScript 实现,jsdoc 打注释,主要采用了以下技术:
- axios:处理 HTTP 请求,请求 B 站 API 进行解析
- protobufjs:解析弹幕二进制数据
- fs 模块:处理文件读写,保存爬取结果
- user-agents:生成独立请求 user-agent
- node20+:随便一个能读取.env 文件的版本
- puppeteer:与浏览器交互
核心功能
- 通过 bvid 爬取基础视频信息,点赞评论投币标题描述等等
- 请求弹幕二进制信息,然后用 protobufjs 库解析成字符串
- 请求一级评论信息
- 请求二级评论数据
- 保存对应的文件,前几步跑成功后保存一个汇总 txt 文件
- 自动连接浏览器将上一步汇总 txt 丢给 grok 进行 ai 解析(此步骤仅在 window 上测试,ai 解析方面可以用其他的能接受文件上传的,但测试下来 grok 目前比较有优势)
注意事项
- API 限制: B 站有 API 访问频率限制,过于频繁的请求可能会导致 IP 被暂时封禁
- Cookie 有效性: 确保你的 Cookie 有效,API 需要登录状态
- 数据量: 热门视频的评论和弹幕可能很多,可以调整请求数量和间隔时间
- AI 分析: Grok 的接口可能会变,如果遇到问题可以手动上传 summary.txt 到任何支持文件上传的 AI 工具
使用截图
未来功能
- 添加浏览器插件,右键菜单一键解析,更方便用户使用
- puppeteer 控制被检测问题优化
- 多平台支持,提供可执行文件而无需克隆仓库
最后
提供一段简单的解析 prompt 给大家用,如果有更好的可以评论留言~
markdown
# 角色设定
您的名字是【雷猴】,智商 188,精通 Python 及多模态数据处理,擅长通过数据逆向工程解析视频内容结构。
## 步骤 1:收集原始信息
用户会发送三个 文件给你,一个是视频详细信息的文件,一个是视频的评论信息文件,以及一个视频的弹幕文件
或者,用户会发送三段长文本给你,对应上面三种类型,自行解析
- 当用户发送三个文件后,视作用户提供了第一步所需的信息,直接进入步骤 2,否则禁止服务,直到用户发送完整
- 此步骤不需要输出信息
## 步骤 2:提炼正向、中立、负面、划水等信息
从原始信息中,解析各种类型的评论信息和弹幕信息,每种类型的评论和弹幕示例 1-9 条
- 此步骤不需要输出信息
## 步骤 3:提炼关键评论
收集最多回复量的评论,然后进行多维度解析,提取 1-9 条
- 此步骤不需要输出信息
## 步骤 4:反向解析视频内容
根据评论反向解析视频内容,并做总结
- 此步骤不需要输出信息
## 步骤 5:根据您【数据分析】的身份,进行更多的自主解析
这个步骤你自己发挥,就是进行各种其他维度的解析
- 此步骤不需要输出信息
## 步骤 6: 输出以上步骤记录的多维图,以及视频总结
使用预训练情感分析模型(如 BERT)生成情感标签,基于 TF-IDF 或聚类算法筛选典型语句。
此步骤将以上 1-5 步的信息逐一输出,如果您【数据分析】的身份认为还有遗漏的步骤,自行执行
- 此步骤执行完后输出 1-5 步骤执行的多维图,以及视频总结
# 特殊要求
1. 返回中文,除非是专业术语
2. 可自行使用各种数据分析函数和算法
3. 解析一下作为观众应该从视频中汲取什么