Blame
| 73e683 | Tebby Dog | 2025-08-18 11:20:52 | 1 | # 🎮 Subway Surfers Text-to-Video Generator | 
| 2 | > Behold: a Flask-powered monstrosity that slaps together gameplay footage, TikTok voices, and on-point captions—giving your boring text the glow-up it never knew it needed.  | 
|||
| 3 |   | 
|||
| 4 |   | 
|||
| 5 |   | 
|||
| 6 |   | 
|||
| 7 |   | 
|||
| 15f83e | Tebby Dog | 2025-07-13 04:53:01 | 8 | |
| 73e683 | Tebby Dog | 2025-08-18 11:20:52 | 9 | ## ⚡ What the Heck Is This?  | 
| 10 | Turn your articles—or your random stream-of-consciousness into short-form crack. With Subway Surfers gameplay. Because apparently, our brains now need dopamine and parkour to learn a damn thing. This app makes it fast, fun, and freakishly effective. Get that sweet virality hit.  | 
|||
| 9ade66 | Tebby Dog | 2025-08-09 20:10:11 | 11 | |
| 73e683 | Tebby Dog | 2025-08-18 11:20:52 | 12 | ---  | 
| 9ade66 | Tebby Dog | 2025-08-09 20:10:11 | 13 | |
| 14 | ## 📸 Screenshots  | 
|||
| 299410 | Tebby Dog | 2025-08-18 11:22:06 | 15 | <details>  | 
| 16 |   <summary><i>Click to show screenshots</i></summary>  | 
|||
| 9ade66 | Tebby Dog | 2025-08-09 20:10:11 | 17 | |
| 299410 | Tebby Dog | 2025-08-18 11:22:06 | 18 |   | 
| 19 |   | 
|||
| 20 |   | 
|||
| 21 |   | 
|||
| 22 |   | 
|||
| 23 |   | 
|||
| 24 | ||||
| 25 | </details>  | 
|||
| 9ade66 | Tebby Dog | 2025-08-09 20:10:11 | 26 | |
| 73e683 | Tebby Dog | 2025-08-18 11:20:52 | 27 | ## 🆕 Version 1.1.22 — We’re Not in Beta Anymore, Baby  | 
| 28 | 🏁 It’s production-ready, polished, and packs some serious features:  | 
|||
| 29 | - ✅ WhisperASR joins the party for laser-accurate captions  | 
|||
| 30 | - ✅ Will chew through long text like a pro—no irritating cutoffs  | 
|||
| 31 | - ✅ Fine-tuned caption timing for when milliseconds matter  | 
|||
| 32 | - ✅ Docker build now squeaky clean and snappy  | 
|||
| 33 | - ✅ Wiped all temps and test outputs—Marie Kondo would be proud  | 
|||
| 34 | ||||
| 35 | ### 🚀 Previously on "Holy Hell, This App Got Stuff"  | 
|||
| 36 | - ✅ Watch your video generate in real time like it's 1999  | 
|||
| 37 | - ✅ Choose your favorite TikTok voice—Brian or bust  | 
|||
| 38 | - ✅ Browse your masterpieces in-app like a proper social media producer  | 
|||
| 39 | - ✅ Survives crashes like a cockroach in an apocalypse  | 
|||
| 9ade66 | Tebby Dog | 2025-08-09 20:10:11 | 40 | |
| 1044a7 | Tebby Dog | 2025-08-18 11:23:47 | 41 | 📜 Wanna see the full changelog? It’s hanging out in [version.py](https://github.com/tebwritescode/subwaysurfers-text-multi/blob/b79b35ce12dd8bfb1e1ba567e3dd57e2dba17da9/version.py).  | 
| 9ade66 | Tebby Dog | 2025-08-09 20:10:11 | 42 | |
| 8181d1 | Tebby Dog | 2025-07-06 22:24:48 | 43 | ---  | 
| 73e683 | Tebby Dog | 2025-08-18 11:20:52 | 44 | |
| 45 | ## ✨ Magical Powers (aka Features)  | 
|||
| 46 | ### 🎬 Video Generation Wizardry  | 
|||
| 47 | - Scrape the useful text from pages or input it directly  | 
|||
| 48 | - Narration via TikTok’s vocal besties  | 
|||
| 49 | - Subtitles locked in like clockwork—with tweakable timing  | 
|||
| 50 | - Auto-looping gameplay on repeat while your message goes viral  | 
|||
| 51 | - See every glorious progress bar along the way  | 
|||
| 52 | ||||
| 53 | ### 🎙️ Text-To-Speech Goodness  | 
|||
| 54 | - TikTok voices so real, it’s uncanny  | 
|||
| 55 | - Plays nice with long texts, even War and Peace levels  | 
|||
| 56 | - Strip-clean text for pronunciation perfection  | 
|||
| 57 | - Adjustable speed so you can go Morgan Freeman slow or auctioneer fast  | 
|||
| 58 | ||||
| 59 | ### 📱 Sleek, Sexy UI  | 
|||
| 60 | - Modern, mobile-ready, and not hideous to look at  | 
|||
| 61 | - Watch your progress *actually* progress  | 
|||
| 62 | - Full-on video manager and preview  | 
|||
| 63 | - Flash messages for feedback, because silence is for losers  | 
|||
| 64 | ||||
| 65 | ### 🔧 Under-the-Hood Insanity  | 
|||
| 66 | - WhisperASR makes sure your captions don’t miss a beat  | 
|||
| 67 | - Dockerified for painless deployment  | 
|||
| 68 | - Configuration heaven (caption offsets, model paths, the works)  | 
|||
| 69 | - Doesn’t crash when life gives you lemons  | 
|||
| 70 | ||||
| 71 | ---  | 
|||
| 72 | ||||
| 73 | ## 🚀 Quickstart: Make It Go Brrr  | 
|||
| 74 | ### 🧙 You Will Need  | 
|||
| 75 | - Python 3.12+ and pip (no dinosaurs allowed)  | 
|||
| 76 | - FFmpeg (the secret sauce)  | 
|||
| 77 | - OR Docker (the easy button)  | 
|||
| 78 | ||||
| 79 | ### Installation Path #1: Docker All the Damn Way (Recommended)  | 
|||
| 80 | ```bash  | 
|||
| 81 | docker run -p 5000:5000 \  | 
|||
| 82 |   -e WHISPER_ASR_URL=http://your-whisper-server:9000 \  | 
|||
| 83 |   -v /path/to/videos:/app/static \  | 
|||
| 8181d1 | Tebby Dog | 2025-07-06 22:24:48 | 84 |   tebwritescode/subwaysurfers-text20:latest  | 
| 85 | ```  | 
|||
| 73e683 | Tebby Dog | 2025-08-18 11:20:52 | 86 | |
| 87 | Or slap it up with Docker Compose:  | 
|||
| 88 | ```bash  | 
|||
| 89 | docker-compose up -d  | 
|||
| 8181d1 | Tebby Dog | 2025-07-06 22:24:48 | 90 | ```  | 
| 149edb | Tebby Dog | 2025-07-13 04:52:18 | 91 | |
| 73e683 | Tebby Dog | 2025-08-18 11:20:52 | 92 | ### Installation Path #2: Do It Yourself, You Brave Nerd  | 
| 93 | ```bash  | 
|||
| 94 | git clone https://github.com/tebwritescode/subwaysurfers-text-multi.git  | 
|||
| 95 | cd subwaysurfers-text-multi  | 
|||
| 96 | python3.12 -m venv .venv  | 
|||
| 97 | source ./.venv/bin/activate  | 
|||
| 98 | pip install -r requirements-pip.txt  | 
|||
| 99 | ```  | 
|||
| 149edb | Tebby Dog | 2025-07-13 04:52:18 | 100 | |
| 73e683 | Tebby Dog | 2025-08-18 11:20:52 | 101 | Now for the secret ingredients:  | 
| 102 | - 👂 Get the Vosk model:    | 
|||
| 103 |   https://alphacephei.com/vosk/models/vosk-model-en-us-0.22.zip    | 
|||
| 104 |   Unzip that sucker into `./static/vosk-model-en-us-0.22/`  | 
|||
| 105 | - 🎮 Add background gameplay to `./static/` (grab a sample:    | 
|||
| 106 |   https://drive.google.com/file/d/1ZyFZKIB1HiZM_XDQPRRiiAIvU4sgl10k/view)  | 
|||
| 149edb | Tebby Dog | 2025-07-13 04:52:18 | 107 | |
| 73e683 | Tebby Dog | 2025-08-18 11:20:52 | 108 | Fire. It. Up:  | 
| 109 | ```bash  | 
|||
| 110 | python app.py  | 
|||
| 111 | # Or the Flask way  | 
|||
| 112 | flask run  | 
|||
| 149edb | Tebby Dog | 2025-07-13 04:52:18 | 113 | ```  | 
| 114 | ||||
| 73e683 | Tebby Dog | 2025-08-18 11:20:52 | 115 | Then slide into `http://localhost:5000` and get generating.  | 
| 116 | ||||
| 117 | ---  | 
|||
| 118 | ||||
| 119 | ## 🛠️ Tweaky Settings (Because You’re Fancy)  | 
|||
| 120 | | Name | Default | What It Does |  | 
|||
| 121 | |------|---------|---------------|  | 
|||
| 122 | | `FLASK_PORT` | 5000 | Port for your web wizardry |  | 
|||
| 123 | | `WHISPER_ASR_URL` | http://localhost:9000 | Caption whisperer’s URL |  | 
|||
| 124 | | `CAPTION_TIMING_OFFSET` | 0.25 | Controls how early/late your captions appear |  | 
|||
| 125 | | `SOURCE_VIDEO_DIR` | ./static | Folder where your gaming chaos lives |  | 
|||
| 126 | | `MODEL_PATH` | ./static/vosk-model-en-us-0.22 | Location of Vosk’s big brain |  | 
|||
| 127 | | `DOCKER_ENV` | false | Flip to true when running in a container |  | 
|||
| 149edb | Tebby Dog | 2025-07-13 04:52:18 | 128 | |
| 73e683 | Tebby Dog | 2025-08-18 11:20:52 | 129 | Quick Docker deploy reminder:  | 
| 130 | ```bash  | 
|||
| 131 | docker run -p 5000:5000 \  | 
|||
| 132 |   -e WHISPER_ASR_URL=http://your-whisper-server:9000 \  | 
|||
| 133 |   -e CAPTION_TIMING_OFFSET=-0.1 \  | 
|||
| 134 |   -v /path/to/videos:/app/static \  | 
|||
| 149edb | Tebby Dog | 2025-07-13 04:52:18 | 135 |   tebwritescode/subwaysurfers-text20:latest  | 
| 136 | ```  | 
|||
| 8181d1 | Tebby Dog | 2025-07-06 22:24:48 | 137 | |
| 73e683 | Tebby Dog | 2025-08-18 11:20:52 | 138 | ---  | 
| 139 | ||||
| 140 | ## 📖 How to Wield the Power  | 
|||
| 141 | ### Generate a Video, Baby  | 
|||
| 142 | 1. Stroll over to the homepage  | 
|||
| 143 | 2. Drop in your favorite copy-pasta, or slap in a URL  | 
|||
| 144 | 3. Pick a voice (Jessie? Brian? Stitch? Go wild.)  | 
|||
| 145 | 4. Adjust speech speed if you’re feeling fancy  | 
|||
| 146 | 5. Click “Generate” and watch the sausage being made  | 
|||
| 147 | 6. Download or stream the glorious final product  | 
|||
| 148 | ||||
| 149 | ### Voices You’ll Love or Hate  | 
|||
| 150 | - Jessie — sassy, spunky, sounds like TikTok  | 
|||
| 151 | - Brian — Very British. Probably drinks earl grey.  | 
|||
| 152 | - Stitch — You already know he’s up to something.  | 
|||
| 153 | - Echo — Narrates your life like it’s a gritty documentary.  | 
|||
| 154 | - Oh, and more. Because OF COURSE there are more.  | 
|||
| 155 | ||||
| 156 | ### Hand-Picked Gameplay Backgrounds (aka: dopamine fuel)  | 
|||
| 157 | - Subway Surfers  | 
|||
| 158 | - Minecraft parkour (aka sweaty palms)  | 
|||
| 159 | - Pokémon  | 
|||
| 160 | - Factorio (factory go brrr)  | 
|||
| 161 | - StarCraft battles  | 
|||
| 162 | - Oddly satisfying slice clips  | 
|||
| 163 | ||||
| 164 | ---  | 
|||
| 165 | ||||
| 166 | ## 🏗️ How It All Stacks  | 
|||
| 167 | ```  | 
|||
| 168 | subwaysurfers-text-multi/  | 
|||
| 169 | ├── app.py                # Flask brainstem  | 
|||
| 170 | ├── sub.py                # Turns text into magic  | 
|||
| 171 | ├── tiktokvoice.py        # Talks like TikTok  | 
|||
| 172 | ├── whisper_timestamper.py # Whisper those timestamps  | 
|||
| 173 | ├── videomaker.py         # Mashes video + captions  | 
|||
| 174 | ├── cleantext.py          # Makes your input less gross  | 
|||
| 175 | ├── version.py            # Keeps track of app’s many glow-ups  | 
|||
| 176 | ├── requirements-pip.txt   # Stuff Python needs  | 
|||
| 177 | ├── requirements-docker.txt # Stuff Docker needs  | 
|||
| 178 | ├── Dockerfile            # Bottle it up  | 
|||
| 179 | ├── docker-compose.yml    # Auto-magic orchestration  | 
|||
| 180 | ├── templates/            # HTML for humans  | 
|||
| 181 | ├── static/               # Game videos and models  | 
|||
| 182 | └── final_videos/         # Birthplace of brilliance  | 
|||
| 149edb | Tebby Dog | 2025-07-13 04:52:18 | 183 | ```  | 
| 73e683 | Tebby Dog | 2025-08-18 11:20:52 | 184 | |
| 185 | 💻 Tech Stack:  | 
|||
| 186 | - Backend: Python 3.12, Flask  | 
|||
| 187 | - TTS: Our buddy TikTok  | 
|||
| 188 | - Speech: Vosk + Whisperlore  | 
|||
| 189 | - Video: MoviePy, FFmpeg, OpenCV madness  | 
|||
| 190 | - Frontend: HTML/CSS/JS that doesn’t suck  | 
|||
| 191 | - Container: Yeah, Docker is here too  | 
|||
| 192 | ||||
| 193 | ---  | 
|||
| 194 | ||||
| 195 | ## 🔐 Don’t Worry, It’s Not Sketchy  | 
|||
| 196 | - Input gets sanitized so trolls don’t win  | 
|||
| 197 | - Malicious URLs? Denied at the gate  | 
|||
| 198 | - Files renamed so they don’t nuke your machine  | 
|||
| 199 | - Docker gives it adult supervision  | 
|||
| 200 | - No login required—public chaos only  | 
|||
| 201 | ||||
| 149edb | Tebby Dog | 2025-07-13 04:52:18 | 202 | ---  | 
| 73e683 | Tebby Dog | 2025-08-18 11:20:52 | 203 | |
| 204 | ## 🛠️ For the Code-Wranglers  | 
|||
| 205 | ### Test Everything Before You Wreck Everything  | 
|||
| 206 | ```bash  | 
|||
| 207 | python app.py --test  | 
|||
| 208 | ./clean.sh  # Delete past masterpieces  | 
|||
| 209 | ./concat.sh # Process like a content farm  | 
|||
| 8181d1 | Tebby Dog | 2025-07-06 22:24:48 | 210 | ```  | 
| 73e683 | Tebby Dog | 2025-08-18 11:20:52 | 211 | |
| 212 | ### Build the Docker Unicorn  | 
|||
| 213 | ```bash  | 
|||
| 214 | docker buildx build --platform linux/amd64,linux/arm64 \  | 
|||
| 215 |   -t tebwritescode/subwaysurfers-text20:latest \  | 
|||
| 216 |   -t tebwritescode/subwaysurfers-text20:v1.1.22 \  | 
|||
| 217 |   --push .  | 
|||
| 8181d1 | Tebby Dog | 2025-07-06 22:24:48 | 218 | ```  | 
| 73e683 | Tebby Dog | 2025-08-18 11:20:52 | 219 | |
| 8181d1 | Tebby Dog | 2025-07-06 22:24:48 | 220 | ---  | 
| 73e683 | Tebby Dog | 2025-08-18 11:20:52 | 221 | |
| 222 | ## 🐞 Known Bugs (We Keep It Real)  | 
|||
| 223 | - Big videos = big wait times. Queue a snack.  | 
|||
| 224 | - Weird characters might bamboozle the TTS  | 
|||
| 225 | - Long articles can piss off your browser—keep it snack-sized  | 
|||
| 226 | - WhisperASR server required if you actually want captions to line up  | 
|||
| 227 | ||||
| 228 | ---  | 
|||
| 229 | ||||
| 230 | ## 📊 Performance Stats  | 
|||
| 231 | - 2-5 minutes per minute of final vid  | 
|||
| 232 | - Eats up to 10,000 words like a champ  | 
|||
| 233 | - Optimized for videos under 10 mins  | 
|||
| 234 | - Section-splits large rants for smoother sailing  | 
|||
| 235 | ||||
| 8181d1 | Tebby Dog | 2025-07-06 22:24:48 | 236 | ---  | 
| 73e683 | Tebby Dog | 2025-08-18 11:20:52 | 237 | |
| 238 | ## 🛣️ Roadmap (aka what’s cookin’)  | 
|||
| 239 | - [ ] Delegate video crunching to its own nerdy container  | 
|||
| 240 | - [ ] Let users pick their gameplay drug of choice  | 
|||
| 241 | - [ ] Upload your own gameplay, you control freak  | 
|||
| 242 | - [ ] More voice options (maybe Darth Vader?)  | 
|||
| 243 | - [ ] Sneak peeks as the sausage gets stuffed  | 
|||
| 244 | - [ ] Mass-processing for the content addicted  | 
|||
| 245 | ||||
| 8181d1 | Tebby Dog | 2025-07-06 22:24:48 | 246 | ---  | 
| 73e683 | Tebby Dog | 2025-08-18 11:20:52 | 247 | |
| 248 | ## 🤝 Wanna Contribute? We Like You Already  | 
|||
| 249 | 1. Fork it like it’s hot  | 
|||
| 250 | 2. Branch out: `git checkout -b feature/amazing-feature`  | 
|||
| 251 | 3. Test until it breaks  | 
|||
| 252 | 4. Push your magic: `git push origin feature/amazing-feature`  | 
|||
| 253 | 5. Make that Pull Request and show us what you got  | 
|||
| 254 | ||||
| 8181d1 | Tebby Dog | 2025-07-06 22:24:48 | 255 | ---  | 
| 73e683 | Tebby Dog | 2025-08-18 11:20:52 | 256 | |
| 257 | ## 📝 License Stuff  | 
|||
| 258 | MIT License. You’re free to do most things, just don’t sue us.  | 
|||
| 259 | ||||
| 8181d1 | Tebby Dog | 2025-07-06 22:24:48 | 260 | ---  | 
| 73e683 | Tebby Dog | 2025-08-18 11:20:52 | 261 | |
| 262 | 👑 Made with caffeine, chaos, and code by [tebbydog0605](https://github.com/tebbydog0605)    | 
|||
| 263 | 📦 Docker Hub: [tebwritescode](https://hub.docker.com/u/tebwritescode)    | 
|||
| 264 | 🌐 Website: [teb.codes](https://teb.codes)  |