slide-stream 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- slide_stream-1.0.0/.coverage +0 -0
- slide_stream-1.0.0/LICENSE +21 -0
- slide_stream-1.0.0/MANIFEST.in +6 -0
- slide_stream-1.0.0/PKG-INFO +204 -0
- slide_stream-1.0.0/README.md +145 -0
- slide_stream-1.0.0/coverage.xml +322 -0
- slide_stream-1.0.0/htmlcov/.gitignore +2 -0
- slide_stream-1.0.0/htmlcov/class_index.html +173 -0
- slide_stream-1.0.0/htmlcov/coverage_html_cb_6fb7b396.js +733 -0
- slide_stream-1.0.0/htmlcov/favicon_32_cb_58284776.png +0 -0
- slide_stream-1.0.0/htmlcov/function_index.html +263 -0
- slide_stream-1.0.0/htmlcov/index.html +164 -0
- slide_stream-1.0.0/htmlcov/keybd_closed_cb_ce680311.png +0 -0
- slide_stream-1.0.0/htmlcov/status.json +1 -0
- slide_stream-1.0.0/htmlcov/style_cb_81f8c14c.css +337 -0
- slide_stream-1.0.0/htmlcov/z_c7ec063d87704035___init___py.html +104 -0
- slide_stream-1.0.0/htmlcov/z_c7ec063d87704035_cli_py.html +341 -0
- slide_stream-1.0.0/htmlcov/z_c7ec063d87704035_config_py.html +124 -0
- slide_stream-1.0.0/htmlcov/z_c7ec063d87704035_llm_py.html +217 -0
- slide_stream-1.0.0/htmlcov/z_c7ec063d87704035_media_py.html +248 -0
- slide_stream-1.0.0/htmlcov/z_c7ec063d87704035_parser_py.html +137 -0
- slide_stream-1.0.0/pyproject.toml +170 -0
- slide_stream-1.0.0/src/slide_stream/__init__.py +5 -0
- slide_stream-1.0.0/src/slide_stream/cli.py +242 -0
- slide_stream-1.0.0/src/slide_stream/config.py +25 -0
- slide_stream-1.0.0/src/slide_stream/llm.py +118 -0
- slide_stream-1.0.0/src/slide_stream/media.py +149 -0
- slide_stream-1.0.0/src/slide_stream/parser.py +38 -0
- slide_stream-1.0.0/test_input.md +11 -0
- slide_stream-1.0.0/tests/__init__.py +1 -0
- slide_stream-1.0.0/tests/test_cli.py +73 -0
- slide_stream-1.0.0/tests/test_parser.py +79 -0
- slide_stream-1.0.0/uv.lock +1944 -0
|
Binary file
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Slide Stream Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: slide-stream
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: An AI-powered tool to automatically create video presentations from text and Markdown
|
|
5
|
+
Project-URL: Homepage, https://github.com/yourusername/slide-stream
|
|
6
|
+
Project-URL: Repository, https://github.com/yourusername/slide-stream
|
|
7
|
+
Project-URL: Issues, https://github.com/yourusername/slide-stream/issues
|
|
8
|
+
Author-email: Your Name <your.email@example.com>
|
|
9
|
+
License: MIT
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Keywords: ai,cli,markdown,presentation,video
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Operating System :: OS Independent
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Topic :: Multimedia :: Video
|
|
23
|
+
Classifier: Topic :: Text Processing :: Markup
|
|
24
|
+
Requires-Python: >=3.10
|
|
25
|
+
Requires-Dist: anthropic>=0.7.0; extra == 'claude'
|
|
26
|
+
Requires-Dist: beautifulsoup4>=4.12.0
|
|
27
|
+
Requires-Dist: google-generativeai>=0.3.0; extra == 'gemini'
|
|
28
|
+
Requires-Dist: groq>=0.4.0; extra == 'groq'
|
|
29
|
+
Requires-Dist: gtts>=2.4.0
|
|
30
|
+
Requires-Dist: markdown>=3.5.0
|
|
31
|
+
Requires-Dist: moviepy>=1.0.3
|
|
32
|
+
Requires-Dist: openai>=1.0.0; extra == 'openai'
|
|
33
|
+
Requires-Dist: pillow>=10.0.0
|
|
34
|
+
Requires-Dist: requests>=2.31.0
|
|
35
|
+
Requires-Dist: rich>=13.0.0
|
|
36
|
+
Requires-Dist: typer>=0.9.0
|
|
37
|
+
Requires-Dist: typing-extensions>=4.8.0
|
|
38
|
+
Provides-Extra: all-ai
|
|
39
|
+
Requires-Dist: anthropic>=0.7.0; extra == 'all-ai'
|
|
40
|
+
Requires-Dist: google-generativeai>=0.3.0; extra == 'all-ai'
|
|
41
|
+
Requires-Dist: groq>=0.4.0; extra == 'all-ai'
|
|
42
|
+
Requires-Dist: openai>=1.0.0; extra == 'all-ai'
|
|
43
|
+
Provides-Extra: claude
|
|
44
|
+
Requires-Dist: anthropic>=0.7.0; extra == 'claude'
|
|
45
|
+
Provides-Extra: dev
|
|
46
|
+
Requires-Dist: basedpyright>=1.8.0; extra == 'dev'
|
|
47
|
+
Requires-Dist: pre-commit>=3.5.0; extra == 'dev'
|
|
48
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
|
|
49
|
+
Requires-Dist: pytest-mock>=3.12.0; extra == 'dev'
|
|
50
|
+
Requires-Dist: pytest>=7.4.0; extra == 'dev'
|
|
51
|
+
Requires-Dist: ruff>=0.1.0; extra == 'dev'
|
|
52
|
+
Provides-Extra: gemini
|
|
53
|
+
Requires-Dist: google-generativeai>=0.3.0; extra == 'gemini'
|
|
54
|
+
Provides-Extra: groq
|
|
55
|
+
Requires-Dist: groq>=0.4.0; extra == 'groq'
|
|
56
|
+
Provides-Extra: openai
|
|
57
|
+
Requires-Dist: openai>=1.0.0; extra == 'openai'
|
|
58
|
+
Description-Content-Type: text/markdown
|
|
59
|
+
|
|
60
|
+
# Slide Stream
|
|
61
|
+
|
|
62
|
+
🎬 An AI-powered tool to automatically create video presentations from Markdown files.
|
|
63
|
+
|
|
64
|
+
[](https://badge.fury.io/py/slide-stream)
|
|
65
|
+
[](https://www.python.org/downloads/)
|
|
66
|
+
[](https://opensource.org/licenses/MIT)
|
|
67
|
+
|
|
68
|
+
Transform your Markdown documents into professional video presentations with AI-powered content enhancement, automatic image sourcing, and natural text-to-speech narration.
|
|
69
|
+
|
|
70
|
+
## ✨ Features
|
|
71
|
+
|
|
72
|
+
- 📝 **Markdown to Video**: Convert Markdown files into professional video presentations
|
|
73
|
+
- 🤖 **AI Enhancement**: Improve content using OpenAI, Gemini, Claude, Groq, or Ollama
|
|
74
|
+
- 🖼️ **Smart Images**: Automatic image sourcing from Unsplash or generate text-based slides
|
|
75
|
+
- 🎙️ **Text-to-Speech**: Natural narration using Google Text-to-Speech
|
|
76
|
+
- 🎨 **Customizable**: Professional video output with configurable settings
|
|
77
|
+
- ⚡ **Modern CLI**: Built with Typer and Rich for excellent user experience
|
|
78
|
+
|
|
79
|
+
## 🚀 Quick Start
|
|
80
|
+
|
|
81
|
+
### Installation
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
pip install slide-stream
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Basic Usage
|
|
88
|
+
|
|
89
|
+
Create a simple Markdown file:
|
|
90
|
+
|
|
91
|
+
```markdown
|
|
92
|
+
# Welcome to My Presentation
|
|
93
|
+
|
|
94
|
+
- This is the first point
|
|
95
|
+
- Here's another important point
|
|
96
|
+
- And a final thought
|
|
97
|
+
|
|
98
|
+
# Second Slide
|
|
99
|
+
|
|
100
|
+
- More content here
|
|
101
|
+
- Additional information
|
|
102
|
+
- Conclusion
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Generate your video:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
slide-stream create -i presentation.md -o my-video.mp4
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## 🔧 Installation Options
|
|
112
|
+
|
|
113
|
+
### Core Installation
|
|
114
|
+
```bash
|
|
115
|
+
pip install slide-stream
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### With AI Providers
|
|
119
|
+
```bash
|
|
120
|
+
# For OpenAI GPT models
|
|
121
|
+
pip install slide-stream[openai]
|
|
122
|
+
|
|
123
|
+
# For Google Gemini
|
|
124
|
+
pip install slide-stream[gemini]
|
|
125
|
+
|
|
126
|
+
# For Anthropic Claude
|
|
127
|
+
pip install slide-stream[claude]
|
|
128
|
+
|
|
129
|
+
# For Groq (fast inference)
|
|
130
|
+
pip install slide-stream[groq]
|
|
131
|
+
|
|
132
|
+
# For all AI providers
|
|
133
|
+
pip install slide-stream[all-ai]
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## 🎯 Usage Examples
|
|
137
|
+
|
|
138
|
+
### Basic video creation
|
|
139
|
+
```bash
|
|
140
|
+
slide-stream create -i slides.md -o presentation.mp4
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### With AI enhancement
|
|
144
|
+
```bash
|
|
145
|
+
# Set your API key
|
|
146
|
+
export OPENAI_API_KEY="your-api-key-here"
|
|
147
|
+
|
|
148
|
+
# Create enhanced video
|
|
149
|
+
slide-stream create \
|
|
150
|
+
-i slides.md \
|
|
151
|
+
-o presentation.mp4 \
|
|
152
|
+
--llm-provider openai \
|
|
153
|
+
--image-source unsplash
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Text-only slides (no internet required)
|
|
157
|
+
```bash
|
|
158
|
+
slide-stream create \
|
|
159
|
+
-i slides.md \
|
|
160
|
+
-o presentation.mp4 \
|
|
161
|
+
--image-source text
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## 🔑 Environment Variables
|
|
165
|
+
|
|
166
|
+
Set these environment variables for AI providers:
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
# OpenAI
|
|
170
|
+
export OPENAI_API_KEY="your-openai-key"
|
|
171
|
+
|
|
172
|
+
# Google Gemini
|
|
173
|
+
export GEMINI_API_KEY="your-gemini-key"
|
|
174
|
+
|
|
175
|
+
# Anthropic Claude
|
|
176
|
+
export ANTHROPIC_API_KEY="your-claude-key"
|
|
177
|
+
|
|
178
|
+
# Groq
|
|
179
|
+
export GROQ_API_KEY="your-groq-key"
|
|
180
|
+
|
|
181
|
+
# Ollama (local)
|
|
182
|
+
export OLLAMA_BASE_URL="http://localhost:11434"
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## 📋 Requirements
|
|
186
|
+
|
|
187
|
+
- Python 3.10+
|
|
188
|
+
- FFmpeg (for video processing)
|
|
189
|
+
- Internet connection (for Unsplash images and AI providers)
|
|
190
|
+
|
|
191
|
+
## 🤝 Contributing
|
|
192
|
+
|
|
193
|
+
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
194
|
+
|
|
195
|
+
## 📄 License
|
|
196
|
+
|
|
197
|
+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
198
|
+
|
|
199
|
+
## 🙏 Acknowledgments
|
|
200
|
+
|
|
201
|
+
- Built with [Typer](https://typer.tiangolo.com/) for the CLI
|
|
202
|
+
- [Rich](https://rich.readthedocs.io/) for beautiful terminal output
|
|
203
|
+
- [MoviePy](https://moviepy.readthedocs.io/) for video processing
|
|
204
|
+
- [Pillow](https://pillow.readthedocs.io/) for image handling
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# Slide Stream
|
|
2
|
+
|
|
3
|
+
🎬 An AI-powered tool to automatically create video presentations from Markdown files.
|
|
4
|
+
|
|
5
|
+
[](https://badge.fury.io/py/slide-stream)
|
|
6
|
+
[](https://www.python.org/downloads/)
|
|
7
|
+
[](https://opensource.org/licenses/MIT)
|
|
8
|
+
|
|
9
|
+
Transform your Markdown documents into professional video presentations with AI-powered content enhancement, automatic image sourcing, and natural text-to-speech narration.
|
|
10
|
+
|
|
11
|
+
## ✨ Features
|
|
12
|
+
|
|
13
|
+
- 📝 **Markdown to Video**: Convert Markdown files into professional video presentations
|
|
14
|
+
- 🤖 **AI Enhancement**: Improve content using OpenAI, Gemini, Claude, Groq, or Ollama
|
|
15
|
+
- 🖼️ **Smart Images**: Automatic image sourcing from Unsplash or generate text-based slides
|
|
16
|
+
- 🎙️ **Text-to-Speech**: Natural narration using Google Text-to-Speech
|
|
17
|
+
- 🎨 **Customizable**: Professional video output with configurable settings
|
|
18
|
+
- ⚡ **Modern CLI**: Built with Typer and Rich for excellent user experience
|
|
19
|
+
|
|
20
|
+
## 🚀 Quick Start
|
|
21
|
+
|
|
22
|
+
### Installation
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
pip install slide-stream
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Basic Usage
|
|
29
|
+
|
|
30
|
+
Create a simple Markdown file:
|
|
31
|
+
|
|
32
|
+
```markdown
|
|
33
|
+
# Welcome to My Presentation
|
|
34
|
+
|
|
35
|
+
- This is the first point
|
|
36
|
+
- Here's another important point
|
|
37
|
+
- And a final thought
|
|
38
|
+
|
|
39
|
+
# Second Slide
|
|
40
|
+
|
|
41
|
+
- More content here
|
|
42
|
+
- Additional information
|
|
43
|
+
- Conclusion
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Generate your video:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
slide-stream create -i presentation.md -o my-video.mp4
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## 🔧 Installation Options
|
|
53
|
+
|
|
54
|
+
### Core Installation
|
|
55
|
+
```bash
|
|
56
|
+
pip install slide-stream
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### With AI Providers
|
|
60
|
+
```bash
|
|
61
|
+
# For OpenAI GPT models
|
|
62
|
+
pip install slide-stream[openai]
|
|
63
|
+
|
|
64
|
+
# For Google Gemini
|
|
65
|
+
pip install slide-stream[gemini]
|
|
66
|
+
|
|
67
|
+
# For Anthropic Claude
|
|
68
|
+
pip install slide-stream[claude]
|
|
69
|
+
|
|
70
|
+
# For Groq (fast inference)
|
|
71
|
+
pip install slide-stream[groq]
|
|
72
|
+
|
|
73
|
+
# For all AI providers
|
|
74
|
+
pip install slide-stream[all-ai]
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## 🎯 Usage Examples
|
|
78
|
+
|
|
79
|
+
### Basic video creation
|
|
80
|
+
```bash
|
|
81
|
+
slide-stream create -i slides.md -o presentation.mp4
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### With AI enhancement
|
|
85
|
+
```bash
|
|
86
|
+
# Set your API key
|
|
87
|
+
export OPENAI_API_KEY="your-api-key-here"
|
|
88
|
+
|
|
89
|
+
# Create enhanced video
|
|
90
|
+
slide-stream create \
|
|
91
|
+
-i slides.md \
|
|
92
|
+
-o presentation.mp4 \
|
|
93
|
+
--llm-provider openai \
|
|
94
|
+
--image-source unsplash
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Text-only slides (no internet required)
|
|
98
|
+
```bash
|
|
99
|
+
slide-stream create \
|
|
100
|
+
-i slides.md \
|
|
101
|
+
-o presentation.mp4 \
|
|
102
|
+
--image-source text
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## 🔑 Environment Variables
|
|
106
|
+
|
|
107
|
+
Set these environment variables for AI providers:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
# OpenAI
|
|
111
|
+
export OPENAI_API_KEY="your-openai-key"
|
|
112
|
+
|
|
113
|
+
# Google Gemini
|
|
114
|
+
export GEMINI_API_KEY="your-gemini-key"
|
|
115
|
+
|
|
116
|
+
# Anthropic Claude
|
|
117
|
+
export ANTHROPIC_API_KEY="your-claude-key"
|
|
118
|
+
|
|
119
|
+
# Groq
|
|
120
|
+
export GROQ_API_KEY="your-groq-key"
|
|
121
|
+
|
|
122
|
+
# Ollama (local)
|
|
123
|
+
export OLLAMA_BASE_URL="http://localhost:11434"
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## 📋 Requirements
|
|
127
|
+
|
|
128
|
+
- Python 3.10+
|
|
129
|
+
- FFmpeg (for video processing)
|
|
130
|
+
- Internet connection (for Unsplash images and AI providers)
|
|
131
|
+
|
|
132
|
+
## 🤝 Contributing
|
|
133
|
+
|
|
134
|
+
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
135
|
+
|
|
136
|
+
## 📄 License
|
|
137
|
+
|
|
138
|
+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
139
|
+
|
|
140
|
+
## 🙏 Acknowledgments
|
|
141
|
+
|
|
142
|
+
- Built with [Typer](https://typer.tiangolo.com/) for the CLI
|
|
143
|
+
- [Rich](https://rich.readthedocs.io/) for beautiful terminal output
|
|
144
|
+
- [MoviePy](https://moviepy.readthedocs.io/) for video processing
|
|
145
|
+
- [Pillow](https://pillow.readthedocs.io/) for image handling
|