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.
Files changed (33) hide show
  1. slide_stream-1.0.0/.coverage +0 -0
  2. slide_stream-1.0.0/LICENSE +21 -0
  3. slide_stream-1.0.0/MANIFEST.in +6 -0
  4. slide_stream-1.0.0/PKG-INFO +204 -0
  5. slide_stream-1.0.0/README.md +145 -0
  6. slide_stream-1.0.0/coverage.xml +322 -0
  7. slide_stream-1.0.0/htmlcov/.gitignore +2 -0
  8. slide_stream-1.0.0/htmlcov/class_index.html +173 -0
  9. slide_stream-1.0.0/htmlcov/coverage_html_cb_6fb7b396.js +733 -0
  10. slide_stream-1.0.0/htmlcov/favicon_32_cb_58284776.png +0 -0
  11. slide_stream-1.0.0/htmlcov/function_index.html +263 -0
  12. slide_stream-1.0.0/htmlcov/index.html +164 -0
  13. slide_stream-1.0.0/htmlcov/keybd_closed_cb_ce680311.png +0 -0
  14. slide_stream-1.0.0/htmlcov/status.json +1 -0
  15. slide_stream-1.0.0/htmlcov/style_cb_81f8c14c.css +337 -0
  16. slide_stream-1.0.0/htmlcov/z_c7ec063d87704035___init___py.html +104 -0
  17. slide_stream-1.0.0/htmlcov/z_c7ec063d87704035_cli_py.html +341 -0
  18. slide_stream-1.0.0/htmlcov/z_c7ec063d87704035_config_py.html +124 -0
  19. slide_stream-1.0.0/htmlcov/z_c7ec063d87704035_llm_py.html +217 -0
  20. slide_stream-1.0.0/htmlcov/z_c7ec063d87704035_media_py.html +248 -0
  21. slide_stream-1.0.0/htmlcov/z_c7ec063d87704035_parser_py.html +137 -0
  22. slide_stream-1.0.0/pyproject.toml +170 -0
  23. slide_stream-1.0.0/src/slide_stream/__init__.py +5 -0
  24. slide_stream-1.0.0/src/slide_stream/cli.py +242 -0
  25. slide_stream-1.0.0/src/slide_stream/config.py +25 -0
  26. slide_stream-1.0.0/src/slide_stream/llm.py +118 -0
  27. slide_stream-1.0.0/src/slide_stream/media.py +149 -0
  28. slide_stream-1.0.0/src/slide_stream/parser.py +38 -0
  29. slide_stream-1.0.0/test_input.md +11 -0
  30. slide_stream-1.0.0/tests/__init__.py +1 -0
  31. slide_stream-1.0.0/tests/test_cli.py +73 -0
  32. slide_stream-1.0.0/tests/test_parser.py +79 -0
  33. 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,6 @@
1
+ include README.md
2
+ include LICENSE
3
+ include pyproject.toml
4
+ recursive-include src *.py
5
+ recursive-exclude * __pycache__
6
+ recursive-exclude * *.py[co]
@@ -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
+ [![PyPI version](https://badge.fury.io/py/slide-stream.svg)](https://badge.fury.io/py/slide-stream)
65
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
66
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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
+ [![PyPI version](https://badge.fury.io/py/slide-stream.svg)](https://badge.fury.io/py/slide-stream)
6
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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