A starter project for creating YouTube Poop (YTP)-style remixes using Python + FFmpeg with a simple Tkinter GUI. This "Deluxe Edition" provides many creative effects (audio and video), randomized effect application, effect probability and max-level controls, and a modular pipeline to add more effects.
Notes:
- Target platform: Windows 7 / 8.1 (should also work on Windows 10+).
- Python: 3.7+ recommended (3.8+ recommended).
- FFmpeg is required (ffmpeg.exe accessible via PATH or specify FFMPEG_PATH env var).
Features included (implemented or approximated):
- Random Sound Injection
- Reverse Clip
- Speed Up / Slow Down
- Chorus / Echo / Aperiodic echoes
- Vibrato / Pitch bend / Pitch shift
- Stutter Loop
- Earrape Mode (gain spikes)
- Auto-Tune Chaos (approximated via pitch randomness)
- Dance & Squidward Mode (fast cuts + pitch)
- Invert Colors
- Rainbow Overlay
- Mirror Mode
- Sus Effect (random audio pitch + visual jitter)
- Explosion Spam (duplicate frames + heavy audio)
- Frame Shuffle
- Full "YTP Deluxe Complete" preset
- Meme injection, Sentence mixing (audio slicing), Deep Fry Vision (heavy saturation + noise)
- Auto Source Switcher (basic)
- Chaos Timeline (random edits)
- Classic Nostalgia Mode (XP sounds, Sparta remixes approximations)
- Random Clip Shuffle, Speed Warp, Green Screen Portal, Random Clips & Cuts, Trailing reversed effects
- Many more toggles (all are exposed in the GUI with probability and max level)
This project offers a working framework. Many deep effects (e.g., "Auto-Tune") are approximated using FFmpeg filters (as a true auto-tune requires specialized libraries).
How to install
-
Install Python 3.7+ and pip.
-
Install required Python packages: pip install -r requirements.txt
-
Install FFmpeg (Windows):
- Download static ffmpeg build from https://www.gyan.dev/ffmpeg/builds/ or https://ffmpeg.org/download.html
- Put ffmpeg.exe in a folder and add it to PATH, or place ffmpeg.exe next to main.py, or set environment variable
FFMPEG_PATHto full path of ffmpeg.exe.
How to run
- From the project folder: python main.py
Basic usage
- Click "Open File" and pick a video or audio file (common formats supported: mp4, mkv, wav, mp3, avi).
- Toggle effects you want, or use "Randomize" to pick effects by probability.
- Adjust "Effect Probability" slider (applies to randomized activation) and "Max Effect Level" (0–100) to scale intensity.
- Click "Process" to create an output file in the same folder as input (output filename is autogenerated).
Project structure
- main.py — GUI and orchestration
- effects.py — effect implementations; each effect returns FFmpeg filter(s) or performs audio manipulations
- ffmpeg_wrapper.py — helper that locates and runs ffmpeg.exe
- utils.py — small utilities (randomization, temp file handling, scaling)
- presets.json — example presets
- requirements.txt — pip packages
- LICENSE — MIT
Extending
- Add new effects in effects.py and expose them in the GUI effects_registry.
- Effects must conform to the signature described in effects.py (input path, tmpdir, level -> returns (audio_filters, video_filters, extra_files, post_process_fn))
Limitations and warnings
- Some combined filter chains can be heavy — processing can be slow and CPU/GPU intensive.
- Use small test files until you tune effects.
- Effects are designed for creative remixing; some produce loud audio. Use headphones carefully.
If you want, I can:
- Add a preview window to play a short rendered sample.
- Add batch processing for many files.
- Add more realistic autotune integration (requires external libs).
- Provide a pre-built Windows zip with ffmpeg included.
Enjoy remixing!