Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

leejersey/Aicontent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

1 Commit

Repository files navigation

🎬 AiContent — 视频文案提取 + AI 改写生成工具

粘贴视频链接 → 自动提取字幕/文案 → AI 一键改写生成全新文案

FastAPI React PostgreSQL License


✨ 核心功能

功能 说明
🔗 全平台视频采集 支持抖音、B站、YouTube、TikTok、小红书、快手等主流平台
🗣️ 智能文案提取 3 层降级策略:字幕文件 → 在线字幕 → 视频描述
✍️ 手动输入 可跳过提取步骤,直接粘贴/输入任意文案进入改写
🤖 AI 深度改写 仿写改写 / 风格转换 / 多平台适配,3 种生成模式
流式实时输出 基于 SSE 的大模型流式响应,打字机效果实时展示
🖥️ 全屏沉浸体验 一键全屏 + Flex 自适应布局,编辑器占满视口
📋 历史记录管理 任务 & 生成记录的查看、搜索和删除

🏗️ 技术架构

┌──────────────────────────────────────────────────────┐
│ 用户浏览器 │
│ Vite + React 19 + Ant Design 5 │
└──────────────┬───────────────────────────────────────┘
 │ HTTP / SSE (Vite Proxy → :8000)
┌──────────────▼───────────────────────────────────────┐
│ FastAPI 后端 │
│ JWT 认证 │ REST API │ SSE 流式 │ 全局异常拦截 │
├──────────────┬───────────────┬───────────────────────┤
│ PostgreSQL │ Redis │ Celery Worker │
│ 数据持久化 │ 任务队列/缓存 │ 视频下载 + ASR 转写 │
└──────────────┴───────────────┴───────────────────────┘
 │
 ┌─────────────┼─────────────┐
 ▼ ▼ ▼
 yt-dlp FFmpeg 豆包大模型
 视频下载 音频提取 AI 文案改写

📁 项目结构

AiContent/
├── frontend/ # 前端 (Vite + React + TS)
│ └── src/
│ ├── layout/ # MainLayout 侧边栏 + 全屏切换
│ ├── pages/ # Dashboard / Editor / History / Settings
│ ├── services/ # API 调用层 (extract + AI 流式改写)
│ └── App.tsx # 路由 + Ant Design 主题配置
│
├── backend/ # 后端 (FastAPI + Python)
│ └── app/
│ ├── core/ # 配置 / JWT 安全 / 数据库 / 统一响应
│ ├── models/ # SQLAlchemy ORM (User / VideoTask / AIGeneration)
│ ├── schemas/ # Pydantic 请求/响应校验
│ ├── routers/ # Auth / Tasks / AI 路由
│ ├── services/ # ai_writer / video / asr 业务逻辑
│ ├── workers/ # Celery 异步任务 (规划中)
│ └── main.py # FastAPI 入口
│
├── docs/ # 架构设计文档
├── docker-compose.yml # 容器编排
├── .gitignore
└── README.md

🚀 快速启动

环境要求

  • Python ≥ 3.10 + Node.js ≥ 18
  • yt-dlp + FFmpeg(视频提取依赖)
  • 可选:PostgreSQL + Redis(完整功能)

本地开发

# ---- 后端 ----
cd backend
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # 编辑填入 API Key
uvicorn app.main:app --reload # 访问 http://localhost:8000/docs
# ---- 前端 ----
cd frontend
npm install
npm run dev # 访问 http://localhost:5173

Docker Compose

cp backend/.env.example backend/.env # 编辑填入 API Key
docker-compose up -d # 一键启动全部服务

📡 API 概览

所有接口统一前缀 /api/v1,返回 { code, message, data } 标准格式。

模块 Method Path 说明 认证
认证 POST /auth/register 注册
POST /auth/login 登录,返回 JWT Token
GET /auth/me 获取当前用户信息
任务 POST /tasks 提交视频链接,创建提取任务
GET /tasks/{id} 查询任务进度与结果
GET /tasks 历史任务列表(分页)
AI POST /ai/generate 触发文案改写(SSE 流式)
GET /ai/history 生成历史(分页)
快速测试 POST /ai/extract 视频文案提取(免认证)
POST /ai/quick-test AI 改写快速测试(免认证,SSE)
🩺 GET /health 健康检查

完整 API 文档启动后访问 http://localhost:8000/docs(Swagger UI)


🔑 环境变量说明

变量 必填 说明
DATABASE_URL ❌* PostgreSQL 连接串(快速测试接口不需要)
REDIS_URL ❌* Redis 连接串(快速测试接口不需要)
JWT_SECRET_KEY ❌* JWT 签名密钥
ARK_API_KEY 豆包 / 火山方舟 API Key
ARK_MODEL_ID 推理接入点 ID(格式:ep-xxxxxxxxxxxx)
VOLC_ACCESS_KEY 火山引擎 ASR Access Key
VOLC_SECRET_KEY 火山引擎 ASR Secret Key
CORS_ORIGINS 允许的前端域名列表

* 标注项在使用 /ai/extract/ai/quick-test 快速测试时不需要

详见 backend/.env.example


🛠️ 开发指南

数据库迁移

cd backend
alembic init alembic
alembic revision --autogenerate -m "init tables"
alembic upgrade head

启动 Celery Worker

cd backend
celery -A app.workers.celery_app worker --loglevel=info
celery -A app.workers.celery_app beat --loglevel=info

运行测试

cd backend && pytest tests/ -v
cd frontend && npm run lint

📄 License

MIT

About

AiContent — 视频文案提取 + AI 改写生成工具

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /