Preface¶
People who do technical research using DeepSeek Harness (DSH) probably had this experience: wanting to find a high-quality English video on a specific topic, you have to switch to the browser, flip through old posts on Hacker News, click into YouTube, and go back to confirm the recommendation reason. Videos and discussions are separated on two sites, requiring constant window switching.
The DSH plugin dsh-hackertube maintained by chow651 aims to solve this: moving the technical videos repeatedly recommended by Hacker News over the past twenty years into the DSH panel. The player, HN discussion, and related recommendations are all in the same interface, with Chinese titles and summaries available immediately upon installation. For agents, the plugin also registers a retrieval tool, allowing them to check this video library without opening the panel.
What is this¶
dsh-hackertube is a DeepSeek Harness plugin maintained by chow651, categorized as a networking tool. It integrates Andrej Karpathy’s HackerTube data export (6454 videos) into the panel, allowing users to browse and play these videos within the DSH interface, accompanied by HN discussions and AI Q&A. The plugin is an unofficial project with no affiliation with Andrej Karpathy, Hacker News, or YouTube.
The foundation of the entire service is a public data export, not scraped in real-time by the plugin:
- Dataset comes from HackerTube’s official export, 17.8 MB, exported on October 31, 2026.
- The plugin uses Node’s built-in zlib to decompress this data, introducing no npm dependencies at runtime.
- The original site itself can be accessed directly; the difference of the plugin is window-switching-free, and full Chinese support for titles, categories, summaries, and comments.
Categories and Browsing¶
6454 videos are categorized into 16 main categories, subdivided into 150 secondary categories, sorted by HN recommendation strength. The volume of a few main categories: Arts, Comedy, Music & Movies 1344, Computer History & Culture 1026, Politics, History & Society 1018. A video can belong to multiple categories, so the sum of videos in each category is greater than 6454.
The homepage loads 60 items initially, with more appended in batches while scrolling. The detail page contains the player, the video’s discussion on HN, and right-side related recommendations; there is also an AI Q&A page on the right that hands subtitle clips from three minutes before and after the current playback position to the model, allowing for questions about specific segments. Likes, “Watch Later”, and playback history are on the host side; clearing browser data won’t lose them.
There is a set of keyboard shortcuts on the list:
| Key | Action |
|---|---|
/ |
Focus search box |
j k |
Move up/down between cards |
Enter |
Open current card |
l |
Mark as liked |
w |
Add to “Watch Later” |
h |
Return to homepage |
? |
Show keyboard shortcuts overview |
Esc |
Close modal |
Installation and Enablement¶
DeepSeek Harness needs to be installed first. The README gives three installation methods. The easiest is to send the following text directly to the agent in DSH and let it complete the installation, enable, and verification:
Install and enable HackerTube plugin: plugin_manager install_bundle target=dsh-hackertube.
If not found on npm, use target=github:chow651/dsh-hackertube.
After installation, confirm dsh-hackertube is enabled in the plugin list and remind me to refresh the page.
Using the plugin manager to install, the package is published to npm:
plugin_manager install_bundle target=dsh-hackertube
If not on npm, install from Git repository; how the host parses installation parameters depends on the version:
plugin_manager install_bundle target=github:chow651/dsh-hackertube
Can also install manually:
npm install dsh-hackertube
pnpm add dsh-hackertube
Note for manual installation: DSH loads plugins from the profile directory; installing in a normal project directory won’t work. You need to install under the profile directory, add the package name to its dsh.profile.bundles array, then restart DSH. The plugin_manager command above automates these three steps; you only need to manually do them when writing scripts or doing batch deployment.
After installation, enable dsh-hackertube in the plugin list and refresh the page. No extra configuration, no API key, and no need to prefetch any data before installation.
Tools for Agents¶
The plugin registers a tool hackertube_search. After installing the plugin, the agent can retrieve this video library in the conversation without opening the panel.
Call method:
hackertube_search({ query: "Raft 共识算法", limit: 5 })
Three parameters: query is the search term, Chinese or English; limit is the number of returned items, default 5, max 15; lang decides the language of the returned text, zh or en, default zh. The tool searches titles, channels, tags, categories, and descriptions and HN recommendation reasons for each video in Chinese or English, returning title, channel, duration, views, HN recommendation count, recommendation reason, and link, sorted by HN recommendation strength. Chinese queries can also match, and the title in the results shows the Chinese translation.
Suitable requests include: Is there a video about Raft consensus algorithm? Find a few talks on compiler optimization; Which one is Karpathy talking about backpropagation?
First Launch and Data¶
When the plugin loads, it starts downloading the official data export (17.8 MB, one-time), while also requesting the upstream interface to fill in YouTube duration, views, and publish time. Only after both are completed is the list in a complete state; during this time the interface shows a skeleton screen. The export data is valid for seven days, YouTube metadata cached for 24 hours.
Measured time taken from README:
| Item | Measured Time |
|---|---|
| First installation (empty cache) | ~10 seconds |
| Subsequent startups, list loading | 45 ms |
| Opening detail page | 10 ms |
| Related recommendations, 3778 videos with co-recommendation relationships | 2 ms |
| Related recommendations, remaining 2676 videos (vector nearest neighbors) | ~0.7 seconds first time |
| Machine translation of summaries and recommendation reasons | 0.4 to 1.8 seconds first time |
The data package contains videos.jsonl (6454 videos), mentions.jsonl (39834 HN comments), related.jsonl (3778 co-recommendation relationships), embeddings.npy (6454 × 384-dim float16 vectors, used to fill videos without co-recommendation relationships), taxonomy.json (150 categories, 16 main categories). The export does not include duration, views, publish time, and cover; these fields belong to YouTube metadata, the list requests 65 pages of upstream interfaces in parallel to fill them, caching the results for one day.
Chinese Support¶
Interface text is uniformly output via tx(lang, 中文, English), no mixed Chinese/English in either language; quantity units switch with language, Chinese uses Wan and Yi, English uses K and M.
Content-level Chinese sources are divided into two categories:
- Included with the repository: 6454 video titles, 166 category names, takes effect immediately after installation.
- Automatically translated when opening: summaries, recommendation reasons, comment quotes; prioritizes the model, falls back to machine translation if the model is unavailable. HN comment body defaults to keeping the original English, translation is an explicit action.
Model translations and machine translations are stored separately. Once configured, the model translation will overwrite the machine translation result; it won’t be stuck with machine translation just because it ran first. The machine translation calls the public endpoint of Google Web Translation.
Dependencies, Cache, and Known Limitations¶
Dependencies and fallback behaviors for various capabilities:
| Capability | Dependency | Behavior when missing |
|---|---|---|
| List, categories, search, playback | DSH’s webServer and internet access | Panel unavailable or player cannot load |
| Chinese titles and category names | None | Already provided with repository |
| Chinese for summaries etc. three texts | Model or internet | Display original English text |
| AI Q&A | DSH has configured a model | Panel prompts model unavailable, other functions normal |
| Comment translation | Internet | Button unresponsive, text stays original |
| Subtitles and direct link fallback playback | yt-dlp and ffmpeg exist in PATH |
Video still playable, AI lacks subtitle context |
yt-dlp and ffmpeg are optional dependencies, only affecting two things: whether AI Q&A can carry subtitle context, and whether it can fall back to direct link playback when YouTube embeds are rejected.
Cache is all located at $DSH_PROFILE_DIR/.dsh-hackertube/, default path ~/.dsh/.dsh-hackertube/, deleting the entire directory restores to initial state. Inside are unpacked official data, title and category translations, model translations and machine translation cache, YouTube metadata snapshots, user preferences, and subtitles.
Known limitations: Title translations are proofread by rules after generation by the model; mostly smooth, but still about a thousand items leaning towards literal translation. Chinese queries need to be machine-translated to English first to match English tags; every query sends one request, containing 300ms debounce and in-memory cache, only local matches retained when offline. YouTube embeds are limited by upstream policies; videos with age or region restrictions need to go to YouTube to watch. The playback relay page listens on 127.0.0.1:18090, trying 18091 and 18092 sequentially if the port is occupied.
Applicable Scenarios and Notes¶
Suitable for two types of people: those technical readers who want to complete “find video, watch video, watch discussion” in one interface; and DSH developers who want agents to directly retrieve this video library without opening a browser in between.
A few things to confirm before using: The plugin runs with the permissions of the current DSH process; you should review the source code and license before installation to confirm it fits your runtime environment; the license is MIT, package version 0.1.6, requires Node >= 20; the plugin is unofficial, not affiliated with HackerTube, Hacker News, or YouTube; video hosting is still on YouTube, and some videos may not embed play due to upstream policy restrictions.
Conclusion¶
The value of dsh-hackertube is focused: putting a well-organized, high-quality video dataset with Chinese support into the DSH panel, while leaving a retrieval entry for agents. No extra configuration, no API key, just download data once at first startup for offline browsing (within cache validity). See directory page at https://www.skillhub.cn/plugins/chow651/dsh-hackertube, source code at https://github.com/chow651/dsh-hackertube.