Core changes:
- utils/caption_renderer.py: new single-responsibility rendering engine
- Three display modes: aligned, single, multi
- 8-direction stroke technique for clean text outlines
- Transparent PNG overlays (no more solid box)
- utils/whisper_aligner.py: WhisperX forced alignment module
- Word-level timestamps from any TTS audio
- Graceful fallback to single mode if unavailable
- utils/imagenarator.py: refactored as thin orchestrator
- Delegates to caption_renderer
- Saves timing_map.json for final_video sync
- utils/sentiment_map.py: added STYLE_MAP with display_mode per sentiment
- utils/sentiment.py: stores sentiment in settings for downstream use
- TTS/engine_wrapper.py: runs WhisperX after each TTS save
- video_creation/final_video.py: reads timing_map, handles absolute + fraction timing
- video_creation/screenshot_downloader.py: clean imagemaker call
Assets:
- fonts/: added Montserrat, Nunito, Oswald, Raleway, Lato, Anton font families
Dependencies:
- requirements.txt: updated with all current dependencies
- Fix ElevenLabs voice lookup by name using voice_id instead of name string
- Update model from eleven_multilingual_v1 to eleven_multilingual_v2 (free tier)
- Remove hardcoded voice options restriction in config template
- Update default voice to Sarah
- Enable ffmpeg verbose output for better error debugging
The RedditVideoMakerBot has been updated to version 3.2, bringing exciting new features and bug fixes. Introducing **ElevenLabs TTS** for high-quality audio. Enjoy **background audio** and **random voices per comment**. Run the bot with one click using the **bat file**. Use the **zoom setting** for bigger text. Bug fixes include video downloader improvements, random story mode fix, updated dependencies, code optimizations, text size adjustments, enhanced Reddit credentials validation, and translator fixes. Enjoy the new features and **thanks to all contributors**!
The max character is actually 200, not 300 per the [documentation](https://github.com/oscie57/tiktok-voice/wiki/Request-Parameters) `there is a server limit of 200 characters.`
This might be causing the 'error XXX.mp3 file not found' as the app splits based on max_char, and since this is 100 char over the limit the mp3 file never gets created.