An AI-powered tool to automatically create video presentations from Markdown and PowerPoint files
Project description
Slide Stream
🎬 An AI-powered tool to automatically create video presentations from Markdown and PowerPoint files.
Transform your Markdown documents and PowerPoint presentations into professional video presentations with AI-powered content enhancement, automatic image sourcing, and natural text-to-speech narration.
✨ Features
- 📝 Markdown to Video: Convert Markdown files into professional video presentations
- 📊 PowerPoint to Video: Import .pptx files with slide content and speaker notes
- 🤖 AI Enhancement: Improve content using OpenAI, Gemini, Claude, Groq, or Ollama
- 📋 Speaker Notes Support: Use PowerPoint speaker notes for enhanced AI narration
- 🖼️ Smart Images: Automatic image sourcing from Unsplash or generate text-based slides
- 🎙️ Text-to-Speech: Natural narration using Google Text-to-Speech
- 🎨 Customizable: Professional video output with configurable settings
- ⚡ Modern CLI: Built with Typer and Rich for excellent user experience
🚀 Quick Start
Installation
pip install slide-stream
Basic Usage
Create a simple Markdown file:
# Welcome to My Presentation
- This is the first point
- Here's another important point
- And a final thought
# Second Slide
- More content here
- Additional information
- Conclusion
Generate your video:
slide-stream create -i presentation.md -o my-video.mp4
🔧 Installation Options
Core Installation
pip install slide-stream
With AI Providers
# For OpenAI GPT models
pip install slide-stream[openai]
# For Google Gemini
pip install slide-stream[gemini]
# For Anthropic Claude
pip install slide-stream[claude]
# For Groq (fast inference)
pip install slide-stream[groq]
# For all AI providers
pip install slide-stream[all-ai]
🎯 Usage Examples
Basic video creation
# From Markdown
slide-stream create -i slides.md -o presentation.mp4
# From PowerPoint
slide-stream create -i presentation.pptx -o video.mp4
With AI enhancement
# Set your API key
export OPENAI_API_KEY="your-api-key-here"
# Create enhanced video with default model
slide-stream create \
-i slides.md \
-o presentation.mp4 \
--llm-provider openai \
--image-source unsplash
# Specify a custom model
slide-stream create \
-i slides.md \
-o presentation.mp4 \
--llm-provider openai \
--llm-model gpt-4o \
--image-source unsplash
PowerPoint with speaker notes enhancement
# PowerPoint files with speaker notes get enhanced AI narration
export OPENAI_API_KEY="your-api-key"
slide-stream create \
-i presentation.pptx \
-o enhanced-video.mp4 \
--llm-provider openai \
--image-source unsplash
Text-only slides (no internet required)
slide-stream create \
-i slides.md \
-o presentation.mp4 \
--image-source text
🔑 Environment Variables
Set these environment variables for AI providers:
# OpenAI
export OPENAI_API_KEY="your-openai-key"
export OPENAI_MODEL="gpt-4o-mini" # Optional: default model
# Google Gemini
export GEMINI_API_KEY="your-gemini-key"
export GEMINI_MODEL="gemini-1.5-flash" # Optional: default model
# Anthropic Claude
export ANTHROPIC_API_KEY="your-claude-key"
export CLAUDE_MODEL="claude-3-5-sonnet-20241022" # Optional: default model
# Groq
export GROQ_API_KEY="your-groq-key"
export GROQ_MODEL="llama-3.1-8b-instant" # Optional: default model
# Ollama (local)
export OLLAMA_BASE_URL="http://localhost:11434"
export OLLAMA_MODEL="llama3.2" # Optional: default model
📋 Requirements
- Python 3.10+
- FFmpeg (for video processing)
- Internet connection (for Unsplash images and AI providers)
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Documentation
- docs/USER_GUIDE.md - Comprehensive user guide with examples and workflows
- docs/DEVELOPMENT_WORKFLOW.md - Development setup, testing, and release process
- docs/TYPE_SAFETY.md - Type safety documentation and workarounds
- docs/TYPING_IMPROVEMENTS.md - Type improvement roadmap
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file slide_stream-1.1.6.tar.gz.
File metadata
- Download URL: slide_stream-1.1.6.tar.gz
- Upload date:
- Size: 127.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a73a47cb5a56c10cbef2050777619bfef83ce4522eff9de4f988d532dd77172
|
|
| MD5 |
f808d002b1117557b6c0fa471bbb4f74
|
|
| BLAKE2b-256 |
b8873e7c0db61f94686a9798eb7025881854060132197779848477404386c233
|
File details
Details for the file slide_stream-1.1.6-py3-none-any.whl.
File metadata
- Download URL: slide_stream-1.1.6-py3-none-any.whl
- Upload date:
- Size: 13.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
940ff5abfda1848383af2ba21b311f449b7540501d9a8122602537cfdca2daae
|
|
| MD5 |
3f297b26242a8fe2e2e558fb65b6594d
|
|
| BLAKE2b-256 |
546a7c85eaeece03e2e543e4e655b58f8ff0701bed5ecf0bd5f35e1cd92c7c13
|