An AI-powered tool to automatically create video presentations from Markdown and PowerPoint files
Project description
Slide Stream 2.0
🎬 Professional AI-powered video presentations from Markdown and PowerPoint files.
Transform your content into stunning video presentations with AI-generated images, premium text-to-speech, and smart content enhancement. Version 2.0 introduces a modern configuration system and professional-grade providers.
✨ What's New in 2.0
- 🖼️ AI Image Generation: DALL-E 3 creates custom images for your slides
- 🎙️ Premium Voices: ElevenLabs delivers studio-quality narration
- 📸 Stock Photos: Pexels & Unsplash integration with API keys
- ⚙️ Configuration System: YAML-based setup with environment variables
- 🎯 Simplified CLI: Clean commands, no more option overload
- 🔄 Smart Fallbacks: Graceful degradation when services unavailable
🚀 Quick Start
1. Installation
# Install with all AI providers
pip install slide-stream[all-ai]
# Or install with specific providers
pip install slide-stream[openai,elevenlabs]
2. Setup Configuration
# Create configuration file
slide-stream init
# Check available providers
slide-stream providers
3. Configure API Keys
Set environment variables for the services you want to use:
# For AI image generation
export OPENAI_API_KEY="your-openai-key"
# For premium text-to-speech
export ELEVENLABS_API_KEY="your-elevenlabs-key"
# For stock photos (optional)
export PEXELS_API_KEY="your-pexels-key"
export UNSPLASH_ACCESS_KEY="your-unsplash-key"
4. Create Your First Video
# Create from Markdown
slide-stream create presentation.md output.mp4
# Create from PowerPoint
slide-stream create slides.pptx video.mp4
🎯 Usage Examples
Basic Video Creation
# Simple creation (uses default config)
slide-stream create slides.md presentation.mp4
# With custom configuration
slide-stream create --config my-config.yaml presentation.pptx video.mp4
Example Markdown File
# Welcome to AI-First Development
- Build smarter applications with integrated AI
- Learn practical implementation patterns
- Deploy production-ready solutions
# Why Choose AI-First?
- Faster development cycles
- Enhanced user experiences
- Competitive advantage in the market
# Getting Started
- Set up your development environment
- Choose the right AI services
- Build your first AI-powered feature
⚙️ Configuration
SlideStream uses YAML configuration files for maximum flexibility:
# slidestream.yaml
providers:
llm:
provider: openai # Content enhancement
model: gpt-4o-mini
images:
provider: dalle3 # AI-generated images
fallback: text # Fallback when DALL-E unavailable
tts:
provider: elevenlabs # Premium text-to-speech
voice: rachel # Voice selection
# API Keys (use environment variables for security)
api_keys:
openai: "${OPENAI_API_KEY}"
elevenlabs: "${ELEVENLABS_API_KEY}"
pexels: "${PEXELS_API_KEY}"
unsplash: "${UNSPLASH_ACCESS_KEY}"
settings:
video:
resolution: [1920, 1080]
fps: 24
codec: libx264
cleanup: true
Configuration Discovery
SlideStream automatically finds your config in this order:
./slidestream.yaml(current directory)~/.slidestream.yaml(home directory)- Built-in defaults
🔧 Available Providers
Image Providers
| Provider | Description | Requirements |
|---|---|---|
dalle3 |
AI image generation via DALL-E 3 | OpenAI API key |
pexels |
Professional stock photos | Pexels API key |
unsplash |
High-quality stock photos | Unsplash API key |
text |
Text-based slides (always available) | None |
Text-to-Speech Providers
| Provider | Description | Requirements |
|---|---|---|
elevenlabs |
Premium AI voices with emotion | ElevenLabs API key |
openai |
Natural OpenAI TTS voices | OpenAI API key |
gtts |
Google Text-to-Speech (free) | None |
LLM Providers
| Provider | Description | Requirements |
|---|---|---|
openai |
GPT models for content enhancement | OpenAI API key |
gemini |
Google Gemini models | Gemini API key |
claude |
Anthropic Claude models | Anthropic API key |
groq |
Fast inference with Groq | Groq API key |
ollama |
Local models via Ollama | Ollama installation |
📋 CLI Commands
Core Commands
# Create video presentation
slide-stream create <input_file> <output_file>
# Generate example configuration
slide-stream init [config_file]
# List available providers and their status
slide-stream providers
# Show help
slide-stream --help
Examples
# Basic usage
slide-stream create slides.md presentation.mp4
# With custom config
slide-stream create --config prod.yaml deck.pptx video.mp4
# Check what's available
slide-stream providers
# Create config file
slide-stream init my-config.yaml
🎨 Advanced Features
PowerPoint Integration
- Slide Content: Extracts titles, bullet points, and images
- Speaker Notes: Uses notes for enhanced AI narration
- Layouts: Preserves slide structure and hierarchy
AI Enhancement
- Content Improvement: LLMs enhance slide text for better flow
- Image Generation: DALL-E 3 creates relevant, professional images
- Voice Selection: Choose from multiple TTS voices and styles
Professional Output
- HD Video: 1920x1080 resolution by default
- Quality Audio: Synchronized speech with proper timing
- Custom Timing: Configurable slide durations and padding
🔑 Getting API Keys
OpenAI (for DALL-E 3 & GPT)
- Visit OpenAI Platform
- Sign up and create an API key
- Add billing method (pay-per-use)
ElevenLabs (for Premium TTS)
- Visit ElevenLabs
- Create account and get API key
- Choose from 900+ voices
Pexels (for Stock Photos)
- Visit Pexels API
- Sign up for free API access
- Get your API key
Unsplash (for Stock Photos)
- Visit Unsplash Developers
- Create application
- Get your access key
📦 Installation Options
# Core package only
pip install slide-stream
# With specific AI providers
pip install slide-stream[openai]
pip install slide-stream[elevenlabs]
pip install slide-stream[gemini]
pip install slide-stream[claude]
pip install slide-stream[groq]
# All AI providers
pip install slide-stream[all-ai]
# Development dependencies
pip install slide-stream[dev]
📋 Requirements
- Python: 3.10 or higher
- FFmpeg: For video processing
- Internet: For AI services and stock photos (offline mode available)
Installing FFmpeg
# macOS
brew install ffmpeg
# Ubuntu/Debian
sudo apt update && sudo apt install ffmpeg
# Windows
# Download from https://ffmpeg.org/download.html
🔧 Configuration Reference
Provider Options
Image Providers:
text: Always available, no setup requireddalle3: RequiresOPENAI_API_KEYpexels: RequiresPEXELS_API_KEYunsplash: RequiresUNSPLASH_ACCESS_KEY
TTS Providers:
gtts: Free, always availableelevenlabs: RequiresELEVENLABS_API_KEYopenai: RequiresOPENAI_API_KEY
LLM Providers:
none: No content enhancementopenai: RequiresOPENAI_API_KEYgemini: RequiresGEMINI_API_KEYclaude: RequiresANTHROPIC_API_KEYgroq: RequiresGROQ_API_KEYollama: Requires local Ollama installation
Voice Options
ElevenLabs Voices:
rachel: Professional female voiceadam: Clear male voicearia: Expressive female voice- (See ElevenLabs docs for full list)
OpenAI Voices:
alloy: Balanced and naturalecho: Clear and articulatefable: Warm and engagingnova: Bright and energeticonyx: Deep and authoritativeshimmer: Gentle and soothing
🤝 Contributing
We welcome contributions! See our documentation:
- User Guide - Comprehensive usage examples
- Development Workflow - Setup and testing
- Type Safety - Code quality standards
🆕 Version History
- 2.0.0: Configuration system, provider architecture, AI image generation
- 1.1.x: PowerPoint support, bug fixes, stability improvements
- 1.0.0: Initial release with Markdown support
📄 License
MIT License - see LICENSE file for details.
🙏 Acknowledgments
Built with these excellent tools:
- Typer - Modern CLI framework
- Rich - Beautiful terminal output
- MoviePy - Video processing
- OpenAI - AI image generation and LLM
- ElevenLabs - Premium text-to-speech
- PyYAML - Configuration parsing
Ready to create professional presentations? Get started with pip install slide-stream[all-ai] 🚀
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-2.1.0.tar.gz.
File metadata
- Download URL: slide_stream-2.1.0.tar.gz
- Upload date:
- Size: 151.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bcad07e68808cca33914da5380275a687d89c3ca05629b1651209b97fb07873f
|
|
| MD5 |
d15a6888de31bac0f25e936d5139f361
|
|
| BLAKE2b-256 |
aa9199277a9773d4207b37d4da268f56cc32b4a8d5ccb33bf1dff1251a707cc6
|
File details
Details for the file slide_stream-2.1.0-py3-none-any.whl.
File metadata
- Download URL: slide_stream-2.1.0-py3-none-any.whl
- Upload date:
- Size: 28.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c75fb0bf739b7ac944021e4946802bcfd1026cb5d9f42a9834881f695c320c83
|
|
| MD5 |
551fc1aa01a49dfb24669d85e299ccd8
|
|
| BLAKE2b-256 |
81c22002212ebe2f6079156bd918ea636b0277b1583cfa621ece8ed47d10e5c2
|