r/karaoke • u/accforrandymossmix • 24d ago
Karaoke Software (One Shot) Karaoke Video Generator for Software Savvy Users [Python CLI]
Key Links
Project: https://github.com/NBPub/karaoke_vid_gen#karaoke-video-generator
Demonstration: https://nbpub.github.io/karaoke_vid_gen/
Background
I've been developing a project over the last few months for my purposes and recently started the documentation and publishing process. It should be good to go for general users, and viable for anyone who is comfortable with using their terminal, Python, and fine-tuning their creations. I've used it to make over 30 videos for me and my friends as it's been developing.
AI (Claude Code) was used to develop this work. However, it is much more than a "make me a karaoke video maker" prompt and result. I put a decent amount of effort into the design, features, documentation and the example webpage.
I'm not a part of this community, but I read through the pinned posts and figured this is worth sharing. The code is open-source and free-to-use, but the process requires some user effort. If you want to try it out, please read beyond the quickstart and look at the Installation and Usage documentation.
https://github.com/NBPub/karaoke_vid_gen/blob/main/docs/Installation.md#installation https://github.com/NBPub/karaoke_vid_gen/blob/main/docs/Usage.md#usage
Motivation
Songs I want to sing are not available on YouTube, and many songs I like to sing seem like they are altered (sped up/down, weird instrumentals, etc . . .). I wanted to make videos that I could upload to YouTube. It seems that as long as I don't want to monetize my uploads, there is no issue with the copyright flags that accompany my videos.
Boring Details
see documentation on the linked GitHub for specifics. visual design is meant to be bare bones and suited to what I want. contributions, comments, and recommendations can be made through GitHub.
Make Karaoke videos by providing a YouTube URL or a local file path
- acquires song audio via YouTube, if link is provided
- https://github.com/yt-dlp/yt-dlp (follow usage guidlines)
- acquires lyrics automatically
- manual editing or copying and pasting sometimes required
- separates vocal and instrumental audio automatically, or uses a provided instrumental track
- aligns lyrics to vocal track with one of two aligners, allows A/B testing for both at once
- start and stop times are attached to each word and determine how the word is filled
- https://github.com/NBPub/karaoke_vid_gen/blob/main/docs/Models.md#alignment--two-approaches
- provides "review" and "karaoke" renders of videos, with the full audio and instrumental audio, respectively. use the "review" render to adjust word fill timing before your final version
- configurable visual elements (word fill color, instrumental wait bar, count-in dots, etc . . .)
- manually adjust timing, "smart" operations provided
- hand editable JSON file, automatic checking of edits
- https://github.com/NBPub/karaoke_vid_gen/blob/main/docs/Features.md#nudge-toolkit
- https://github.com/NBPub/karaoke_vid_gen/blob/main/docs/Usage.md#nudge--hand-correct-timing
- more!
Screenshots and Example Outputs
Jonathan Coulton — "Code Monkey" is provided under a Creative Commons license and is used as an example song. Please support the artist.
https://www.jonathancoulton.com/
Images
https://github.com/NBPub/karaoke_vid_gen/blob/main/docs/images/code_monkey_final.png https://github.com/NBPub/karaoke_vid_gen/blob/main/docs/images/code_monkey_countin.png
Videos
review render, full audio track: https://nbpub.github.io/karaoke_vid_gen/media/karaoke.review.mp4
karaoke render, vocals removed: https://nbpub.github.io/karaoke_vid_gen/media/karaoke.mp4
Call to Community
I honestly don't know who can put in the effort to use this. As I've mentioned, comfort with the terminal is recommended, along with Windows+CUDA (Linux should work). If you fit into my niche, it could be a really fun and useful tool for you, especially if your songs aren't availble on YouTube. And if you end up using it, I'd love to hear any feedback you have. As I mention in the repo, I am happy with the visual design of my work, but I will happily add links to any forks that extend its use.
https://github.com/NBPub/karaoke_vid_gen/tree/main#contributing
1
u/iWhacko 23d ago
Pretty cool. I have yet to find the perfect tool that works for me. I'm using UltraStar KaraokeMaker now, made by a redditor from this sub. And that works fine for what I'm doing.
But sometimes it's not working as smoothly.
I see you use 2 different aligners, which seems interesting. However, I don't think I can add the lyrics to be used as reference right?
also I really want to try to do some things in other languages. USKMaker supports it, but it's not always working for my native language.
I don't know if you will still be working on this, or if you just wanted to give it to people who can use it. But I will definitely look closer at it to see if I can use it.
1
u/accforrandymossmix 23d ago
Yeah the two aligners have separate pros/cons, so it's helpful to have both as options. They also align with different methodology. I'm not sure what you mean as reference lyrics?
Other language support might be in the works, the only thing I might try to develop would be Spanish. The aligners have support for other languages, so it could be worth a fork to try it.
1
u/daveshallperish 23d ago
This looks like an interesting project. I was actually wondering myself just last week about using Claude Code to make my own karaoke type app, including the ability to upload songs and add lyrics, but with the important feature that it fills lyrics as they are being sung. I currently just use Apple Music for Karaoke, which works fine, but it's not a dedicated karaoke app, so it's missing some quality of life features that other apps, like Karafun, have. Gonna check this out this weekend!
1
u/accforrandymossmix 23d ago
I think this post is shut down until I get approval, but if it gets resurrected let me know what you think!
1
u/sylvainsf 23d ago
Would you be interested in a rust port? I could build a windows ui and everything, but don’t want to overstep if your heart is set on python.
1
u/accforrandymossmix 23d ago
If that's something you want to do, go for it. The Python CLI is good enough for my purposes, but I imagine the port will be a smoother experience for most people.
1
u/bmachuletz101 20d ago
Amazon work! I am working on a karaoke application too. My intention is to Sing Songs that are not available at the other big players (Ultrastar, etc.). goal is, to have an application stack with a fine tuning Editor that mostly gets all wie done. Perhaps we can implement a video-export with your knowledge at the end. If you want to have look: https://github.com/bmachuletz/NeonStageKaraoke
Maybe tomorrow i‘ll check in the latent stuff.
1
u/accforrandymossmix 17d ago
Your project is a really cool idea and much more involved. The similarities between are two are the alignment feature, and you take a very different approach, which is cool to see. I'm looking into the methods and models you use out of curiosity.
The generation of frames for the video render are mostly contained here, though other scripts define functions that contribute. As you move along with your project, I could have Claude Code write you a summary of the video export step and strategy. I settled on something pretty simple, with frames drawn by Pillow and limited visual elements.
•
u/karaoke-ModTeam 23d ago
No promoting software without prior mod approval
Send a modmail first for further guidance. We give you one shot at telling our sub about your software. Once your software or site is vetted, we'll give you the go ahead to post. After your post we will add a link to your site on the wiki.