🎮 Subway Surfers Text-to-Video Generator
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.
⚡ What the Heck Is This?
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.
📸 Screenshots
Click to show screenshots
🆕 Version 1.1.22 — We’re Not in Beta Anymore, Baby
🏁 It’s production-ready, polished, and packs some serious features:
- ✅ WhisperASR joins the party for laser-accurate captions
- ✅ Will chew through long text like a pro—no irritating cutoffs
- ✅ Fine-tuned caption timing for when milliseconds matter
- ✅ Docker build now squeaky clean and snappy
- ✅ Wiped all temps and test outputs—Marie Kondo would be proud
🚀 Previously on "Holy Hell, This App Got Stuff"
- ✅ Watch your video generate in real time like it's 1999
- ✅ Choose your favorite TikTok voice—Brian or bust
- ✅ Browse your masterpieces in-app like a proper social media producer
- ✅ Survives crashes like a cockroach in an apocalypse
📜 Wanna see the full changelog? It’s hanging out in version.py.
✨ Magical Powers (aka Features)
🎬 Video Generation Wizardry
- Scrape the useful text from pages or input it directly
- Narration via TikTok’s vocal besties
- Subtitles locked in like clockwork—with tweakable timing
- Auto-looping gameplay on repeat while your message goes viral
- See every glorious progress bar along the way
🎙️ Text-To-Speech Goodness
- TikTok voices so real, it’s uncanny
- Plays nice with long texts, even War and Peace levels
- Strip-clean text for pronunciation perfection
- Adjustable speed so you can go Morgan Freeman slow or auctioneer fast
📱 Sleek, Sexy UI
- Modern, mobile-ready, and not hideous to look at
- Watch your progress actually progress
- Full-on video manager and preview
- Flash messages for feedback, because silence is for losers
🔧 Under-the-Hood Insanity
- WhisperASR makes sure your captions don’t miss a beat
- Dockerified for painless deployment
- Configuration heaven (caption offsets, model paths, the works)
- Doesn’t crash when life gives you lemons
🚀 Quickstart: Make It Go Brrr
🧙 You Will Need
- Python 3.12+ and pip (no dinosaurs allowed)
- FFmpeg (the secret sauce)
- OR Docker (the easy button)
Installation Path #1: Docker All the Damn Way (Recommended)
docker run -p 5000:5000 \ -e WHISPER_ASR_URL=http://your-whisper-server:9000 \ -v /path/to/videos:/app/static \ tebwritescode/subwaysurfers-text20:latest
Or slap it up with Docker Compose:
docker-compose up -d
Installation Path #2: Do It Yourself, You Brave Nerd
git clone https://github.com/tebwritescode/subwaysurfers-text-multi.git cd subwaysurfers-text-multi python3.12 -m venv .venv source ./.venv/bin/activate pip install -r requirements-pip.txt
Now for the secret ingredients:
- 👂 Get the Vosk model:
https://alphacephei.com/vosk/models/vosk-model-en-us-0.22.zip
Unzip that sucker into./static/vosk-model-en-us-0.22/
- 🎮 Add background gameplay to
./static/
(grab a sample:
https://drive.google.com/file/d/1ZyFZKIB1HiZM_XDQPRRiiAIvU4sgl10k/view)
Fire. It. Up:
python app.py # Or the Flask way flask run
Then slide into http://localhost:5000
and get generating.
🛠️ Tweaky Settings (Because You’re Fancy)
Name | Default | What It Does |
---|---|---|
FLASK_PORT |
5000 | Port for your web wizardry |
WHISPER_ASR_URL |
http://localhost:9000 | Caption whisperer’s URL |
CAPTION_TIMING_OFFSET |
0.25 | Controls how early/late your captions appear |
SOURCE_VIDEO_DIR |
./static | Folder where your gaming chaos lives |
MODEL_PATH |
./static/vosk-model-en-us-0.22 | Location of Vosk’s big brain |
DOCKER_ENV |
false | Flip to true when running in a container |
Quick Docker deploy reminder:
docker run -p 5000:5000 \ -e WHISPER_ASR_URL=http://your-whisper-server:9000 \ -e CAPTION_TIMING_OFFSET=-0.1 \ -v /path/to/videos:/app/static \ tebwritescode/subwaysurfers-text20:latest
📖 How to Wield the Power
Generate a Video, Baby
- Stroll over to the homepage
- Drop in your favorite copy-pasta, or slap in a URL
- Pick a voice (Jessie? Brian? Stitch? Go wild.)
- Adjust speech speed if you’re feeling fancy
- Click “Generate” and watch the sausage being made
- Download or stream the glorious final product
Voices You’ll Love or Hate
- Jessie — sassy, spunky, sounds like TikTok
- Brian — Very British. Probably drinks earl grey.
- Stitch — You already know he’s up to something.
- Echo — Narrates your life like it’s a gritty documentary.
- Oh, and more. Because OF COURSE there are more.
Hand-Picked Gameplay Backgrounds (aka: dopamine fuel)
- Subway Surfers
- Minecraft parkour (aka sweaty palms)
- Pokémon
- Factorio (factory go brrr)
- StarCraft battles
- Oddly satisfying slice clips
🏗️ How It All Stacks
subwaysurfers-text-multi/ ├── app.py # Flask brainstem ├── sub.py # Turns text into magic ├── tiktokvoice.py # Talks like TikTok ├── whisper_timestamper.py # Whisper those timestamps ├── videomaker.py # Mashes video + captions ├── cleantext.py # Makes your input less gross ├── version.py # Keeps track of app’s many glow-ups ├── requirements-pip.txt # Stuff Python needs ├── requirements-docker.txt # Stuff Docker needs ├── Dockerfile # Bottle it up ├── docker-compose.yml # Auto-magic orchestration ├── templates/ # HTML for humans ├── static/ # Game videos and models └── final_videos/ # Birthplace of brilliance
💻 Tech Stack:
- Backend: Python 3.12, Flask
- TTS: Our buddy TikTok
- Speech: Vosk + Whisperlore
- Video: MoviePy, FFmpeg, OpenCV madness
- Frontend: HTML/CSS/JS that doesn’t suck
- Container: Yeah, Docker is here too
🔐 Don’t Worry, It’s Not Sketchy
- Input gets sanitized so trolls don’t win
- Malicious URLs? Denied at the gate
- Files renamed so they don’t nuke your machine
- Docker gives it adult supervision
- No login required—public chaos only
🛠️ For the Code-Wranglers
Test Everything Before You Wreck Everything
python app.py --test ./clean.sh # Delete past masterpieces ./concat.sh # Process like a content farm
Build the Docker Unicorn
docker buildx build --platform linux/amd64,linux/arm64 \ -t tebwritescode/subwaysurfers-text20:latest \ -t tebwritescode/subwaysurfers-text20:v1.1.22 \ --push .
🐞 Known Bugs (We Keep It Real)
- Big videos = big wait times. Queue a snack.
- Weird characters might bamboozle the TTS
- Long articles can piss off your browser—keep it snack-sized
- WhisperASR server required if you actually want captions to line up
📊 Performance Stats
- 2-5 minutes per minute of final vid
- Eats up to 10,000 words like a champ
- Optimized for videos under 10 mins
- Section-splits large rants for smoother sailing
🛣️ Roadmap (aka what’s cookin’)
- Delegate video crunching to its own nerdy container
- Let users pick their gameplay drug of choice
- Upload your own gameplay, you control freak
- More voice options (maybe Darth Vader?)
- Sneak peeks as the sausage gets stuffed
- Mass-processing for the content addicted
🤝 Wanna Contribute? We Like You Already
- Fork it like it’s hot
- Branch out:
git checkout -b feature/amazing-feature
- Test until it breaks
- Push your magic:
git push origin feature/amazing-feature
- Make that Pull Request and show us what you got
📝 License Stuff
MIT License. You’re free to do most things, just don’t sue us.
👑 Made with caffeine, chaos, and code by tebbydog0605
📦 Docker Hub: tebwritescode
🌐 Website: teb.codes