Everless321/dYm

GitHub: Everless321/dYm

dYm 是一款基于 Electron 的抖音视频无水印下载与 AI 驱动的内容分析桌面应用,帮助用户高效采集并自动理解短视频内容。

Stars: 267 | Forks: 36

# dYm **[English](README.md) | [中文](README_CN.md)** [![Electron](https://img.shields.io/badge/Electron-39.x-47848F?logo=electron&logoColor=white)](https://www.electronjs.org/) [![React](https://img.shields.io/badge/React-19.x-61DAFB?logo=react&logoColor=white)](https://reactjs.org/) [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-3178C6?logo=typescript&logoColor=white)](https://www.typescriptlang.org/) [![License](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](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, 多媒体管理, 抖音, 桌面应用, 自动化攻击, 视频下载