mshen6666/HTML-PPT-Editor 教程
2026-07-10 3391434
2026-07-10 0
balakrishna-24/ppt-generator 是一个以 Jupyter Notebook 为主的 YouTube to PowerPoint 工具,目标是从 YouTube 视频中下载视频、抽取代表性帧、过滤重复画面,再用 python-pptx 生成 presentation.pptx。它更像“把公开视频里的课件画面还原成 PPTX”,不是从零设计一套可编辑演示文稿。
仓库只有 README.md 和 Final_Project_LLM.ipynb 两个核心文件。README 写了两条路径:一条是 CrewAI agent-based approach,把视频处理和 PPT 生成分别交给 agent;另一条是 non-agent approach,直接调用下载、抽帧、取图、生成 PPT 的函数。

最快的理解方式是打开 Final_Project_LLM.ipynb。Notebook 顶部带 Colab 链接,代码里大量使用 google.colab、cv2_imshow 和 userdata.get('openai-key'),所以它的原始运行环境更接近 Google Colab。
依赖集中在视频、图像、OCR、PPT 和 agent 框架几类:
pip install opencv-python
pip install yt-dlp
pip install python-pptx
pip install pytesseract
pip install pytube
pip install crewai
pip install crewai[tools]
pip install openai
pip install langchain-openai
pip install Pillow
系统层还需要 FFmpeg 处理视频,Tesseract OCR 识别帧里的文字。Notebook 里也出现了 Colab 风格安装命令:
sudo apt-get install ffmpeg
这个项目不是直接把每一帧都塞进 PPT。Notebook 会先创建 images.db,表结构包含 id、filename 和 image BLOB。抽取出的截图先进入数据库,再由后续步骤读取、展示、删除重复帧或生成 PPT。
这样做的好处是处理过程可分段:先下载视频和抽帧,再看数据库里剩下多少图片,接着用 OCR 或相似度算法过滤,确认后再调用 create_ppt(images)。如果直接从视频到 PPT,中间很难检查哪些帧被保留。
README 提到的配置项包括 FRAME_RATE、INTERVAL 和 THRESHOLD。Notebook 后半段还有更具体的参数,例如 FRAME_RATE = 3、背景建模相关阈值,以及基于 Tesseract 文本的滑动窗口去重。
non-agent 路径更适合第一次验证。它的顺序很直白:给 YouTube URL,调用 download_you@tube_video(video_url),再运行 detect_unique_screenshots(video_path, interval=3),随后从数据库读取图片并生成 PPT。
video_url = 'https://[email protected]/watch?v=YOUR_VIDEO_ID'
video_path = download_you@tube_video(video_url)
detect_unique_screenshots(video_path, interval=3)
images = fetch_images_from_db()
prs = create_ppt(images)
prs.save('presentation.pptx')
agent-based 路径则引入 CrewAI。README 中定义了 Video Processor agent 和 PPT Generator agent,一个处理 YouTube 视频和唯一帧,一个从数据库图片生成 PowerPoint。这个路径需要 OpenAI API key,Notebook 用的是:
from google.colab import userdata
OPENAI_API_KEY = userdata.get('openai-key')
os.environ['OPENAI_API_KEY'] = OPENAI_API_KEY
如果只是确认工具是否有效,先走 non-agent 会更清楚;如果要展示 agent 协调任务的思路,再跑 CrewAI 版本。

create_ppt(images) 会新建 Presentation(),为数据库中的每张图片创建一页空白 slide。图片先从 BLOB 转为 OpenCV 图像,再编码成 PNG 字节流,接着按页面宽高计算比例,居中放进幻灯片。
这意味着输出 PPTX 的每页核心内容仍然是一张截图,不会自动恢复成可编辑标题、图表、表格或项目符号。它的价值在于快速把视频里的课件画面整理成可翻页的 PowerPoint 文件,而不是还原原作者的源 PPT。
第一,看 images.db 是否存在,并确认表里有截图记录。第二,运行展示函数时检查保留帧是否清晰、是否重复过多、文字是否能读。第三,看 /content/presentation.pptx 或当前目录下的 presentation.pptx 是否生成并能打开。
如果保留帧太多,先调低抽帧频率或加强去重;如果保留帧太少,检查 interval、背景差分阈值和 OCR 去重逻辑。视频很长时,抽帧、OCR 和相似度计算都会明显变慢,Colab 资源也可能成为瓶颈。
README 已经列出几个限制:长视频处理耗时,OCR 质量取决于视频画面清晰度,相似度检测可能漏掉重复帧,也可能删掉有用帧。Notebook 里还混合了多段实验代码,安装命令重复出现,部分参数和输入方式需要手动改。
真正要把它变成稳定工具,最好把 notebook 里的下载、抽帧、数据库、去重、PPT 生成拆成独立 Python 模块,再补一个统一命令入口。当前版本更适合学习“视频课件抽帧成 PPTX”的技术链路,或者在 Colab 里对单个 YouTube 教学视频做一次性转换。
mshen6666/HTML-PPT-Editor 教程
2026-07-10 3391434
agentictaskx/ppt-to-course 下载与安装入口
2026-07-10 3391431
LearnPrompt/humanize-ppt 使用教程:用 AST 改善演讲节奏
2026-07-10 3391430
alphane-ai/guizang-ppt-skill-mod 本地安装:先分清 HTML deck、瑞士风校验和上游地址
2026-07-10 3391429
yqw-666/ppt-skills 使用教程:新模板解析和 PPT 脚本修复怎么分工
2026-07-10 3391428