Everless321/dYm
GitHub: Everless321/dYm
dYm 是一款基于 Electron 的抖音视频无水印下载与 AI 驱动的内容分析桌面应用,帮助用户高效采集并自动理解短视频内容。
Stars: 267 | Forks: 36
# dYm
**[English](README.md) | [中文](README_CN.md)**
[](https://www.electronjs.org/)
[](https://reactjs.org/)
[](https://www.typescriptlang.org/)
[](LICENSE)
dYm 是一款结合了**无水印视频下载**与 **AI 驱动的内容分析**的桌面应用程序。专为需要大规模高效收集、整理和理解短视频内容的创作者、社交媒体运营者和研究人员而打造。
[仓库](https://github.com/Everless321/dYm) · [Telegram 群组](https://t.me/+a02Yk5OY4gk1N2I1)
## AI 视频分析
dYm 的核心智能功能 —— 无需逐一观看即可自动理解视频内容。
### 工作原理
1. **帧提取** — FFmpeg 以可配置的间隔从视频中提取关键帧(例如,从 30 秒的视频中提取 4 帧均匀分布的图像)
2. **Vision API 分析** — 将提取的帧发送至多模态 Vision LLM(OpenAI 兼容 API)进行内容理解
3. **结构化输出** — AI 返回结构化元数据,并随每条视频一同存储在本地数据库中
### AI 提取的内容
| 字段 | 描述 | 示例 |
|-------|-------------|---------|
| **标签** | 用于搜索和筛选的内容关键词 | `["cooking", "recipe", "pasta"]` |
| **分类** | 内容分类 | `Food & Cooking` |
| **摘要** | 对视频内容的简短描述 | `Step-by-step pasta carbonara recipe with tips` |
| **场景** | 视觉场景描述 | `Kitchen, indoor, close-up shots` |
| **内容分级** | 内容评级(1-5 级) | `1`(适合所有受众) |
### 分析配置
- **模型选择** — 兼容任何 OpenAI 兼容 Vision API(Grok、OpenAI GPT-4o、Claude 等)
- **自定义 Prompt** — 精确定义 AI 需要在内容中提取的信息
- **帧切片** — 配置每个视频需要提取的帧数(在准确率和 API 成本之间进行权衡)
- **并发控制** — 通过可配置的 worker 数量并行运行多个分析任务
- **速率限制** — 内置 RPM(每分钟请求数)限制器,确保保持在 API 配额范围内
- **批量处理** — 一键分析所有未处理的视频,并实时跟踪进度
- **按用户分析** — 分析特定创作者的视频,或同时分析所有创作者的视频
### 图文帖子支持
对于图文轮播帖子(抖音的图文模式),dYm 会将原始图片直接发送给 Vision API —— 无需进行帧提取。单次 API 调用最多可分析 10 张图片。
## 功能
- **用户管理** — 添加和管理抖音创作者,批量刷新个人主页信息
- **直播录制** — 自动录制抖音直播(通过内置 FFmpeg 获取原画质量的 FLV),并在直播结束时自动停止
- **批量下载** — 支持并发的无水印下载,可配置限制并进行任务跟踪
- **智能筛选** — 根据创作者、AI 生成的标签、分类和内容级别筛选内容
- **本地存储** — 所有数据均存储在本地 SQLite 数据库中,完全由您掌控
- **剪贴板检测** — 自动检测剪贴板中的抖音链接,一键添加
- **系统托盘** — 最小化到托盘在后台运行
## 快速开始
1. 从 [Releases](https://github.com/Everless321/dYm/releases) 下载安装包
2. 打开 dYm,并在设置中配置您的抖音 Cookie
3. 粘贴抖音链接或添加创作者
4. 下载视频并根据需要启用 AI 分析
## 技术栈
- **框架**:Electron + React 19 + TypeScript
- **UI**:Tailwind CSS + Radix UI + shadcn/ui
- **数据库**:better-sqlite3
- **视频处理**:fluent-ffmpeg(用于 AI 分析的帧提取)
- **下载引擎**:[polydl](https://www.npmjs.com/package/polydl)(包含视频、图片和直播下载器)
- **AI 集成**:OpenAI 兼容 Vision API(可配置 endpoint)
## 安装与开发
### 从源码运行
```
git clone https://github.com/Everless321/dYm.git
cd dYm
npm install
npm run dev
```
### 下载预构建版本
前往 [Releases](https://github.com/Everless321/dYm/releases) 获取安装包。
## 构建
```
# macOS
npm run build:mac
# Windows
npm run build:win
# Linux
npm run build:linux
# 仅 Compile(无 packaging)
npm run build:unpack
```
构建输出位于 `dist/` 目录中。
## 配置
### Cookie 设置(必填)
1. 进入设置
2. 点击“获取 Cookie”
3. 在弹出的窗口中登录抖音
4. 登录后 Cookie 会自动保存
### AI 分析设置(可选)
1. 进入设置 → 分析设置
2. 配置您的 API Key 和 API URL(默认:Grok API)
3. 自定义分析 prompt、模型、并发数和速率限制
## 项目结构
```
dYm/
├── src/
│ ├── main/ # Electron main process
│ │ ├── database/ # SQLite database operations
│ │ ├── services/ # Download, analysis, scheduling services
│ │ │ └── analyzer.ts # AI video analysis engine
│ │ └── index.ts
│ ├── preload/ # Preload scripts
│ └── renderer/ # React renderer process
├── build/ # Build resources
├── resources/ # App resources
└── electron-builder.yml # Packaging config
```
## 命令
```
npm run dev # Development mode
npm run typecheck # Type checking
npm run lint # Linting
npm run format # Formatting
npm run test:e2e # E2E tests
```
## 常见问题
### 下载失败?
请检查:
1. Cookie 是否有效且未过期
2. 网络连接是否稳定
3. 下载目录是否具有写入权限
### AI 分析失败?
请检查:
1. API Key 是否配置正确
2. API 配额是否充足
3. 视频文件是否完整且可读
### macOS 提示“应用已损坏”?
请运行:
```
sudo xattr -cr /Applications/dYm.app/
```
## 许可证
本项目基于 [GPL v3](https://www.gnu.org/licenses/gpl-3.0.html) 协议授权。
## 免责声明
本工具仅供学习和研究使用。请遵守当地法律法规及平台服务条款。所有下载内容的版权归原作者所有。
标签:AI内容分析, Electron, React, Syscalls, 多媒体管理, 抖音, 桌面应用, 自动化攻击, 视频下载