dsh-bili-watch 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -28
- package/index.js +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,44 +1,55 @@
|
|
|
1
1
|
# dsh-bili-watch
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
把一条 B 站视频变成模型能读的内容:元数据、评论、弹幕、AI 字幕、本地转写、抽帧 OCR。可以装在 DSH 里当插件,也能直接跑命令行。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
取内容的顺序是先用文字(字幕或转写),文字不够再抽帧看画面。只读元数据、评论、弹幕、搜索、热榜不需要任何额外依赖;抽帧相关命令要 ffmpeg,没装会明确报错并指出装法,不会假装成功。
|
|
6
6
|
|
|
7
7
|
## 安装
|
|
8
8
|
|
|
9
|
+
### 装进 DSH 当插件
|
|
10
|
+
|
|
9
11
|
```bash
|
|
10
12
|
dsh plugin --profile web add dsh-bili-watch
|
|
11
13
|
```
|
|
12
14
|
|
|
13
|
-
|
|
15
|
+
**第二步容易漏**:打开 profile 的 `package.json`,在 `dsh.profile.bundles` 数组里加一行 `"dsh-bili-watch"`。`dsh plugin add` 只写 `dependencies`,不写 bundles。漏了这步插件装了但不生效,也不报错。改完重启 DSH。
|
|
16
|
+
|
|
17
|
+
也可以把本仓库直接放进 `profiles/<名字>/node_modules/dsh-bili-watch`。
|
|
14
18
|
|
|
15
|
-
|
|
19
|
+
插件依赖 DSH 自带的 `@deepseek-ai/dsh-tools`(peer,optional)。profile 里缺这个包时 `index.js` 会报 `ERR_MODULE_NOT_FOUND`,先补装再重启。
|
|
16
20
|
|
|
17
|
-
|
|
21
|
+
### 只当命令行工具
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm i -g dsh-bili-watch
|
|
25
|
+
bili-watch view BV1EPnG6DEJC
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
不装全局也行:clone 仓库后在目录里跑 `node tools/look.mjs view BV1EPnG6DEJC`。命令行的依赖和插件完全一样,`scripts/fetch-deps` 同样可用。
|
|
18
29
|
|
|
19
30
|
## 依赖
|
|
20
31
|
|
|
21
32
|
| 能力 | 需要 | 没有时 |
|
|
22
33
|
|---|---|---|
|
|
23
34
|
| 元数据 / 评论 / 弹幕 / 搜索 / 热榜 | 无(匿名 HTTP) | — |
|
|
24
|
-
| 抽帧 / 九宫格 / 字幕带 | `ffmpeg` |
|
|
35
|
+
| 抽帧 / 九宫格 / 字幕带 | `ffmpeg` | 报错并提示装法(`text` 会降级到读图) |
|
|
25
36
|
| AI 字幕 | 一次扫码登录(SESSDATA) | 返回「无字幕轨」,自动降级 |
|
|
26
37
|
| 本地转写 | Python 3.10+ 与 faster-whisper(`deps/.venv-asr`) | 跳过,自动降级 |
|
|
27
38
|
| 画面 OCR | Python 3.10+ 与 rapidocr_onnxruntime(`deps/.venv-ocr`) | 跳过,只剩基础抽帧 |
|
|
28
39
|
| 通用视频 URL | yt-dlp | 只支持 B 站 |
|
|
29
40
|
|
|
30
|
-
|
|
41
|
+
环境:Node.js ≥ 22。装在 DSH 里时 DSH 自带 node,命令行跑也一样。
|
|
31
42
|
|
|
32
43
|
`ffmpeg` 查找顺序:`--ffmpeg` 参数 → `BILI_LOOK_FFMPEG` → 插件 `deps/` → PATH。
|
|
33
44
|
|
|
34
|
-
`deps/`
|
|
45
|
+
`deps/` 用来放运行期文件:Python venv、模型、yt-dlp、凭证,默认不进 git(见 `.gitignore`)。ASR 和 OCR 的 Python 环境是可选的,不装也能用,只是少这两档。
|
|
35
46
|
|
|
36
|
-
`deps/_bili-asr.py` 默认从 `hf-mirror.com`
|
|
47
|
+
`deps/_bili-asr.py` 默认从 `hf-mirror.com` 下模型,国内快。海外网络可以先设 `HF_ENDPOINT=https://huggingface.co` 再跑 `fetch-deps`。
|
|
37
48
|
|
|
38
49
|
### 可选依赖(一键安装)
|
|
39
50
|
|
|
40
51
|
```powershell
|
|
41
|
-
# Windows(powershell.exe 或 pwsh
|
|
52
|
+
# Windows(powershell.exe 或 pwsh 都行)
|
|
42
53
|
powershell -ExecutionPolicy Bypass -File scripts\fetch-deps.ps1 -Target all
|
|
43
54
|
powershell -ExecutionPolicy Bypass -File scripts\fetch-deps.ps1 -Target all -Mirror cn # 国内网络:gh-proxy + 清华 PyPI + hf-mirror
|
|
44
55
|
|
|
@@ -53,28 +64,28 @@ bash scripts/fetch-deps.sh all
|
|
|
53
64
|
BILI_LOOK_MIRROR=cn bash scripts/fetch-deps.sh all
|
|
54
65
|
```
|
|
55
66
|
|
|
56
|
-
|
|
67
|
+
脚本可以重复跑:目标已存在就跳过,`-Force` 重下(Windows),`-DryRun` 只打印命令。装 venv 时会验证包能不能 import,上次装到一半的会被重建。`-Target model` 需要 ASR 环境先装好,脚本会提示。
|
|
57
68
|
|
|
58
|
-
|
|
69
|
+
**从 GitHub 下载很慢或断**:ffmpeg 要从 GitHub 拉约 80 MB 的压缩包,国内直连经常断。三条替代路径:
|
|
59
70
|
|
|
60
71
|
1. 加 `-Mirror cn` 重试(走 gh-proxy);
|
|
61
|
-
2. 手动下载 `ffmpeg.exe` 放进 `deps\`
|
|
62
|
-
3.
|
|
72
|
+
2. 手动下载 `ffmpeg.exe` 放进 `deps\` 再重跑(会被跳过);
|
|
73
|
+
3. 已经有 ffmpeg 就设 `BILI_LOOK_FFMPEG` 指向它。
|
|
63
74
|
|
|
64
|
-
macOS/Linux 的 ffmpeg
|
|
75
|
+
macOS/Linux 的 ffmpeg 用系统包管理器装,脚本只给提示。其余目标和 Windows 一样;sh 版本单项失败会跑完再汇总。
|
|
65
76
|
|
|
66
77
|
## 凭证
|
|
67
78
|
|
|
68
|
-
|
|
79
|
+
匿名也有内容:元数据、评论、抽帧、弹幕都不需要登录。
|
|
69
80
|
|
|
70
|
-
|
|
81
|
+
只有拿 AI 字幕需要登录,二选一:
|
|
71
82
|
|
|
72
|
-
1. `login`:插件出二维码,手机 B
|
|
83
|
+
1. `login`:插件出二维码,手机 B 站扫码。凭证存在插件 `deps/credential.json`,不出本机。
|
|
73
84
|
2. `--cred <文件路径>`:读一份现成的 `{sessdata, bili_jct, buvid3, buvid4}` JSON。
|
|
74
85
|
|
|
75
|
-
|
|
86
|
+
凭证顺序:给了 `--cred` 就只用它,读不到就按匿名跑;没给 `--cred` 才用 `deps/credential.json`;两者都没有就匿名。
|
|
76
87
|
|
|
77
|
-
|
|
88
|
+
这份文件等同账号登录态。别分享、别提交、别上传。
|
|
78
89
|
|
|
79
90
|
## 命令
|
|
80
91
|
|
|
@@ -94,15 +105,17 @@ macOS/Linux 的 ffmpeg 由系统包管理器安装(脚本只给提示),其
|
|
|
94
105
|
| `search <关键词> [--days 3]` | 搜视频 |
|
|
95
106
|
| `hot [--limit 10]` | 综合热门榜 |
|
|
96
107
|
| `login [--check] [--poll]` | 扫码登录 |
|
|
97
|
-
| `clean` |
|
|
108
|
+
| `clean` | 清空系统临时目录下的 `bili-watch`(Windows 是 `%TEMP%\bili-watch`) |
|
|
109
|
+
|
|
110
|
+
工具侧的等价入口:`bili_watch` 工具(参数 `command` + `bv`),或 `/bili` 命令。
|
|
98
111
|
|
|
99
|
-
|
|
112
|
+
表里只列常用参数。完整参数(`--out`、`--fresh`、`--scene`、`--ffmpeg`、`--cred`、`--fast`、`--mark-seen`、`--p` 等)跑 `bili-watch help` 看。
|
|
100
113
|
|
|
101
114
|
## 通用视频 URL
|
|
102
115
|
|
|
103
116
|
`view` / `text` / `asr` / `frames` 接受非 B 站 URL(YouTube、X、直链 mp4 等),走 yt-dlp:
|
|
104
117
|
|
|
105
|
-
-
|
|
118
|
+
- `yt-dlp.exe` 放进 `deps/`,或设 `BILI_LOOK_YTDLP`,或让它出现在 PATH 里。
|
|
106
119
|
- 下载按 URL 哈希隔离在 `%TEMP%\bili-watch\`,不会串目录。
|
|
107
120
|
- `peek` / `sub` / `comments` / `danmaku` / `sheet` / `substrip` / `ocr` 只支持 B 站。
|
|
108
121
|
|
|
@@ -118,7 +131,7 @@ AI 字幕(需登录)
|
|
|
118
131
|
读图(模型自己看帧)
|
|
119
132
|
```
|
|
120
133
|
|
|
121
|
-
|
|
134
|
+
降级时会说明原因,不会静默跳过。
|
|
122
135
|
|
|
123
136
|
## 环境变量
|
|
124
137
|
|
|
@@ -131,13 +144,13 @@ AI 字幕(需登录)
|
|
|
131
144
|
|
|
132
145
|
## 成本
|
|
133
146
|
|
|
134
|
-
-
|
|
135
|
-
- 抽帧会下载视频(360p)并跑 ffmpeg
|
|
136
|
-
-
|
|
147
|
+
- 字幕一次请求,最省。
|
|
148
|
+
- 抽帧会下载视频(360p)并跑 ffmpeg。`--step` 调低抽帧频率,脚本另外限了 `-threads 2`。
|
|
149
|
+
- 九宫格和字幕带把多帧压成一张图,省 token。
|
|
137
150
|
|
|
138
151
|
## 风险
|
|
139
152
|
|
|
140
|
-
-
|
|
153
|
+
- **凭证**:等同账号登录态,泄露即被盗。只存本机,不进日志。
|
|
141
154
|
- **频率**:正常看几条没问题;批量扫几百条会触发风控。
|
|
142
155
|
- **只读**:插件只读,不点赞、不评论、不留观看历史。
|
|
143
156
|
|
package/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-bili-watch",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"private": false,
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "Bilibili video reader for DSH: subtitles, ASR, frame OCR, comments, danmaku.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "index.js",
|
|
8
8
|
"bin": {
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
},
|
|
55
55
|
"peerDependencies": {
|
|
56
56
|
"@deepseek-ai/dsh": ">=0.2.0-rc.1 <0.3.0-0",
|
|
57
|
-
"@deepseek-ai/dsh-tools": "
|
|
57
|
+
"@deepseek-ai/dsh-tools": ">=0.2.0-rc.1 <0.3.0-0"
|
|
58
58
|
},
|
|
59
59
|
"peerDependenciesMeta": {
|
|
60
60
|
"@deepseek-ai/dsh": {
|