跳到主要内容
AI教程

使用 Python 将 YouTube 视频转换为 AI 生成的 Shorts

了解如何安装和使用 AI Shorts Generator。这是一款开源 Python 工具,可将 YouTube 或本地视频转换为竖屏短片,并提供转录、AI 高光排序、自动裁剪、字幕和可选开场钩子功能。

使用 Python 将 YouTube 视频转换为 AI 生成的 Shorts

什么是 AI Shorts Generator?

AI Shorts Generator 是一款免费、开源的短视频 SaaS 产品替代方案,可替代 OpusClip 和 Vidyo.ai 等产品。它支持输入 YouTube URL 或本地视频文件,自动寻找精彩片段,并将其渲染为可直接发布的短视频,无水印,也无需预先购买剪辑额度。

该项目将本地转录与 LLM 提供商结合起来。faster-whisper 会生成带时间戳的转录文本,而 OpenAI、Gemini 或 MuAPI 会分析该文本,以识别并评估潜在的精彩片段。

处理后的竖屏短视频示例

处理流程如何工作

  1. 下载或加载:应用会下载 YouTube 视频,或读取本地视频路径。
  2. 转录:faster-whisper 会在本地生成带时间戳的转录文本。
  3. 分类:所选 LLM 会识别内容类型和节奏,例如访谈、播客、教程或视频博客。
  4. 评估精彩片段:LLM 会根据强力开场、情绪高潮、揭示、冲突、适合引用的语句、故事高潮和实用价值等信号评估片段。
  5. 移除重叠片段:根据评分对重叠候选片段进行去重。
  6. 选择剪辑:根据 --n 选项选择排名最高的候选片段。
  7. 渲染:每个选定片段都会自动裁剪为指定宽高比。除非禁用,否则会在开头添加符合上下文的 AI 开场钩子。

主要功能

  • 支持 YouTube 和本地视频:处理视频 URL,或处理已存储在计算机上的文件。
  • 自动选择精彩片段:寻找具有较强短视频潜力的内容片段。
  • 竖屏渲染:生成适合短视频平台的 9:16 视频。
  • 多条输出:使用 --n 从一个源视频渲染多个精彩片段。
  • AI 生成开场钩子:添加符合上下文的开场钩子,或使用 --no-hook 将其禁用。
  • 字幕、翻译和配音:项目将这些内容处理功能整合到同一工作流程中。
  • 本地 Web 界面:可将多个视频加入队列,并以可视化方式配置渲染选项。
  • 提供 API:可通过 API 将生成器集成到其他项目中。

系统要求

开始之前,请确保你的环境具备以下条件:

  • Python 3.10 或更高版本
  • OpenAI、Gemini 或 MuAPI 的 API 密钥
  • 用于克隆仓库的 Git
  • requirements.txt 中列出的 Python 软件包

Gemini 提供带每日限制的免费层级。OpenAI 为付费服务,而 MuAPI 提供无需订阅、按使用量付费的服务。请从 Google AI Studio、OpenAI Platform 或 MuAPI 获取密钥。

安装和设置

1. 克隆仓库

git clone https://github.com/pierrenade/short-video-generator-AI.git
cd short-video-generator-AI

2. 创建虚拟环境

创建隔离的 Python 环境,避免项目所需软件包与其他安装发生冲突。

python -m venv venv

在 Windows 上,使用以下命令激活:

venv\Scripts\activate

在 Linux 或 macOS 上,使用以下命令激活:

source venv/bin/activate

3. 安装依赖

pip install -r requirements.txt

4. 配置环境文件

在项目目录中创建或编辑 .env 文件。将 LLM_PROVIDER 设置为 openai、gemini 或 muapi,然后提供相应的 API 密钥。

LLM_PROVIDER=openai

OPENAI_API_KEY=your_openai_key_here
OPENAI_MODEL=gpt-4o-mini

GEMINI_API_KEY=your_gemini_key_here
GEMINI_MODEL=gemini-2.5-flash

MUAPI_API_KEY=your_muapi_key_here

LOCAL_WHISPER_MODEL=base
LOCAL_WHISPER_DEVICE=auto

