Skip to content

martiinii/ultrastar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UltraStar karaoke song scrapper 🎤

This is a WIP project (that will receive total rewrite at some point in the future) - UltraStar songs scrapper from probably the biggest song database. I've done a similar project in past but I've always had a bigger idea for it and I finally have time and desire to do so.

Screenshot_20250507_222426

Download songs metadata with ease

Head over to http://localhost:3000/download and simply click the button to start seeding database

Screenshot_20250507_222717

Let friends join the fun in 3 seconds!

  1. Visit http://localhost:3000/connect to display the QR code
  2. Friends scan with their phones
  3. Instantly sync and download songs without setup hassle

Screenshot_20250507_222819 screencast

Code structure

This project is using bun as package manager alongside turborepo. I have developed this project using [email protected], but any version above 1.2.4 would do. Packages can be found in /packages directory with the most notable being ultrastar-api.

How to run this application?

Make sure you have bun installed (min version 1.2.4)

  1. Let's start with creating an account on usdb.animux.de.
  2. Create env file cp apps/api/TEMPLATE.env apps/api/.env
  3. Go ahead and register a new account and save the credentials into .env file.
  4. Make sure to install yt-dlp. It is necessary for automatic video downloading.

Then you need to install dependencies with bun i and create database using bun db:push
To build the app use: bun run build and then to start: bun start.

To run application in development mode use bun dev (not recommended for normal use).

Why are there no songs?

For now, you have to downloads songs by yourself. In the future I will upload default database file, but it is over 200MB (mostly cover images). To seed the database by yourself, start the application and head over to http://localhost:3000/download and click button to automatically download songs metadata. This can take some time (depending on your network speed, CPU, etc. should take between 5 to 20 minutes) After that step is complete, head over to main page and enjoy your songs.

What's inside?

This Turborepo includes the following packages/apps:

Apps and Packages

Apps:

  • @ultrastar/api: Backend API server using Elysia.js;
  • @ultrastar/web: Next.js application for frontend;

Packages:

  • @ultrastar/libs: Shared libraries like Elysia's Eden connector;
  • @ultrastar/ts-config: tsconfig.jsons used throughout the monorepo;
  • @ultrastar/types: Custom types used throughout the project like pieces of TS Reset or API types;
  • @ultrastar/ui: UI design system using shadcn/ui;
  • @ultrastar/ultrastar-api: Scrapper API;
  • @ultrastar/youtube-api: Youtube API for downloading and searching videos;

Each package/app is 100% TypeScript (besides some configs, to be fixed).

About

Download songs for UltraStar karaoke with ease through simple to use web application

Topics

Resources

Stars

Watchers

Forks

Contributors 2

  •  
  •