- Create beautiful presentations for any given topic ๐ฅ
- Render intuitive & visually appealing diagrams ๐ผ๏ธ for slides when needed (using Mermaid)
- Write scripts for every slide ๐
- Render & View interactive presentations in HTML ๐ป (using markdown-slides & reveal.js)
- Intuitive speaker view with scripts (reveal.js)
- Export presentations to PDF ๐จ๏ธ (using DeckTape)
- Generate audio narrations from scripts ๐๏ธ (using ElevenLabs)
- Render full video presentations ๐ฅ with all the slides and voiceover (using FFmpeg)
- LlamaIndex Workflows to orchestrate the entire multi-agent setup
- markdown-slides and reveal.js for rendering & viewing the presentation
- Mermaid to render the diagrams
- DeckTape to export the presentation to PDF
- ElevenLabs API to create audio narration for the slides
- FFmpeg to render the full presentation with voiceover
- First install the necessary tools
python -m pip install git+https://gitlab.com/da_doomer/markdown-slides.git
npm install -g @mermaid-js/mermaid-cli
npm install -g decktape
npm install -g puppeteer
puppeteer browsers install chrome
-
Install FFmpeg for your operating system from here
-
Clone the repo
git clone https://github.com/rsrohan99/presenter.git
cd presenter
- Install dependencies
pip install -r requirements.txt
- Create
.env
file and addOPENAI_API_KEY
andELEVENLABS_API_KEY
cp .env.example .env
- Run the workflow with the topic to create the presentation on
python run.py "observer design pattern"
- Add
--export-video
argument to generate a full video of the presentation with voiceover.
python run.py "observer design pattern" --export-video
- After running the workflow, it'll put all the files (slides, video, pdf etc.) inside the
presentations
folder - There be a folder for each presentation generated
- The interactive HTML for the presentation will be at
presentations/<presentation_folder>/output/index.html
- The extracted PDF of the presentation will be at
presentations/<presentation_folder>/presentation.pdf
- The rendered video with voiceover of the presentation will be at
presentations/<presentation_folder>/presentation.mp4