你只需要为 LLM_PROVIDER 所选的提供商配置有效 API 密钥。OpenAI 和 Gemini 的模型设置为可选项。

选择 Whisper 设置

LOCAL_WHISPER_MODEL 支持 tiny、base、small、medium 或 large-v3。README 使用 base 作为初始配置。

LOCAL_WHISPER_DEVICE 支持 auto、cpu 或 cuda。除非你确实需要强制使用 CPU 或 CUDA 处理,否则请保持为 auto。

生成你的第一个短视频

将 YouTube URL 传递给 main.py:

python main.py "https://www.youtube.com/watch?v=video_id"

处理完成后,渲染好的剪辑会存储在 output 目录中。

AI 生成的短视频结果

控制输出

以下示例会生成三条竖屏剪辑,并请求以 1080 的源视频下载分辨率进行下载:

python main.py "https://www.youtube.com/watch?v=video_id" \
  --n 3 \
  --ratio 9:16 \
  --resolution 1080

可用的命令行选项

  • --n:设置要渲染的片段数量。默认值为 3。
  • --ratio:设置输出宽高比。默认值为 9:16;使用 1:1 可生成正方形输出,也可以提供其他比例。
  • --resolution:设置源视频的下载分辨率。项目支持的值包括 360、480、720 和 1080。默认值为 720。
  • --language:强制指定 Whisper 语言代码,例如 en。默认行为是自动检测。
  • --no-hook:阻止在每个片段开头添加 AI 生成的开场白。

处理本地视频

可以使用本地文件路径替代 YouTube URL。以下示例会生成四个 720 分辨率的竖屏片段,并强制使用中文转录:

python main.py "/Users/Admin/Folder/video.mp4" \
  --n 4 \
  --ratio 9:16 \
  --resolution 720 \
  --language zh

请根据操作系统使用正确的绝对路径或相对路径。当文件夹或文件名包含空格时,建议为路径加上引号。

使用本地 Web 界面

Web 版本提供了可视化方式,可用于将多个视频加入队列并调整渲染选项。服务商选择和 API 凭据仍来自 .env;该界面负责视频输入和渲染选项。

1. 启动后端

python3 server.py

2. 提供前端服务

打开另一个终端,进入 Web 目录,然后启动静态 HTTP 服务器:

cd web
python3 -m http.server 8000

3. 打开界面

在浏览器中访问 http://localhost:8000/shorts-generator-ui.html。

高级提示

根据发布平台匹配宽高比

传统竖屏短视频请使用 --ratio 9:16。需要正方形片段时,请使用 --ratio 1:1。项目也接受其他比例。

检测不确定时强制指定语言

默认使用自动语言检测。如果已知语音语言,请通过 --language 传入对应的 Whisper 语言代码,例如 --language en。

选择要渲染的候选片段数量

默认的 --n 3 会生成三个选定的精彩片段。想从较长的源视频中获得更多候选片段时可以增加该值;只需要最优结果时则可以减小该值。

原始开场足够时禁用开场白

生成的开场白是可选的。如果希望每个片段直接从选定的源视频片段开始,请添加 --no-hook:

python main.py "https://www.youtube.com/watch?v=video_id" --n 2 --no-hook

平衡转录资源

可用的 Whisper 模型范围从 tiny 到 large-v3。请选择适合计算机配置的模型,并仅在具备兼容 CUDA 环境时使用 LOCAL_WHISPER_DEVICE=cuda。否则,使用 auto 可让应用自动选择设备。

避免在命令中直接填写凭据

请将服务商密钥存储在 .env 中,而不是直接放入终端命令或源代码。分叉或向仓库贡献代码时,请避免提交已填写内容的环境文件。

结语

AI Shorts Generator 提供了一套本地开源工作流,可将较长的 YouTube 视频或本地视频转换为短视频片段。配置好 Python、LLM 服务商和本地 Whisper 设置后,你可以通过命令行生成多个自动选出的片段,也可以使用基于浏览器的界面管理输入内容和渲染选项。

本项目采用 MIT 许可证。你可以通过其 GitHub 仓库报告问题、贡献修改或创建分叉。