automatically create dumb video edits
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hazy 20b82e73c1 no longer log __dirname 5 months ago
src Speed up or slow down some clips randomly 5 months ago
.gitignore Various improvements 5 months ago
LICENSE Concatenate in chunks, + other improvements 5 months ago Rephrase 5 months ago Initial Commit 5 months ago
index.js no longer log __dirname 5 months ago
package-lock.json Various improvements 5 months ago
package.json Various improvements 5 months ago


Create YTP-style shitposts. Powered by ffmpeg and NodeJS, inspired by YTP+


Be sure to have ffmpeg installed and in your $PATH.


cd to the birdgen folder you just created. Add sounds to the sound folder, music to the music folder, and extra clips to splice into the YTP in the video folder.

If you'd like to use the assets used by YTP+ (along with a vine boom sound effect because why not), run the included bash script (Requires git and yt-dlp).


cd into the birdgen folder. Then, run node index.js -i {Input video file path} -o {Output video file path} to edit a video.

To be able to use birdgen in any directory, run npm install -g {PATH TO YOUR BIRDGEN FOLDER}. Then, you can use the command birdgen from anywhere.

Optional arguments

  • --chaos The chaoticness of the edit from 0 to 100 (Changes how many clips birdgen will split the input file into. Higher numbers result in more edits)
  • --ffmpeg-processes Number of ffmpeg processes to run at a time (Not used for concatenation)
  • --chunk-size How big of chunks to concatenate at once (Lower numbers may take longer, but will use less memory)
  • --detect-scenes Instead of splicing out silent parts and then adding sound effects on each jump cut, add sound effects on each scene-change (When the video goes to a new camera shot). When this is enabled, chaos controls sensitivity (1 takes a lot of the frame to change before counting it as a scene change, 100 detects almost any movement at all)

For example: node index.js -i {Input file} -o {Output file} --chaos 50 --fmpeg-processes 4 --chunk-size 10 for 50% chaoticness, 4 ffmpeg processes, and 40 clips per chunk. This is the default.

Advanced features

Video category forcing

You can make sure a random music file or sound file is always played with one of your video assets.

Rename the video file to {name}.{category}.mp4. For example, will always have a random music asset playing with the video.

This is useful for if you have a silent video, and would like for it to always have music attached.

To force a video clip to always have the same specific music or sound, instead of just a random one, you must add the music/sound to the video file yourself in your favorite video editor.


birdgen is under the Unlicensed license.