dsh-plugin-streamnest 0.0.0-stage → 0.0.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.
Files changed (150) hide show
  1. package/LICENSE +27 -0
  2. package/README.en.md +106 -0
  3. package/README.md +105 -2
  4. package/assets/logo.svg +5 -0
  5. package/assets/reference-projects.json +16 -0
  6. package/assets/screenshots/deepseek-harness-installed.png +0 -0
  7. package/lib/THIRD_PARTY_LICENSES.txt +2068 -0
  8. package/lib/apps/api/src/app.module.js +52 -0
  9. package/lib/apps/api/src/app.module.js.map +1 -0
  10. package/lib/apps/api/src/common/api-error.filter.js +22 -0
  11. package/lib/apps/api/src/common/api-error.filter.js.map +1 -0
  12. package/lib/apps/api/src/common/business-error.js +21 -0
  13. package/lib/apps/api/src/common/business-error.js.map +1 -0
  14. package/lib/apps/api/src/common/network.js +89 -0
  15. package/lib/apps/api/src/common/network.js.map +1 -0
  16. package/lib/apps/api/src/common/process.js +101 -0
  17. package/lib/apps/api/src/common/process.js.map +1 -0
  18. package/lib/apps/api/src/common/validation.js +30 -0
  19. package/lib/apps/api/src/common/validation.js.map +1 -0
  20. package/lib/apps/api/src/create-application.js +65 -0
  21. package/lib/apps/api/src/create-application.js.map +1 -0
  22. package/lib/apps/api/src/main.js +9 -0
  23. package/lib/apps/api/src/main.js.map +1 -0
  24. package/lib/apps/api/src/media/arguments.js +120 -0
  25. package/lib/apps/api/src/media/arguments.js.map +1 -0
  26. package/lib/apps/api/src/media/delete-downloads.js +129 -0
  27. package/lib/apps/api/src/media/delete-downloads.js.map +1 -0
  28. package/lib/apps/api/src/media/directory-sync.js +152 -0
  29. package/lib/apps/api/src/media/directory-sync.js.map +1 -0
  30. package/lib/apps/api/src/media/dto/media.dto.js +268 -0
  31. package/lib/apps/api/src/media/dto/media.dto.js.map +1 -0
  32. package/lib/apps/api/src/media/engines/aria2-progress.js +11 -0
  33. package/lib/apps/api/src/media/engines/aria2-progress.js.map +1 -0
  34. package/lib/apps/api/src/media/engines/aria2.js +85 -0
  35. package/lib/apps/api/src/media/engines/aria2.js.map +1 -0
  36. package/lib/apps/api/src/media/engines/direct-state.js +42 -0
  37. package/lib/apps/api/src/media/engines/direct-state.js.map +1 -0
  38. package/lib/apps/api/src/media/engines/direct.js +269 -0
  39. package/lib/apps/api/src/media/engines/direct.js.map +1 -0
  40. package/lib/apps/api/src/media/engines/js-runtime.js +125 -0
  41. package/lib/apps/api/src/media/engines/js-runtime.js.map +1 -0
  42. package/lib/apps/api/src/media/engines/types.js +2 -0
  43. package/lib/apps/api/src/media/engines/types.js.map +1 -0
  44. package/lib/apps/api/src/media/formats.js +106 -0
  45. package/lib/apps/api/src/media/formats.js.map +1 -0
  46. package/lib/apps/api/src/media/media.controller.js +312 -0
  47. package/lib/apps/api/src/media/media.controller.js.map +1 -0
  48. package/lib/apps/api/src/media/media.engine.js +446 -0
  49. package/lib/apps/api/src/media/media.engine.js.map +1 -0
  50. package/lib/apps/api/src/media/media.service.js +563 -0
  51. package/lib/apps/api/src/media/media.service.js.map +1 -0
  52. package/lib/apps/api/src/media/parsing/browser-paths.js +105 -0
  53. package/lib/apps/api/src/media/parsing/browser-paths.js.map +1 -0
  54. package/lib/apps/api/src/media/parsing/browser-pool.service.js +84 -0
  55. package/lib/apps/api/src/media/parsing/browser-pool.service.js.map +1 -0
  56. package/lib/apps/api/src/media/parsing/cache.service.js +123 -0
  57. package/lib/apps/api/src/media/parsing/cache.service.js.map +1 -0
  58. package/lib/apps/api/src/media/parsing/cookie.service.js +243 -0
  59. package/lib/apps/api/src/media/parsing/cookie.service.js.map +1 -0
  60. package/lib/apps/api/src/media/parsing/platform-data.js +131 -0
  61. package/lib/apps/api/src/media/parsing/platform-data.js.map +1 -0
  62. package/lib/apps/api/src/media/parsing/platform-parser.service.js +230 -0
  63. package/lib/apps/api/src/media/parsing/platform-parser.service.js.map +1 -0
  64. package/lib/apps/api/src/media/parsing/youtube-retry.js +24 -0
  65. package/lib/apps/api/src/media/parsing/youtube-retry.js.map +1 -0
  66. package/lib/apps/api/src/media/thumbnail.service.js +189 -0
  67. package/lib/apps/api/src/media/thumbnail.service.js.map +1 -0
  68. package/lib/apps/api/src/media/wechat/api.js +251 -0
  69. package/lib/apps/api/src/media/wechat/api.js.map +1 -0
  70. package/lib/apps/api/src/media/wechat/decode.js +121 -0
  71. package/lib/apps/api/src/media/wechat/decode.js.map +1 -0
  72. package/lib/apps/api/src/media/wechat/wechat.service.js +61 -0
  73. package/lib/apps/api/src/media/wechat/wechat.service.js.map +1 -0
  74. package/lib/apps/api/src/runtime/assets.json +98 -0
  75. package/lib/apps/api/src/runtime/runtime-archive.js +44 -0
  76. package/lib/apps/api/src/runtime/runtime-archive.js.map +1 -0
  77. package/lib/apps/api/src/runtime/runtime-discovery.js +163 -0
  78. package/lib/apps/api/src/runtime/runtime-discovery.js.map +1 -0
  79. package/lib/apps/api/src/runtime/runtime-installer.js +93 -0
  80. package/lib/apps/api/src/runtime/runtime-installer.js.map +1 -0
  81. package/lib/apps/api/src/runtime/runtime-manager.js +180 -0
  82. package/lib/apps/api/src/runtime/runtime-manager.js.map +1 -0
  83. package/lib/apps/api/src/runtime/runtime-manifest.js +48 -0
  84. package/lib/apps/api/src/runtime/runtime-manifest.js.map +1 -0
  85. package/lib/apps/api/src/runtime/runtime.service.js +2 -0
  86. package/lib/apps/api/src/runtime/runtime.service.js.map +1 -0
  87. package/lib/apps/api/src/storage/legacy-vault.js +66 -0
  88. package/lib/apps/api/src/storage/legacy-vault.js.map +1 -0
  89. package/lib/apps/api/src/storage/task-record.js +87 -0
  90. package/lib/apps/api/src/storage/task-record.js.map +1 -0
  91. package/lib/apps/api/src/storage/vault.store.js +321 -0
  92. package/lib/apps/api/src/storage/vault.store.js.map +1 -0
  93. package/lib/apps/api/src/system/browser-profiles.js +117 -0
  94. package/lib/apps/api/src/system/browser-profiles.js.map +1 -0
  95. package/lib/apps/api/src/system/journal.service.js +87 -0
  96. package/lib/apps/api/src/system/journal.service.js.map +1 -0
  97. package/lib/apps/api/src/system/native.service.js +106 -0
  98. package/lib/apps/api/src/system/native.service.js.map +1 -0
  99. package/lib/apps/api/src/system/system.controller.js +162 -0
  100. package/lib/apps/api/src/system/system.controller.js.map +1 -0
  101. package/lib/apps/api/src/system/system.dto.js +127 -0
  102. package/lib/apps/api/src/system/system.dto.js.map +1 -0
  103. package/lib/apps/api/src/system/system.service.js +191 -0
  104. package/lib/apps/api/src/system/system.service.js.map +1 -0
  105. package/lib/apps/shared/src/brand.js +9 -0
  106. package/lib/apps/shared/src/brand.js.map +1 -0
  107. package/lib/apps/shared/src/browser-profiles.js +15 -0
  108. package/lib/apps/shared/src/browser-profiles.js.map +1 -0
  109. package/lib/apps/shared/src/contracts.js +13 -0
  110. package/lib/apps/shared/src/contracts.js.map +1 -0
  111. package/lib/apps/shared/src/cookies.js +23 -0
  112. package/lib/apps/shared/src/cookies.js.map +1 -0
  113. package/lib/apps/shared/src/links.js +7 -0
  114. package/lib/apps/shared/src/links.js.map +1 -0
  115. package/lib/apps/shared/src/media-files.js +17 -0
  116. package/lib/apps/shared/src/media-files.js.map +1 -0
  117. package/lib/apps/shared/src/messages.js +255 -0
  118. package/lib/apps/shared/src/messages.js.map +1 -0
  119. package/lib/apps/shared/src/parse-errors.js +69 -0
  120. package/lib/apps/shared/src/parse-errors.js.map +1 -0
  121. package/lib/apps/shared/src/preferences.js +26 -0
  122. package/lib/apps/shared/src/preferences.js.map +1 -0
  123. package/lib/apps/shared/src/system.js +7 -0
  124. package/lib/apps/shared/src/system.js.map +1 -0
  125. package/lib/apps/shared/src/task-messages.js +21 -0
  126. package/lib/apps/shared/src/task-messages.js.map +1 -0
  127. package/lib/apps/shared/src/thumbnail.js +16 -0
  128. package/lib/apps/shared/src/thumbnail.js.map +1 -0
  129. package/lib/client.js +43785 -0
  130. package/lib/index.js +1 -0
  131. package/lib/packages/harness/src/index.js +46 -0
  132. package/lib/packages/harness/src/index.js.map +1 -0
  133. package/lib/packages/harness/src/tools/business-errors.js +47 -0
  134. package/lib/packages/harness/src/tools/business-errors.js.map +1 -0
  135. package/lib/packages/harness/src/tools/permissions.js +24 -0
  136. package/lib/packages/harness/src/tools/permissions.js.map +1 -0
  137. package/lib/packages/harness/src/tools/register.js +356 -0
  138. package/lib/packages/harness/src/tools/register.js.map +1 -0
  139. package/lib/packages/harness/src/tools/schemas.js +248 -0
  140. package/lib/packages/harness/src/tools/schemas.js.map +1 -0
  141. package/lib/packages/harness/src/tools/system-schemas.js +88 -0
  142. package/lib/packages/harness/src/tools/system-schemas.js.map +1 -0
  143. package/lib/packages/harness/src/tools/system-tools.js +193 -0
  144. package/lib/packages/harness/src/tools/system-tools.js.map +1 -0
  145. package/licenses/downvid.LICENSE +22 -0
  146. package/licenses/wx_channels_download.LICENSE +35 -0
  147. package/package.json +150 -3
  148. package/packages/harness/cordis.patch.yml +3 -0
  149. package/packages/harness/locale/en.json +6 -0
  150. package/packages/harness/locale/zh.json +6 -0
