dsh-hackertube 0.1.6 → 0.2.1
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.en.md +146 -173
- package/README.md +147 -175
- package/client.js +3635 -2568
- package/index.js +4126 -3215
- package/mirror.js +768 -0
- package/package.json +7 -2
- package/recommend.js +431 -0
package/README.md
CHANGED
|
@@ -1,250 +1,222 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
1
3
|
# HackerTube for DeepSeek Harness
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
**将 Hacker News 二十年精选的 6,454 支高分技术视频搬进你的 IDE**
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
[](https://www.npmjs.com/package/dsh-hackertube)
|
|
8
|
+
[](LICENSE)
|
|
9
|
+
[](https://nodejs.org)
|
|
10
|
+
[](https://github.com/chow651/dsh-hackertube)
|
|
11
|
+
[](package.json)
|
|
6
12
|
|
|
7
|
-
|
|
13
|
+
[简体中文](README.md) | [English](README.en.md)
|
|
8
14
|
|
|
9
|
-
|
|
15
|
+
<br />
|
|
10
16
|
|
|
11
|
-
>
|
|
17
|
+
<p align="center">
|
|
18
|
+
无需在编辑器与浏览器之间来回切换。<br />
|
|
19
|
+
在 <b>DeepSeek Harness</b> 侧边栏畅享 Hacker News 社区精选的高质量技术演讲、AI 课程与系统架构视频。<br />
|
|
20
|
+
开箱即用的全量中文、字幕级上下文 AI 深度解析、原生 Agent 检索工具,让高价值信源触手可及。
|
|
21
|
+
</p>
|
|
12
22
|
|
|
13
|
-
|
|
23
|
+

|
|
14
24
|
|
|
15
|
-
|
|
25
|
+
</div>
|
|
16
26
|
|
|
17
|
-
|
|
27
|
+
---
|
|
18
28
|
|
|
19
|
-
|
|
29
|
+
## ✨ 核心特性
|
|
20
30
|
|
|
21
|
-
|
|
31
|
+
- 📺 **沉浸式内嵌播放**:专为 DSH 打造的独立安全中转服务,边写代码边看技术精华,无需切换窗口,告别空白屏与第三方防盗链限制。
|
|
32
|
+
- 🤖 **字幕级上下文 AI 问答**:问「这一段在讲什么」时,自动抓取播放点前后 3 分钟的精确字幕送入模型,直击技术细节,拒绝空洞概括。
|
|
33
|
+
- 🇨🇳 **开箱即用全量汉化**:随仓库内置全部 6,454 条标题与 166 个分类的中文对照,装完即用;详情摘要与 HN 讨论支持「模型精翻 + 本地机翻」双引擎按需解析。
|
|
34
|
+
- 🔍 **原生 Agent 检索工具**:注册 `hackertube_search` 原生 Tool,Agent 在协助日常开发时可直接检索 20 年精选视频信源并给出推荐。
|
|
35
|
+
- 🎯 **国内镜像无缝直达**:自动嗅探 B 站高质量搬运与中文字幕(基于物理时长指纹校验),命中即显直达入口,无则静默不打扰。
|
|
36
|
+
- ⚡ **零运行时依赖 & 毫秒级推荐**:纯原生 Node.js 实现(0 外部 npm 依赖),内置 384 维向量质心推荐算法;历史与喜好本地持久化。
|
|
22
37
|
|
|
23
|
-
|
|
24
|
-
|---|---:|---:|
|
|
25
|
-
| 软件工程与编程语言 | 11 | 980 |
|
|
26
|
-
| 系统、网络与安全 | 10 | 702 |
|
|
27
|
-
| AI、机器学习与数据 | 9 | 576 |
|
|
28
|
-
| 数学与理论计算机科学 | 9 | 360 |
|
|
29
|
-
| 硬件与电子 | 8 | 582 |
|
|
30
|
-
| 计算机历史与文化 | 8 | 1026 |
|
|
31
|
-
| 设计、图形与视觉媒体 | 9 | 439 |
|
|
32
|
-
| 商业、创业与经济 | 9 | 644 |
|
|
33
|
-
| 政治、历史与社会 | 9 | 1018 |
|
|
34
|
-
| 物理、太空与化学 | 8 | 600 |
|
|
35
|
-
| 生命科学、心智与健康 | 11 | 598 |
|
|
36
|
-
| 地球、能源与环境 | 8 | 354 |
|
|
37
|
-
| 工程、交通与制作 | 12 | 805 |
|
|
38
|
-
| 游戏与游戏开发 | 8 | 355 |
|
|
39
|
-
| 艺术、喜剧、音乐与电影 | 12 | 1344 |
|
|
40
|
-
| 思想、学习与语言 | 9 | 689 |
|
|
41
|
-
|
|
42
|
-
一个视频可以同时属于多个大类,所以"视频数"之和大于 6454。
|
|
38
|
+
---
|
|
43
39
|
|
|
44
|
-
##
|
|
40
|
+
## 🚀 快速开始
|
|
45
41
|
|
|
46
|
-
|
|
42
|
+
> **前提条件**:已安装并运行 [DeepSeek Harness](https://github.com/chow651/dsh-hackertube)。
|
|
47
43
|
|
|
48
|
-
###
|
|
44
|
+
### 方式一:让 Agent 一句话自动安装(推荐)
|
|
49
45
|
|
|
50
|
-
|
|
46
|
+
直接在 DeepSeek Harness 对话框中把这句话发给 Agent:
|
|
51
47
|
|
|
52
|
-
```
|
|
48
|
+
```text
|
|
53
49
|
安装并启用 HackerTube 插件:plugin_manager install_bundle target=dsh-hackertube。
|
|
54
|
-
npm
|
|
55
|
-
|
|
50
|
+
若 npm 访问受限则使用 target=github:chow651/dsh-hackertube。
|
|
51
|
+
装完确认插件列表中 dsh-hackertube 已启用,并提醒我刷新页面。
|
|
56
52
|
```
|
|
57
53
|
|
|
58
|
-
###
|
|
54
|
+
### 方式二:使用插件管理器安装
|
|
59
55
|
|
|
60
|
-
|
|
56
|
+
在 DSH 终端执行:
|
|
61
57
|
|
|
62
|
-
```
|
|
58
|
+
```bash
|
|
63
59
|
plugin_manager install_bundle target=dsh-hackertube
|
|
60
|
+
# 或直接从 GitHub 仓库安装:
|
|
61
|
+
# plugin_manager install_bundle target=github:chow651/dsh-hackertube
|
|
64
62
|
```
|
|
65
63
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
```
|
|
69
|
-
plugin_manager install_bundle target=github:chow651/dsh-hackertube
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
### 用 npm 或 pnpm 安装
|
|
64
|
+
### 方式三:手动包管理安装
|
|
73
65
|
|
|
74
|
-
```
|
|
66
|
+
```bash
|
|
67
|
+
# 在 DSH profile 目录下执行
|
|
75
68
|
npm install dsh-hackertube
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
```
|
|
69
|
+
# 或
|
|
79
70
|
pnpm add dsh-hackertube
|
|
80
71
|
```
|
|
81
72
|
|
|
82
|
-
|
|
73
|
+
安装完成后在插件列表中启用 `dsh-hackertube` 并刷新页面即可。**无需任何 API Key,无需预配置,开箱即用。**
|
|
83
74
|
|
|
84
|
-
|
|
75
|
+
---
|
|
85
76
|
|
|
86
|
-
##
|
|
77
|
+
## 🤖 原生 Agent 工具集成
|
|
87
78
|
|
|
88
|
-
|
|
79
|
+
插件向 DeepSeek Harness 注册了 `hackertube_search` 原生工具。在日常写代码或向 Agent 提问时,Agent 可直接按语义检索视频库并给出带技术依据的参考:
|
|
89
80
|
|
|
90
|
-
|
|
81
|
+
### 对话示例
|
|
91
82
|
|
|
92
|
-
|
|
83
|
+
> **你**:有没有讲 Raft 共识算法的视频?最好是作者本人讲的。
|
|
93
84
|
|
|
94
|
-
|
|
85
|
+
**Agent** 自动调用 `hackertube_search({ query: "Raft 共识算法", limit: 5 })`,秒级分析后回答:
|
|
95
86
|
|
|
96
|
-
|
|
87
|
+
> 有,推荐看 Raft 作者 Diego Ongaro 本人在 Stanford 的公开演讲《Raft 讲座》(58 分钟,HN 4 人力荐)。社区评价它比论文更加通俗直观;若需了解前置知识,可以搭配同系列的《Paxos 讲座》(67 分钟)一起看。
|
|
88
|
+
> 🔗 https://www.youtube.com/watch?v=YbZ3zDzDnrw
|
|
97
89
|
|
|
98
|
-
###
|
|
90
|
+
### 工具参数
|
|
99
91
|
|
|
100
|
-
|
|
|
101
|
-
|
|
102
|
-
|
|
|
103
|
-
| `
|
|
104
|
-
| `
|
|
105
|
-
| `l` | 标记喜欢 |
|
|
106
|
-
| `w` | 加入稍后看 |
|
|
107
|
-
| `h` | 返回首页 |
|
|
108
|
-
| `?` | 显示快捷键一览 |
|
|
109
|
-
| `Esc` | 关闭浮层 |
|
|
92
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
93
|
+
|---|---|---|---|
|
|
94
|
+
| `query` | string | 是 | 检索关键词,支持中英文混搜(如 `编译器优化`、`micrograd`) |
|
|
95
|
+
| `limit` | number | 否 | 返回条数,默认 `5`,最多 `15` |
|
|
96
|
+
| `lang` | string | 否 | 返回文本语言,`zh`(默认)或 `en` |
|
|
110
97
|
|
|
111
|
-
|
|
98
|
+
---
|
|
112
99
|
|
|
113
|
-
|
|
100
|
+
## 💡 与原始 HackerTube 站点的对比
|
|
114
101
|
|
|
115
|
-
|
|
102
|
+
本项目基于 Andrej Karpathy 开源的 [HackerTube 官方导出数据](https://karpathy.bearblog.dev/hacker-tube/),针对 IDE 开发者工作流进行了全面重构:
|
|
116
103
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
2. Raft 讲座(Raft 用户研究) — Diego Ongaro · 58 分钟 · 8.7 万次观看 · 4 人推荐
|
|
129
|
-
HN:HN commenters recommend it as a clearer introduction to Raft than the paper…
|
|
130
|
-
https://www.youtube.com/watch?v=YbZ3zDzDnrw
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
agent 据此回答:
|
|
104
|
+
| 能力维度 | 原始站点 | 本插件 (DSH Plugin) |
|
|
105
|
+
|---|---|---|
|
|
106
|
+
| **交互场景** | 独立网页浏览 | **嵌入 DSH 工作台**,边写代码边看 |
|
|
107
|
+
| **语言支持** | 纯英文 | **全量中英双语**,6,454 条中文标题装完即用 |
|
|
108
|
+
| **AI 问答** | 无 | **带播放点字幕上下文**的深度问答 |
|
|
109
|
+
| **Agent 调用** | 无 | **内置 Agent 原生检索工具** |
|
|
110
|
+
| **观看备用源** | 仅 YouTube | **智能嗅探国内高质量搬运/中字** |
|
|
111
|
+
| **进度与偏好** | 浏览器本地临时存储 | **宿主本地持久化**,清理浏览器缓存不丢失 |
|
|
112
|
+
| **个性化推荐** | 无 | **384 维向量质心 + HN 共推荐图谱** |
|
|
113
|
+
| **离线友好度** | 依赖全量实时请求 | **本地高速缓存 + 优雅降级策略** |
|
|
134
114
|
|
|
135
|
-
|
|
136
|
-
> https://www.youtube.com/watch?v=YbZ3zDzDnrw
|
|
115
|
+
---
|
|
137
116
|
|
|
138
|
-
|
|
117
|
+
## 🖥️ 界面与交互
|
|
139
118
|
|
|
140
|
-
|
|
141
|
-
- 找几个讲编译器优化的演讲
|
|
142
|
-
- Karpathy 讲反向传播的是哪一个
|
|
119
|
+

|
|
143
120
|
|
|
144
|
-
###
|
|
121
|
+
### 快捷键支持
|
|
145
122
|
|
|
146
|
-
|
|
123
|
+
| 按键 | 作用 | 按键 | 作用 |
|
|
124
|
+
|---|---|---|---|
|
|
125
|
+
| `/` | 聚焦搜索框 | `j` / `k` | 上下移动选中卡片 |
|
|
126
|
+
| `Enter` | 打开选中视频 | `l` | 喜欢 / 取消喜欢 |
|
|
127
|
+
| `w` | 加入稍后看 | `h` | 返回首页 |
|
|
128
|
+
| `?` | 显示快捷键指南 | `Esc` | 关闭详情或浮层 |
|
|
147
129
|
|
|
148
|
-
|
|
149
|
-
|---|---|
|
|
150
|
-
| `query` | 检索词,中英文均可 |
|
|
151
|
-
| `limit` | 返回条数,默认 5,最多 15 |
|
|
152
|
-
| `lang` | 返回文案的语言,`zh` 或 `en`,默认 `zh` |
|
|
130
|
+
### 🎯 国内备用源智能直达
|
|
153
131
|
|
|
154
|
-
|
|
132
|
+
为方便网络受限或偏好中文字幕的开发者,插件在详情页提供智能国内平台(B站)备用入口:
|
|
155
133
|
|
|
156
|
-
|
|
134
|
+
- **严格指纹校验**:基于物理视频时长(±2s 容差)、发布时序及双向引用凭据进行刚性校验,杜绝同名搬运与二创误判。
|
|
135
|
+
- **版本质量优选**:自动在多个搬运中优先挑选 `官方` → `中字/熟肉` → `高清` 版本。
|
|
136
|
+
- **静默按需查询**:仅在打开详情页时按需毫秒级检索并缓存;若未检索到对应搬运则**完全静默不打扰**,不增加额外占位。
|
|
157
137
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
| 首次安装(空缓存) | 约 10 秒 |
|
|
161
|
-
| 后续启动,列表加载 | 45 毫秒 |
|
|
162
|
-
| 打开详情页 | 10 毫秒 |
|
|
163
|
-
| 相关推荐,有共推荐关系的 3778 个视频 | 2 毫秒 |
|
|
164
|
-
| 相关推荐,其余 2676 个视频(向量近邻) | 首次约 0.7 秒 |
|
|
165
|
-
| 摘要与推荐理由机翻 | 首次 0.4 至 1.8 秒 |
|
|
138
|
+
<details>
|
|
139
|
+
<summary><b>📂 点击展开:16 个技术领域分类分布(6,454 支视频)</b></summary>
|
|
166
140
|
|
|
167
|
-
|
|
141
|
+
<br />
|
|
168
142
|
|
|
169
|
-
|
|
143
|
+

|
|
170
144
|
|
|
171
|
-
|
|
145
|
+
| 大类 | 子分类数 | 包含视频数 |
|
|
146
|
+
|---|---:|---:|
|
|
147
|
+
| 软件工程与编程语言 | 11 | 980 |
|
|
148
|
+
| 系统、网络与安全 | 10 | 702 |
|
|
149
|
+
| AI、机器学习与数据 | 9 | 576 |
|
|
150
|
+
| 数学与理论计算机科学 | 9 | 360 |
|
|
151
|
+
| 硬件与电子 | 8 | 582 |
|
|
152
|
+
| 计算机历史与文化 | 8 | 1026 |
|
|
153
|
+
| 设计、图形与视觉媒体 | 9 | 439 |
|
|
154
|
+
| 商业、创业与经济 | 9 | 644 |
|
|
155
|
+
| 政治、历史与社会 | 9 | 1018 |
|
|
156
|
+
| 物理、太空与化学 | 8 | 600 |
|
|
157
|
+
| 生命科学、心智与健康 | 11 | 598 |
|
|
158
|
+
| 地球、能源与环境 | 8 | 354 |
|
|
159
|
+
| 工程、交通与制作 | 12 | 805 |
|
|
160
|
+
| 游戏与游戏开发 | 8 | 355 |
|
|
161
|
+
| 艺术、喜剧、音乐与电影 | 12 | 1344 |
|
|
162
|
+
| 思想、学习与语言 | 9 | 689 |
|
|
172
163
|
|
|
173
|
-
|
|
164
|
+
> 注:部分跨领域视频可能归属于多个分类,因此各分类视频数之和大于总数。
|
|
174
165
|
|
|
175
|
-
|
|
176
|
-
|---|---|---|
|
|
177
|
-
| 6454 条视频标题 | 随仓库附带的译文表 | 安装后立即生效 |
|
|
178
|
-
| 166 条分类名称 | 随仓库附带 | 安装后立即生效 |
|
|
179
|
-
| 摘要、推荐理由、评论引用 | 打开时自动翻译 | 优先使用模型,模型不可用时使用机翻 |
|
|
180
|
-
| HN 评论正文 | 逐条翻译或整段翻译 | 首次约 1 秒,之后读取缓存 |
|
|
166
|
+
</details>
|
|
181
167
|
|
|
182
|
-
|
|
168
|
+
---
|
|
183
169
|
|
|
184
|
-
|
|
170
|
+
## ⚡ 性能与技术架构
|
|
185
171
|
|
|
186
|
-
|
|
172
|
+
- **零运行时依赖**:解压采用 Node.js 原生 `zlib`,无任何额外 npm 运行时依赖,极轻极简。
|
|
173
|
+
- **极致响应速度**:
|
|
174
|
+
- 启动后列表渲染:**~45 ms**
|
|
175
|
+
- 详情页打开耗时:**~10 ms**
|
|
176
|
+
- 关联推荐(共推荐关系):**~2 ms**
|
|
177
|
+
- 向量余弦近邻检索:首次约 **0.7 s**,后续全内存命中
|
|
178
|
+
- **优雅降级机制**:
|
|
187
179
|
|
|
188
|
-
|
|
|
180
|
+
| 功能模块 | 运行条件 | 离线 / 依赖缺失时的降级表现 |
|
|
189
181
|
|---|---|---|
|
|
190
|
-
|
|
|
191
|
-
|
|
|
192
|
-
|
|
|
193
|
-
| AI
|
|
194
|
-
|
|
|
195
|
-
|
|
|
196
|
-
|
|
197
|
-
yt-dlp 与 ffmpeg 均为可选。它们只影响两件事:AI 问答能否携带字幕上下文,以及 YouTube 嵌入被拒绝时能否回退到直链播放。
|
|
198
|
-
|
|
199
|
-
## 数据来源
|
|
182
|
+
| **浏览、检索与基础播放** | DSH Web 容器与网络 | 本地离线索引可用,支持本地搜索 |
|
|
183
|
+
| **中文标题与全部分类** | 无任何外部依赖 | 随仓库自带,100% 永久离线生效 |
|
|
184
|
+
| **摘要与长评论翻译** | 模型或网络翻译通道 | 自动回退展示英文原文 |
|
|
185
|
+
| **AI 问答** | DSH 已配置模型 | 提示模型未就绪,基础播放与浏览不受影响 |
|
|
186
|
+
| **字幕提取** | 可选本地 `yt-dlp` + `ffmpeg` | 缺失时仅影响 AI 获取实时字幕,视频照常播放 |
|
|
187
|
+
| **国内备用源** | 国内平台网络连通 | 无法连通时不展示备用入口,正常走原版播放 |
|
|
200
188
|
|
|
201
|
-
|
|
189
|
+
<details>
|
|
190
|
+
<summary><b>📁 数据源与本地缓存存储结构</b></summary>
|
|
202
191
|
|
|
203
|
-
|
|
204
|
-
videos.jsonl 6454 条视频,含标题、频道、摘要、推荐理由、标签、分类、HN 统计
|
|
205
|
-
mentions.jsonl 39834 条 HN 评论,含作者、月份、立场、原文
|
|
206
|
-
related.jsonl 3778 条共推荐关系
|
|
207
|
-
embeddings.npy 6454 × 384 维 float16 向量,用于补齐无共推荐关系的视频
|
|
208
|
-
embedding_ids.json 向量行号与视频 id 的对应
|
|
209
|
-
taxonomy.json 150 个分类,16 个大类
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
解压使用 Node 内置的 zlib,插件不引入任何 npm 运行时依赖。
|
|
213
|
-
|
|
214
|
-
导出不包含时长、播放量、发布时间与封面,这些字段属于 YouTube 元数据,因此列表仍会并行请求 65 页上游接口补齐,结果缓存一天。
|
|
192
|
+
<br />
|
|
215
193
|
|
|
216
|
-
|
|
194
|
+
数据首次加载后缓存在 `$DSH_PROFILE_DIR/.dsh-hackertube/`(默认路径为 `~/.dsh/.dsh-hackertube/`):
|
|
217
195
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
i18n/zh-comments.json 评论机翻缓存
|
|
227
|
-
list.json YouTube 元信息与列表快照
|
|
228
|
-
prefs.json 喜欢、稍后看、历史
|
|
229
|
-
subs/ 字幕
|
|
196
|
+
```text
|
|
197
|
+
.dsh-hackertube/
|
|
198
|
+
├── export/ # 官方解压数据包(~48 MB,含 videos、mentions、embeddings.npy 等)
|
|
199
|
+
├── i18n/ # 中文译文缓存(标题、分类、模型精翻、机翻持久化)
|
|
200
|
+
├── list.json # YouTube 播放量、时长与发布时间元数据快照
|
|
201
|
+
├── prefs.json # 用户的喜欢、稍后看与播放进度历史
|
|
202
|
+
├── subs/ # 按需缓存的字幕文件
|
|
203
|
+
└── mirror.json # 备用源检索结果与时效缓存
|
|
230
204
|
```
|
|
231
205
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
标题译文由模型生成后按规则校对,多数通顺,仍有约一千条偏向直译。
|
|
235
|
-
|
|
236
|
-
中文查询需要先机翻为英文才能命中英文标签,每次查询发起一次请求,含 300 毫秒防抖与内存缓存。断网时仅保留本地匹配。
|
|
206
|
+
如需重置初始状态,只需清空该目录即可。
|
|
237
207
|
|
|
238
|
-
|
|
208
|
+
</details>
|
|
239
209
|
|
|
240
|
-
|
|
210
|
+
---
|
|
241
211
|
|
|
242
|
-
##
|
|
212
|
+
## 📌 致谢与声明
|
|
243
213
|
|
|
244
|
-
|
|
214
|
+
- 核心数据源自 **[Andrej Karpathy](https://github.com/karpathy)** 创建的 [HackerTube](https://karpathy.bearblog.dev/hacker-tube/) 项目并遵循其开放数据倡议。
|
|
215
|
+
- 讨论内容取自 [Hacker News](https://news.ycombinator.com),视频版权归 YouTube 原创作者所有。
|
|
216
|
+
- 本项目为开源社区第三方插件,非官方出品,与 Andrej Karpathy、Hacker News 或 YouTube 无隶属关系。
|
|
245
217
|
|
|
246
|
-
|
|
218
|
+
---
|
|
247
219
|
|
|
248
|
-
##
|
|
220
|
+
## 📄 许可证
|
|
249
221
|
|
|
250
|
-
MIT
|
|
222
|
+
[MIT License](LICENSE) © 2026
|