Skip to content
Dan Kurtz edited this page Jan 31, 2021 · 1 revision

Make Your Own Karaoke Videos

Step 0: Install This

In order to make this work, you'll need to type commands into a terminal. You'll also need to have python, git and ffmpeg installed on your system.

Step 0.1: Clone the repo.

Step 0.2: cd to the directory of the cloned repo.

Step 0.3: Install the libraries that the script needs in order to run. The libraries are listed in the requirements.txt file, and you can install them all in one shot with this command:

pip install -r requirements.txt

Step 1: Make A Lyrics File

Open up a text editor and create a new file. Find the lyrics to the song you want to sing, and paste them into this file. Save the file with a .txt extension.

Your karaoke video will display the lyrics the same way they are laid out in the file. If a line looks too long, split it into two lines.

A blank line indicates that the next lyrics should be on a new screen. These lyrics would be shown on one screen:

Honey, this is the first screen
Yeah, yeah, there's just one screen

These lyrics would be shown on two screens:

Oooh baby
I'm on the first screen

Uh hey sugar
Now I'm on the second screen

Step 2: Run the script to make the video

In your terminal, run: python make_karaoke_video.py --lyricsfile /path/to/my/lyrics.txt --songfile /path/to/my/song.mp3

songfile can be any type of file that ffmpeg can process, which is most of them. Mp3, m4a, Ogg Vorbis should all be fine.

First, the script will separate your song file into a vocal track and an instrumental track. Then, it will play the song and ask you to give it timing information about the lyrics. It will show you lyrics one at a time. When you hear the start of that lyric in the song, press the spacebar. It'll display the next lyric. If there's a gap between the end of one lyric and the start of another, press the Enter key when the first lyric ends, and then press spacebar as normal when the second lyric begins.

Yes, it's kind of like playing Rock Band.

The video will be called out.mp4.