Package: karaokenerds-requests-prep
KaraokeNerds Requests Prep 🎶Prepare for bulk karaoke video creation, by downloading audio from YouTube and lyrics from Genius fortop requests on karaokenerds.This was created with a single use case in mind - to make it easier for me to prepare for bulk creation of karaoke videos while I'm offline (e.g. on a flight or train).
It makes it easy to bulk prepare the top X requests by votes, tips, views, spotify rank etc. so I can then do the actual karaoke creation in a focused batch without internet.FeaturesAudio Fetching: Automatically searches YouTube for each song, downloads the top result and extracts the best quality audio in WAV format.Lyrics Fetching: Automatically fetches song lyrics from Genius.com usingLyricsGenius.Audio Separation: Separates the downloaded audio into instrumental and vocal tracks, usingaudio-separator.Multiple Audio Models: Runs audio separation with 2 different models (by default,UVR_MDXNET_KARA_2andUVR-MDX-NET-Inst_HQ_3) to give you options for the backing track.Easy Configuration: Control the tool's behavior using command-line arguments.Organized Outputs: Creates structured output directories for easy access to generated tracks and lyrics.Internet First: Completes all operations which require internet first (quickly), in case user is preparing last-minute before a period of being offline!Installation 🛠️You can install KaraokeNerds Requests Prep using pip:pip install karaokenerds-requests-prepUsage 🚀Command Line Interface (CLI)You can use Audio Separator via the command line:usage:karaokenerds-requests-prep[-h][-v][--log_levelLOG_LEVEL][--model_nameMODEL_NAME][--model_file_dirMODEL_FILE_DIR][--output_dirOUTPUT_DIR][--use_cuda][--use_coreml][--denoiseDENOISE][--normalizeNORMALIZE][--create_track_subfolders][--skipSKIP_NUM][--sort{votes,tip,views,spotify,date}][limit]Fetchaudioandlyricsforrequestsfromkaraokenerds,toprepareforbulkkaraokevideocreation.

positionalarguments:limitNumberofrequeststofetch.

options:-h,--helpshowthishelpmessageandexit-v,--versionshowprogram'sversionnumberandexit--log_levelLOG_LEVELOptional:logginglevel,e.g.info,debug,warning(default:info).Example:--log_level=debug--model_nameMODEL_NAMEOptional:modelnametobeusedforseparation(default:UVR_MDXNET_KARA_2).Example:--model_name=UVR-MDX-NET-Inst_HQ_3--model_file_dirMODEL_FILE_DIROptional:modelfilesdirectory(default:/tmp/audio-separator-models/).Example:--model_file_dir=/app/models--output_dirOUTPUT_DIROptional:directorytowriteoutputfiles(default:<currentdir>/karaoke).Example:--output_dir=/app/karaoke--use_cudaOptional:useNvidiaGPUwithCUDAforseparation(default:False).Example:--use_cuda=true--use_coremlOptional:useAppleSiliconGPUwithCoreMLforseparation(default:False).Example:--use_coreml=true--denoiseDENOISEOptional:enableordisabledenoisingduringseparation(default:True).Example:--denoise=False--normalizeNORMALIZEOptional:enableordisablenormalizationduringseparation(default:True).Example:--normalize=False--create_track_subfoldersOptional:createsubfoldersintheoutputfolderforeachtrack(default:False).Example:--create_track_subfolders=true--skipSKIP_NUMOptional:skipthefirstXnumberofresults.Example:--skip=10--sort{votes,tip,views,spotify,date}Optional:choosetheorderforthesortparameter(default:votes).Validoptions:votes,tip,views,spotify,dateExample:karaokenerds-requests-prep --sort votes 10This command will process the top 10 requests with the highest votes on Karaoke Nerds, downloading audio and lyrics for each and separating audio, ready for all 10 tracks to be created by whatever process you prefer for creating karaoke tracks!By default, you'll then end up with a folder calledkaraokewith all of the input files ready for bulk karaoke track creation, neatly organised e.g.├── Artist - Title (Instrumental UVR-MDX-NET-Inst_HQ_3).flac
├── Artist - Title (Instrumental UVR_MDXNET_KARA_2).flac
├── Artist - Title (Lyrics).txt
├── Artist - Title (Vocals UVR-MDX-NET-Inst_HQ_3).flac
├── Artist - Title (Vocals UVR_MDXNET_KARA_2).flac
└── Artist - Title (YouTube CNUgemJBLTw).wavRequirements 📋Python >= 3.9Libraries: onnx, onnxruntime, numpy, soundfile, librosa, torch, wget, sixDeveloping LocallyThis project uses Poetry for dependency management and packaging. Follow these steps to setup a local development environment:PrerequisitesMake sure you have Python 3.9 or newer installed on your machine.Install Poetry by following the installation guide here.Clone the RepositoryClone the repository to your local machine:git clone https://github.com/YOUR_USERNAME/karaokenerds-requests-prep.git
cd karaokenerds-requests-prepReplace YOUR_USERNAME with your GitHub username if you've forked the repository, or use the main repository URL if you have the permissions.Install DependenciesRun the following command to install the project dependencies:poetry installActivate the Virtual EnvironmentTo activate the virtual environment, use the following command:poetry shellRunning the Command-Line Interface LocallyYou can run the CLI command directly within the virtual environment. For example:karaokenerds-requests-prep 1Deactivate the Virtual EnvironmentOnce you are done with your development work, you can exit the virtual environment by simply typing:exitBuilding the PackageTo build the package for distribution, use the following command:poetry buildThis will generate the distribution packages in the dist directory - but for now only @beveradb will be able to publish to PyPI.Contributing 🤝Contributions are very much welcome! Please fork the repository and submit a pull request with your changes, and I'll try to review, merge and publish promptly!This project is 100% open-source and free for anyone to use and modify as they wish.If the maintenance workload for this repo somehow becomes too much for me I'll ask for volunteers to share maintainership of the repo, though I don't think that is very likelyLicense 📄This project is licensed under the MITLicense.Please Note:If you choose to integrate this project into some other project using the default model or any other model trained as part of theUVRproject, please honor the MIT license by providing credit to UVR and its developers!Credits 🙏karaokenerd- Creator ofKaraokeNerds.com, without which we wouldn't even have a way to request karaoke tracks for creation! Huge thank you for the creation of the website which helps karaoke community creators keep organised and focused!Anjok07- Author ofUltimate Vocal Remover GUI, which was essential for the creation ofaudio-separator! Thank you!Contact 💌For questions or feedback, please raise an issue or reach out to @beveradb (Andrew Beveridge) directly.