package/LICENSE ADDED
@@ -0,0 +1,27 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 StreamNest contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
23
+ Scope: This license covers original StreamNest contributions only. Third-party
24
+ and adapted portions retain their own copyright notices and license terms.
25
+ Bundled dependency notices and license terms are included in
26
+ lib/THIRD_PARTY_LICENSES.txt.
27
+ The Commons Clause condition on the Channels integration is not overridden.
package/README.en.md ADDED
@@ -0,0 +1,106 @@
1
+ # StreamNest · 拾流
2
+
3
+ [![DeepSeek Harness](https://img.shields.io/badge/DeepSeek-Harness-4D6BFE)](https://github.com/deepseek-ai/deepseek-harness)
4
+ [![Stars](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgit.aimz.cc.cd%2Fapi%2Fv1%2Frepos%2Flynn1286%2Fdsh-plugin-streamnest&query=%24.stars_count&label=Stars&logo=gitea&color=orange)](https://git.aimz.cc.cd/lynn1286/dsh-plugin-streamnest/stars)
5
+ [![Version](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgit.aimz.cc.cd%2Fapi%2Fv1%2Frepos%2Flynn1286%2Fdsh-plugin-streamnest%2Fraw%2Fpackage.json%3Fref%3Dmain&query=%24.version&prefix=v&label=version&color=blue)](package.json)
6
+ [![License: MIT (original code)](https://img.shields.io/badge/license-MIT-green)](LICENSE)
7
+
8
+ [中文](README.md) | English
9
+
10
+ A local audio and video downloader plugin for DeepSeek Harness. Parse media links, select video quality, audio tracks or subtitles, and save files to your computer. The UI and Agent share the same services and download queue.
11
+
12
+ ![StreamNest installed and enabled in the DeepSeek Harness desktop app, showing the Link Download page](assets/screenshots/deepseek-harness-installed.png)
13
+
14
+ ## Features
15
+
16
+ - **Link parsing**: Parse media with yt-dlp, with dedicated APIs and browser fallbacks for Douyin and Kuaishou; supports single-video WeChat Channels share links.
17
+ - **Download options**: Select video quality and audio tracks, extract MP3 audio, and download subtitles in their original format or convert them to SRT.
18
+ - **Task management**: Queue downloads, control concurrency, view progress and speed, pause, resume, retry, and inspect local files.
19
+ - **Completed downloads**: Search, view local thumbnails, play media, open folders, and sync the download directory; permanently delete individual or multiple downloads after a second confirmation.
20
+ - **Download acceleration**: Download direct links in chunks with resume support and optional aria2; concurrent HLS / DASH segment downloads.
21
+ - **Settings**: Configure the download directory, filename template, default quality, proxy, explicitly selected browser profile or Cookie file, and Chinese or English UI.
22
+ - **Dependencies and diagnostics**: Detect or install yt-dlp, FFmpeg and ffprobe; inspect redacted logs and generate feedback drafts.
23
+
24
+ ## Installation
25
+
26
+ In DeepSeek Harness, open **Plugins → Add Plugin**, enter `dsh-plugin-streamnest`, select the official npm registry, then install and enable it. The published package includes build artifacts and requires no compilation during installation.
27
+
28
+ You can also use the official CLI:
29
+
30
+ ```bash
31
+ dsh plugin --profile desktop add dsh-plugin-streamnest --registry=https://registry.npmjs.org/
32
+ ```
33
+
34
+ For the Web version of DeepSeek Harness, replace `desktop` with the appropriate profile, such as `web`. See `peerDependencies` in `package.json` for the supported host SDK versions.
35
+
36
+ ## Usage
37
+
38
+ 1. Open StreamNest in the host, go to **Settings**, select a local download directory, and check the runtime dependencies.
39
+ 2. Paste a media link into **Link Download**, parse it, select video quality, audio tracks or subtitles, and add a download to the queue.
40
+ 3. Monitor and control tasks in **Download Queue**; play media or open its folder in **Completed Downloads**.
41
+
42
+ You can also ask the Agent in a host conversation to parse links, create downloads, inspect the queue, or pause tasks. Results stay in sync with the UI.
43
+
44
+ ### Limitations
45
+
46
+ - Parses one video at a time without expanding playlists; live streams are not supported.
47
+ - Site availability depends on platform APIs, access permissions, login state, and runtime tool versions.
48
+ - Standard WeChat Channels share links require a Tencent Yuanbao login session. Links containing valid playback parameters can be parsed directly. Only single videos are supported.
49
+ - Browser Cookies are read only after a source is explicitly configured. Without a configured source, requests use an unauthenticated session.
50
+ - Downloads do not resume automatically after the host restarts; resume them manually.
51
+ - Deleting items in **Completed Downloads** permanently deletes their registered files after a second confirmation and cannot be undone. Directory sync only updates records and does not delete files.
52
+ - aria2 is optional and must be installed separately or provided through a configured path.
53
+
54
+ ## Development and packaging
55
+
56
+ Requires Node.js ≥ 22.13 and pnpm 11.5.0, as pinned in `package.json`.
57
+
58
+ ```bash
59
+ pnpm install --frozen-lockfile
60
+ pnpm dev
61
+ ```
62
+
63
+ The development preview runs at `http://127.0.0.1:5179`, with the API at `http://127.0.0.1:4322/streamnest/api`. The preview uses the official host theme and UI primitives; in the DeepSeek Harness desktop app, the plugin inherits the host theme.
64
+
65
+ ```bash
66
+ pnpm run check
67
+ pnpm run release
68
+ ```
69
+
70
+ The release archive is written to `release/streamnest-<version>.tgz` and can be installed locally. It includes the project documentation, reference project sources, original license texts, and bundled client dependency licenses.
71
+
72
+ ### Publishing to npm
73
+
74
+ Sign in with `npm login`, or provide an access token with publishing permissions through standard npm configuration, then run:
75
+
76
+ ```bash
77
+ pnpm run publish:npm --dry-run
78
+ pnpm run publish:npm
79
+ ```
80
+
81
+ The publish command runs checks, creates a release archive, and publishes that same archive to the official npm registry. Authentication uses standard npm login or access token configuration, and npm verifies publishing permissions. `--dry-run` performs a rehearsal only. Update the version in `package.json` before each subsequent release; a published version cannot be overwritten.
82
+
83
+ | Directory | Responsibility |
84
+ | -------------------------------- | --------------------------------------------------------- |
85
+ | `apps/api` | NestJS business services, DTO validation, media downloads |
86
+ | `apps/web` | React UI and Chinese / English translations |
87
+ | `apps/shared` | Shared contracts for tasks, settings and output files |
88
+ | `packages/harness` | Host integration, official UI adapters and Agent tools |
89
+ | `assets/reference-projects.json` | Reference project source list |
90
+ | `licenses` | Original license texts for reference projects |
91
+
92
+ The UI, API and Agent reuse the same business services. Host adapters live in `packages/harness`.
93
+
94
+ ## Acknowledgments
95
+
96
+ Reference implementations: [DownVid](https://github.com/yxxbc/downvid) · [wx_channels_download](https://github.com/ltaoo/wx_channels_download)
97
+
98
+ ## License
99
+
100
+ Original contributions are licensed under the [MIT License](LICENSE); the MIT badge above applies only to those contributions. Referenced and adapted portions retain their original authors' copyrights and license terms. The wx_channels_download license includes the Commons Clause; its full license text governs those portions. The build collects reference project sources, original licenses and bundled client dependency licenses in `lib/THIRD_PARTY_LICENSES.txt`.
101
+
102
+ ## Disclaimer
103
+
104
+ - This is an independently developed third-party plugin with no official affiliation with or endorsement by DeepSeek or the relevant media platforms.
105
+ - Download only content you own, are authorized to download, or may lawfully download under applicable law. Follow the source platform's terms of service and respect copyright and privacy requirements. Do not use this software to bypass paywalls, DRM or other access controls, distribute content without authorization, or engage in other unlawful activities.
106
+ - The software is provided “as is,” without guarantees of continued third-party site availability or the completeness, accuracy or fitness of downloads for a particular purpose. Keep account credentials secure and back up important files. To the extent permitted by applicable law, authors and contributors are not liable for losses arising from use of this software, subject to [LICENSE](LICENSE) and the relevant third-party licenses.
package/README.md CHANGED
@@ -1,3 +1,106 @@
1
- # Temporary Holding Version
1
+ # 拾流 · StreamNest
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ [![DeepSeek Harness](https://img.shields.io/badge/DeepSeek-Harness-4D6BFE)](https://github.com/deepseek-ai/deepseek-harness)
4
+ [![Stars](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgit.aimz.cc.cd%2Fapi%2Fv1%2Frepos%2Flynn1286%2Fdsh-plugin-streamnest&query=%24.stars_count&label=Stars&logo=gitea&color=orange)](https://git.aimz.cc.cd/lynn1286/dsh-plugin-streamnest/stars)
5
+ [![Version](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgit.aimz.cc.cd%2Fapi%2Fv1%2Frepos%2Flynn1286%2Fdsh-plugin-streamnest%2Fraw%2Fpackage.json%3Fref%3Dmain&query=%24.version&prefix=v&label=version&color=blue)](package.json)
6
+ [![License: MIT (original code)](https://img.shields.io/badge/license-MIT-green)](LICENSE)
7
+
8
+ 中文 | [English](README.en.md)
9
+
10
+ 适用于 DeepSeek Harness 的本地音视频下载插件。解析媒体链接、选择画质、音轨或字幕并保存到本机,页面与 Agent 共用同一套服务和下载队列。
11
+
12
+ ![拾流已安装并启用:DeepSeek Harness 桌面版中的链接下载界面](assets/screenshots/deepseek-harness-installed.png)
13
+
14
+ ## 功能
15
+
16
+ - **链接解析**:通过 yt-dlp 解析媒体,抖音、快手提供专用 API 和浏览器回退;支持微信视频号单视频分享链接。
17
+ - **下载选择**:选择视频画质和音轨,提取 MP3,下载字幕并选择保留源格式或转换为 SRT。
18
+ - **任务管理**:下载排队、并发控制、进度与速度显示、暂停、继续、重试,以及本地文件查看。
19
+ - **已完成下载**:搜索、本地缩略图、播放、打开目录和目录同步;支持二次确认后的单个与批量永久删除。
20
+ - **下载加速**:直链分块下载和断点续传,可选 aria2;支持 HLS / DASH 分片并发。
21
+ - **运行设置**:下载目录、文件名模板、默认画质、代理、明确指定的浏览器账号或 Cookie 文件,以及中英文界面。
22
+ - **依赖与诊断**:探测或安装 yt-dlp、FFmpeg、ffprobe;查看脱敏日志和生成反馈草稿。
23
+
24
+ ## 安装
25
+
26
+ 在 DeepSeek Harness 的「插件 → 添加插件」中输入 `dsh-plugin-streamnest`,选择 npm 官方源安装并启用。发布包已包含构建产物,安装时无需编译。
27
+
28
+ 也可以使用官方 CLI:
29
+
30
+ ```bash
31
+ dsh plugin --profile desktop add dsh-plugin-streamnest --registry=https://registry.npmjs.org/
32
+ ```
33
+
34
+ 使用 DeepSeek Harness Web 版时,将 `desktop` 换为对应的 profile(例如 `web`)。宿主 SDK 兼容范围见 `package.json` 的 `peerDependencies`。
35
+
36
+ ## 使用
37
+
38
+ 1. 在宿主中打开「拾流」,进入「运行设置」,选择本机下载目录并检查运行依赖。
39
+ 2. 在「链接下载」粘贴媒体链接,解析后选择画质、音轨或字幕,加入下载队列。
40
+ 3. 在「下载队列」查看进度和控制任务,在「已完成下载」播放或打开文件目录。
41
+
42
+ 也可以在宿主会话中让 Agent 解析链接、创建下载任务、查询队列或暂停任务,操作结果与页面同步。
43
+
44
+ ### 功能限制
45
+
46
+ - 每次解析一个视频,不展开播放列表;不支持正在直播的媒体。
47
+ - 网站可用性取决于站点接口、访问权限、登录状态和运行工具版本。
48
+ - 视频号普通分享链接需要腾讯元宝登录状态;已携带有效播放参数的链接可直接解析。仅处理单视频内容。
49
+ - 浏览器 Cookie 仅在明确配置来源后读取;未配置时以未登录状态访问。
50
+ - 宿主重启后不会自动继续下载,需手动继续。
51
+ - 「已完成下载」中的删除会永久删除所选记录登记的文件,二次确认后执行,无法撤销;目录同步只整理记录,不删除文件。
52
+ - aria2 为可选工具,需自行安装或指定路径。
53
+
54
+ ## 开发与打包
55
+
56
+ 需要 Node.js ≥ 22.13,使用 `package.json` 固定的 pnpm 11.5.0。
57
+
58
+ ```bash
59
+ pnpm install --frozen-lockfile
60
+ pnpm dev
61
+ ```
62
+
63
+ 开发预览地址为 `http://127.0.0.1:5179`,API 地址为 `http://127.0.0.1:4322/streamnest/api`。开发预览使用官方宿主主题与控件;在 DeepSeek Harness 桌面版中继承宿主主题。
64
+
65
+ ```bash
66
+ pnpm run check
67
+ pnpm run release
68
+ ```
69
+
70
+ 发布包输出至 `release/streamnest-<版本>.tgz`,可用于本地安装。构建产物包含项目介绍、参考项目来源、原始许可及客户端捆绑依赖许可。
71
+
72
+ ### 发布到 npm
73
+
74
+ 先通过 `npm login` 登录,或通过标准 npm 配置提供具备发布权限的 access token,再执行:
75
+
76
+ ```bash
77
+ pnpm run publish:npm --dry-run
78
+ pnpm run publish:npm
79
+ ```
80
+
81
+ 发布命令会先执行检查、生成 release 包,再发布同一个安装包到 npm 官方 registry。认证沿用标准 npm 登录或 access token 配置,发布权限由 npm 校验。`--dry-run` 只演练。后续发布前须更新 `package.json` 的版本号,已发布的同名版本不能覆盖。
82
+
83
+ | 目录 | 职责 |
84
+ | -------------------------------- | ----------------------------------------- |
85
+ | `apps/api` | NestJS 业务服务、DTO 校验、解析与下载实现 |
86
+ | `apps/web` | React 页面与中英文词库 |
87
+ | `apps/shared` | 任务、设置、输出文件等共享契约 |
88
+ | `packages/harness` | 宿主接入、官方 UI 适配与 Agent 工具 |
89
+ | `assets/reference-projects.json` | 参考项目来源清单 |
90
+ | `licenses` | 参考项目原始许可文本 |
91
+
92
+ 页面、API 与 Agent 复用相同业务服务,宿主适配集中在 `packages/harness`。
93
+
94
+ ## 感谢开源
95
+
96
+ 参考实现:[DownVid](https://github.com/yxxbc/downvid) · [wx_channels_download](https://github.com/ltaoo/wx_channels_download)
97
+
98
+ ## 许可
99
+
100
+ 原创部分采用 [MIT 许可](LICENSE),顶部 MIT 徽章仅指原创部分。参考及改编部分保留各自原作者版权和许可,wx_channels_download 的许可包含 Commons Clause 附加条款,以许可原文为准。构建时将参考项目来源、原始许可和客户端依赖许可汇总至 `lib/THIRD_PARTY_LICENSES.txt`。
101
+
102
+ ## 免责声明
103
+
104
+ - 本项目为独立开发的第三方插件,与 DeepSeek 及相关媒体平台不存在官方隶属或背书关系。
105
+ - 仅下载自己拥有权利、已获得授权或适用法律允许下载的内容,并遵守来源平台的服务条款及版权、隐私等要求。不得用于绕过付费、DRM 或其他访问控制,不得用于未经授权的传播或其他违法用途。
106
+ - 软件按「现状」提供,不保证第三方站点持续可用,也不保证下载结果完整、准确或适合特定用途。请自行保管账号凭据并备份重要文件;在适用法律允许的范围内,作者及贡献者不对使用本软件造成的损失承担责任,具体以 [LICENSE](LICENSE) 及相关第三方许可为准。
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 32 32" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
2
+ <path d="M8 5.5h11a4 4 0 0 1 0 8h-6a3.5 3.5 0 0 0 0 7h8"/>
3
+ <path d="m17.5 17 3.5 3.5-3.5 3.5"/>
4
+ <path d="M5 22v2a4 4 0 0 0 4 4h14a4 4 0 0 0 4-4v-2"/>
5
+ </svg>
@@ -0,0 +1,16 @@
1
+ {
2
+ "downvid": {
3
+ "name": "DownVid",
4
+ "author": "yxxbc",
5
+ "url": "https://github.com/yxxbc/downvid",
6
+ "license": "MIT",
7
+ "licenseFile": "licenses/downvid.LICENSE"
8
+ },
9
+ "wxChannels": {
10
+ "name": "wx_channels_download",
11
+ "author": "ltaoo",
12
+ "url": "https://github.com/ltaoo/wx_channels_download",
13
+ "license": "MIT + Commons Clause",
14
+ "licenseFile": "licenses/wx_channels_download.LICENSE"
15
+ }
16
+ }