This project generates engaging short videos from text stories. It features a web-based UI for easy video creation, allowing users to input stories, select background videos, choose background music, and pick from a variety of TikTok-style Text-to-Speech (TTS) voices. The final videos are saved directly to your local machine.
Created by egebese.
Acknowledgements: This project is a significantly modified version of the original reddit-shorts-generator by gavink97. While the core functionality has been adapted for local use with different TTS and story input methods, and now includes a Web UI, much of the foundational video processing logic and project structure is derived from this original work.
- Web-Based User Interface: Easily create videos through a user-friendly web page.
- Flexible Input:
- Enter story titles and content directly in the UI.
- Select background videos from your
resources/footage/directory, with thumbnail previews. - Choose background music from your
resources/music/directory, with audio previews. - Select from a wide range of TikTok TTS voices.
- Local Video Output: Saves generated videos to the
generated_shorts/directory. - TikTok TTS Narration: Utilizes the mark-rez/TikTok-Voice-TTS library for dynamic and natural-sounding text-to-speech.
- Customizable Aesthetics:
- Fonts: Uses "Montserrat ExtraBold" for the title image text and video subtitles by default.
- Background Video Looping: Background videos will loop if their duration is shorter than the narration.
- Custom Title Image: Allows for a user-provided template (
resources/images/reddit_submission_template.png) where the story title is overlaid.
- Platform Independent: Core functionality does not rely on direct integration with external platforms like Reddit or YouTube APIs for content fetching or uploading.
#TOOD
-
validate end to end speaker detection and framing autoclip tab this mean we need to be changign the crop to fit the active point of attion / speaker roughly
-
fix this ndex.js:12747:17) at JSXParserMixin.parseBlockOrModuleBlockBody (/Users/mattproctor/Documents/mattrotclips/node_modules/@babel/parser/lib/index.js:13316:61) 7:19:47 p.m. [vite] Pre-transform error: /Users/mattproctor/Documents/mattrotclips/src/screens/AutoClipper.jsx: Unexpected token (483:2)
481 | // ── Phase: selecting ────────────────────────────────────────────────────────── 482 | function SelectingPhase({ clips, videoTitle, videoDuration, heatmap, url, outFolder, onProcess, onReset }) {
483 | const videoId = extractYtId(url) | ^ 484 | const [selected, setSelected] = useState(() => new Set(clips.map((_, i) => i))) 485 | const [previews, setPreviews] = useState({}) 486 | const [outDir, setOutDir] = useState(outFolder || localStorage.getItem('ac_last_outfolder') || '~/Movies/Shorts')
-
add a caption toggle deafults to true for autoclip tab
-
show the view retention heatmap visually on the clip bars (if available)
-
add options for higher quality clip outputs the auto clip tab
-
the previw should be a littele phone of the clip webplaying the youtubethinkg
-
maybe scrape youtube comments for clip parts?
-
change the clip review section to instread of linking to finder show clips in line with a button to delete or a button post to youtube which will use our yotube auth to post it
-
the auto clip should have features to cut silences and speed up audio slightly
-
some way to adjust the captions font, color, sizing with a to scale preview on a tiktok aspect ratio thumbanil