发布时间:2026年5月20日 预计阅读:5 分钟

开源的旅游行业自动生成AI视频的小项目

旅游行业短视频AI成片系统

项目介绍

本项目是垂直于旅游行业的 AI 短视频自动成片系统,核心目标是帮助旅游账号围绕实时文旅热点、出行提醒、城市事件和人工选题快速生成可发布的视频内容。系统支持抓取国内新闻和文旅来源中的旅游热点,也支持人工输入旅游主题;后端调用 DeepSeek 优化为镜头化视频提示词,再调用阿里百炼通义万相文生视频接口生成画面,并使用 MiniMax TTS、FFmpeg 和本地背景音乐完成旁白、字幕与配乐后处理,后期可以处理成自动采集,自动发布。

当前开源版本只保留旅游行业流程,已移除早期泛商家适配、商家模板、上传视频片段剪辑和通用文案生成视频入口。

系统截图

后端接口配置页:

background

旅游短视频生成操作界面:

  • image1
  • image2

技术栈

  • 前端:Vue3 + Vite + TypeScript
  • 后端:Python 3.10 + FastAPI
  • 环境管理:UV
  • 数据库:PostgreSQL
  • 队列:Redis + RQ
  • 文案优化:DeepSeek Chat Completions API
  • 视频生成:阿里百炼通义万相 wan2.7-t2v
  • 旁白合成:MiniMax TTS
  • 视频后处理:FFmpeg + Pillow
  • 对象存储:MinIO,可选,默认关闭

目录说明

backend/        FastAPI 后端服务
frontend/       Vue3 前端源码
frontend/dist/  已编译的最新前端静态文件,可直接交给 Nginx 托管
sql/            PostgreSQL 初始化辅助 SQL
storage/        运行期素材、背景音乐、TTS 和生成成片目录
logs/           系统日志目录

本地启动

1. 准备系统依赖

默认按 Linux/Ubuntu 部署环境准备 PostgreSQL、Redis 和 FFmpeg:

sudo apt update
sudo apt install -y postgresql postgresql-contrib redis-server ffmpeg
sudo systemctl enable --now postgresql redis-server

如果是本地 macOS 开发环境,也可以使用 Homebrew 安装:

brew install postgresql@16 redis ffmpeg
brew services start postgresql@16
brew services start redis

2. 创建数据库和用户

Linux/Ubuntu 可使用 PostgreSQL 系统用户创建数据库:

sudo -u postgres createdb tourism_video

如果已配置当前用户的 PostgreSQL 权限,也可以直接执行:

createdb tourism_video

也可以参考初始化 SQL:

psql -f sql/001_init.sql

3. 配置后端环境

cd backend
uv sync
cp .env.example .env

编辑 backend/.env,至少填写数据库、Redis、后台登录密码和第三方接口 Key:

AUTOV_DB_HOST=localhost
AUTOV_DB_PORT=5432
AUTOV_DB_USER=postgres
AUTOV_DB_PASSWORD=change-me
AUTOV_DB_NAME=tourism_video
AUTOV_REDIS_URL=redis://localhost:6379/0
AUTOV_ADMIN_USERNAME=admin
AUTOV_ADMIN_PASSWORD=change-me
AUTOV_DEEPSEEK_API_KEY=
AUTOV_DASHSCOPE_API_KEY=
AUTOV_MINIMAX_API_KEY=

如果启用 MinIO,再设置:

AUTOV_MINIO_ENABLED=true
AUTOV_MINIO_ENDPOINT=127.0.0.1:9000
AUTOV_MINIO_ACCESS_KEY=minio-user
AUTOV_MINIO_SECRET_KEY=change-me
AUTOV_MINIO_BUCKET=ai-video
AUTOV_MINIO_REGION=us-east-1
AUTOV_MINIO_SECURE=false

4. 启动后端

cd backend
uv run uvicorn app.main:app --host 0.0.0.0 --port 8000

FastAPI 主程序默认会启动内嵌 worker 消费视频生成任务,因此本地和单机部署不需要额外运行 .sh 脚本。需要拆分 Web 和 worker 时,可设置:

AUTOV_EMBEDDED_WORKER_ENABLED=false

然后在单独进程中运行:

cd backend
uv run rq worker video-generation --url "$AUTOV_REDIS_URL"

5. 启动前端开发服务

cd frontend
npm install
npm run dev

访问:

http://localhost:5173

前端 frontend/dist 目录已经是当前源码的最新编译产物。如只需要部署静态页面,可以直接将 frontend/dist 交给 Nginx 托管。

生产部署

  • PostgreSQL、Redis 独立部署,MinIO 按需开启。
  • 后端使用 uv run uvicorn app.main:app --host 0.0.0.0 --port 8000,并交给 systemd、supervisor 或容器守护。
  • 前端可直接托管 frontend/dist,Nginx 将 /api 反向代理到 FastAPI。
  • storage/generatedstorage/musicstorage/ttslogs 建议挂载到持久化磁盘。
  • 生产环境必须修改 AUTOV_ADMIN_PASSWORD,并妥善管理 DeepSeek、DashScope、MiniMax、数据库和 MinIO 密钥。
  • 如果视频生成耗时较长,保持 AUTOV_RQ_JOB_TIMEOUT_SECONDS=3600 或按实际任务时长调大。

当前业务流程

  1. 登录后台,进入“旅游短视频AI自动生成项目”。
  2. 点击立即抓取,从内置新闻和文旅来源筛选旅游热点文章;也可以手动输入旅游热点主题或粗略提示词。
  3. DeepSeek 根据当前视频时长生成镜头化提示词和连续旁白文案。
  4. 用户在页面编辑并保存提示词。
  5. 后端调用阿里百炼文生视频异步接口,轮询结果并下载原始视频。
  6. MiniMax TTS 生成旅游介绍旁白,FFmpeg 去掉原片音频并混合旁白和可选背景音乐。
  7. Pillow 生成透明字幕图,FFmpeg 将字幕叠加到视频底部。
  8. 生成结果保存到 storage/generated;启用 MinIO 后同步上传对象存储。
  9. 页面展示视频预览,用户可下载或重新生成。

注意事项

  • 关键操作和报错写入 logs/app.log
  • AUTOV_CRAWL_SEED_URLS 为空时使用内置国内新闻和文旅来源动态筛选热点,没有死具体景点。
  • 百炼请求默认关闭 prompt_extend,避免二次改写 DeepSeek 已优化的提示词。
  • 百炼水印默认关闭,配置项为 AUTOV_VIDEO_WATERMARK=false
  • FFmpeg 必须安装在后端和 worker 所在机器。
  • 大文件下载或接口代理时,需要同步调整 Nginx client_max_body_size 和超时配置。
  • 如果 AI 接口 Key 为空或接口不可用,部分链路会进入本地兜底逻辑,但真实生成视频仍需要有效的 DashScope Key。

项目已开源,代码地址:https://github.com/Taering365/tourism-ai-video

继续浏览

这篇文章读完后,你可以从首页、当前专题或左侧列表继续深入阅读

左侧已经放入当前专题的文章列表,你可以直接跳到同专题的其他帖子,不需要回退浏览器重新找内容。

当前文章:开源的旅游行业自动生成AI视频的小项目 所属入口:开发相关 预计阅读:5 分钟
回到首页 查看同类文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

32 + = 37