๐Ÿš„ Subway Surfers Text-to-Video Converter

Inspired by the absolute legend danielbonkowsky/subwaysurfers-text, this project throws some sauce on the original concept. If this container saves you time (or your sanity), go drop a star on his project already, damn it.

๐Ÿš€ What the Hell Is This?

You ever try to focus on an article and your brain taps out after the second paragraph? Same. This little monster extracts text from a webpage and slaps it onto hyperactive Subway Surfers gameplay footageโ€”turning dry, boring content into something your scrolling-addicted brain can actually sit through. Perfect for TikTok, ADHD, or just making studying suck less.

You get:
๐Ÿง  smart content + ๐ŸŽฎ mindless gameplay = โœ… actual retention (probably)

๐Ÿ“ธ Screenshot

Add a screenshot here dumbass

๐ŸŽฏ Oh Hell Yeah, Features

  • Converts your average web article into a Subway Surfers-screaming-TikTok-style video
  • Rips text straight from URLs
  • Slaps it on top of fast-ass gameplay
  • Bonus points: speech-to-text powered by Vosk API
  • Built with Flask + OpenCV + goose3 + Python + zero chill

๐Ÿณ Running This Beast with Docker

Step 1: Pull the image, because weโ€™re not building this crap from scratch:

docker pull tebwritescode/subwaysurfers-text20:latest

Step 2: Get the Vosk brain model and unzip it:

wget https://alphacephei.com/vosk/models/vosk-model-en-us-0.22.zip
unzip vosk-model-en-us-0.22.zip -d ./
rm vosk-model-en-us-0.22.zip

Step 3: Drop a gameplay video into ./sources โ€” any .mp4 will do. More videos = more fun. Only one? It'll reuse that sucker on every run.

Step 4: Letโ€™s ride:

docker run -d --name subwaysurfers-text \
  -v ./subwaysurfers/sources:/app/sources \
  -v ./subwaysurfers/vosk-model-en-us-0.22:/app/static/vosk-model-en-us-0.22 \
  -p 5000:5000 \
  tebwritescode/subwaysurfers-text20:latest

Step 5: Fire up your browser and hit:

http://localhost:5000

Get ready to weep tears of productivity as your article runs across a CGI train track.


๐Ÿ›  Using Docker Compose Like a True King ๐Ÿ‘‘

Replace <HOSTPATH> with the full path to where your god-tier video and Vosk model live.

services:
  subwaysurfers-text:
    image: tebwritescode/subwaysurfers-text20:latest
    volumes:
      - <HOSTPATH>/sources:/app/sources
      - <HOSTPATH>/vosk-model-en-us-0.22:/app/static/vosk-model-en-us-0.22
    ports:
      - "5000:5000"

Start it up:

docker-compose up -d

Fun fact: if you only mount one .mp4, the app will always use that. Mount a folder of them? It picks a random vid each time. ๐ŸŽฒ


๐Ÿ The Dockerfile Straight-Up Breakdown

  • Uses a slimmed-down official Python image
  • Installs all the nasty dependencies (yes, even ffmpeg and build tools)
  • Brings in Homebrew in case you're feeling fancy
  • Copies the app, installs Python and brew packages
  • Runs Flask like it means it
  • Your container, your rules

๐Ÿ”ฎ Shit I Still Wanna Add

  • Drop-down to select different AI voices (because not every AI wants to sound like Siri on Ambien)
  • NVIDIA GPU acceleration (because some of you have beefy rigs)
  • Fix that annoying subtitle-stuck bug nobody asked for

๐Ÿง  Want to Run It Without Docker?

You rebel. Hereโ€™s the repo for bare-metal installs:
๐Ÿ‘‰ https://github.com/tebwritescode/subwaysurfers-text-multi


๐Ÿ† Big-Ass Credit Section

Massive props to danielbonkowsky for the core idea. This is just a remixed, Dockerized, slightly louder sibling. Go say thanks.


โš ๏ธ Final Note from His Royal Freshnessโ„ข

Yeah, the container works. It does the job. But it's packing a little extra weight and could use a clean-up. If trimming containers gives you a tech boner, PRs are wide open.

Enjoy learning like a hyper-caffeinated teenager on TikTok ๐Ÿš€