VidScript 是一款基于 Python 的桌面应用程序,旨在简化视频下载、音频提取以及利用 AI 大模型生成/润色讲稿的工作流程。
⚠️ 系统要求:本项目深度依赖 Windows 平台的特定组件(如ffmpeg.exe和CustomTkinter的某些特性),目前 仅支持 Windows 操作系统。
- 视频下载:集成
yt-dlp,支持多平台视频下载。 - 音频处理:自动提取视频音频(需 FFmpeg 支持)。
- AI 赋能:调用 ASR (语音转文字) 和 LLM (大语言模型) API 自动生成讲稿。
- 现代化 UI:使用
CustomTkinter构建的高性能、深色模式响应式界面。 - 独立运行:支持单文件打包,内置二进制依赖管理。
- 语言: Python 3.11+
- 包管理: uv (推荐)
- 界面: CustomTkinter
- 核心: yt-dlp, requests, httpx
- 配置: python-dotenv
- 打包: Nuitka (推荐) / PyInstaller
VidScript/
├── assets/ # 静态资源(图标、Logo)
├── bin/ # 外部二进制文件(ffmpeg.exe, koushare-dl.exe)
├── config/ # 配置文件
├── src/ # 源代码
│ ├── core/ # 业务逻辑(下载器、AI 服务)
│ ├── ui/ # 界面布局与交互
│ └── utils/ # 工具类(路径管理、日志、装饰器)
├── temp/ # 运行时缓存与临时文件
├── main.py # 程序入口点
├── pyproject.toml # uv/PEP 621 项目配置
└── requirements.txt # 传统项目依赖
-
安装 uv (如果尚未安装)
powershell -ExecutionPolicy ByPass -c "ir https://astral-sh.uv.run/install.ps1"
-
同步项目环境
uv sync
-
运行程序
uv run python main.py
-
安装依赖
python -m venv venv .\venv\Scripts\activate pip install -r requirements.txt
-
运行程序
python main.py
下载 ffmpeg.exe 并放置于 bin/ 目录下。
复制 .env.example 为 .env,并填写以下配置:
| 配置项 | 说明 | 默认值 |
|---|---|---|
DEEPSEEK_API_KEY |
DeepSeek API 密钥 | - |
DEEPSEEK_BASE_URL |
DeepSeek API 地址 | https://api.deepseek.com |
DEEPSEEK_MODEL_NAME |
DeepSeek 模型名称 | deepseek-chat |
QWEN_API_KEY |
(必填) Qwen API 密钥 (兼作 ASR Key) | - |
QWEN_BASE_URL |
Qwen API 地址 | https://dashscope.aliyuncs.com/compatible-mode/v1 |
QWEN_MODEL_NAME |
Qwen 模型名称 | qwen-plus |
ASR_MODEL_NAME |
语音转文字模型 | fun-asr-mtl |
ASR_BASE_URL |
ASR API 地址 | https://dashscope.aliyuncs.com/api/v1 |
LLM_TEMPERATURE |
生成随机性 (0-1) | 0.7 |
ENABLE_THINKING |
是否显示思考过程 | False |
| 配置项 | 说明 | 示例 |
|---|---|---|
ALIYUN_ACCESS_KEY |
(必填) AccessKey ID | - |
ALIYUN_ACCESS_SECRET |
(必填) AccessKey Secret | - |
ALIYUN_OSS_ENDPOINT |
OSS 区域节点 | https://oss-cn-beijing.aliyuncs.com/ |
ALIYUN_OSS_BUCKET_NAME |
存储桶名称 | vid-script |
ALIYUN_OSS_FOLDER_NAME |
存储目录 | voice_file |
| 配置项 | 说明 | 默认值 |
|---|---|---|
DEBUG |
调试模式 | True |
LOG_LEVEL |
日志等级 | DEBUG |
程序运行时自动管理,包含:
download_path: 视频下载路径rewrite_style: 默认润色风格custom_rewrite_prompt: 自定义提示词
推荐使用 Nuitka 进行打包:
uv run nuitka --standalone --show-progress --plugin-enable=tk-inter --include-data-dir=bin=bin --include-data-dir=assets=assets --windows-disable-console main.pyMIT License