Skip to content

nojukuramu/KaraokeNatin

Repository files navigation

๐ŸŽค KaraokeNatin

Turn any TV, projector, or Android device into a karaoke system with your phone as the remote control!

KaraokeNatin is a local-network karaoke application that lets you enjoy karaoke parties with your friends and family. No expensive equipment needed โ€” just a computer or Android device connected to a TV and everyone's smartphones.

๐Ÿ“บ Note: KaraokeNatin uses YouTube for karaoke video content. Please ensure you comply with YouTube's Terms of Service when using this application.

โœจ Features

For Singers

  • ๐ŸŽต Easy Song Selection โ€” Browse and queue your favorite karaoke songs from YouTube
  • ๐Ÿ“ฑ Phone as Remote โ€” Control the karaoke system from your smartphone
  • ๐Ÿ‘ฅ Multiple Users โ€” Everyone at the party can connect their phones and add songs
  • ๐Ÿ“Š See What's Playing โ€” Real-time view of the current song and upcoming queue
  • ๐ŸŽฎ Playback Controls โ€” Play, pause, skip songs, and adjust volume from your phone
  • ๐Ÿ” Simple Connection โ€” Just scan a QR code to join

For Hosts

  • ๐Ÿ“ฑ Full Android Support (BETA) โ€” Host from Android phones, tablets, and TV
  • ๐Ÿ“บ TV Optimized โ€” Full spatial navigation (DPAD) support
  • ๐Ÿ’ฟ Refined Playlist Management โ€” Persistent library with import/export
  • ๐Ÿ–ฅ๏ธ Windows & Android โ€” Run on Windows PCs, Android phones, tablets, or Android TV
  • ๐Ÿ“บ Android TV Support โ€” DPAD navigation for big-screen experience
  • ๐ŸŽฌ YouTube Integration โ€” Play any karaoke video directly from YouTube
  • ๐Ÿ”„ Automatic Queue โ€” Songs automatically advance when finished
  • ๐Ÿ“ก Local Network โ€” Works over Wi-Fi, no internet required once songs are loaded
  • ๐Ÿ†“ No Subscription โ€” Completely free with no recurring costs
  • ๐ŸŒ Easy Setup โ€” Share a QR code for others to join your session

๐Ÿ“ฆ Downloads

Pre-built Releases

Check the Releases page for:

  • Windows โ€” .exe (NSIS) or .msi installer
  • Android โ€” .apk for phones, tablets, and Android TV (arm64)
  • Note for Android TV: You may need to use a file manager app to install the APK once downloaded.

Build from Source

See Building below.

๐Ÿš€ Getting Started

For Singers

  1. Connect to the same Wi-Fi network as the karaoke host
  2. Scan the QR code shown on the TV screen
  3. Enter your name and start adding songs!

For Hosts

  1. Install KaraokeNatin on your Windows PC or Android device
  2. Connect it to your TV or projector
  3. Launch the app and select Host Mode
  4. Share the QR code with your guests

๐Ÿ”จ Building from Source

Prerequisites

Quick Build

Use the included build script on Windows:

# Build both Android APK + Windows installers
build.bat

# Android only
build.bat android

# Windows only
build.bat windows

# Sign an Android APK
build.bat sign

Manual Build

# 1. Install dependencies
pnpm install

# 2. Build shared types
pnpm --filter @karaokenatin/shared build

# 3. Build host frontend
pnpm --filter @karaokenatin/host build

# 4a. Windows โ€” build Tauri desktop app
cd apps/host
pnpm tauri build

# 4b. Android โ€” cross-compile with cargo-ndk, then Gradle
cd apps/host/src-tauri
cargo ndk -t arm64-v8a -o gen/android/app/src/main/jniLibs build --release --lib --features tauri/custom-protocol
cd gen/android
.\gradlew.bat assembleArm64Release -x rustBuildArm64Release -x rustBuildUniversalRelease

Output Locations

Platform File Location
Windows (NSIS) KaraokeNatin_0.2.0_x64-setup.exe apps/host/src-tauri/target/release/bundle/nsis/
Windows (MSI) KaraokeNatin_0.2.0_x64_en-US.msi apps/host/src-tauri/target/release/bundle/msi/
Android (arm64) app-arm64-release-unsigned.apk apps/host/src-tauri/gen/android/app/build/outputs/apk/arm64/release/

๐Ÿ—๏ธ Project Structure

KaraokeNatin/
โ”œโ”€โ”€ apps/
โ”‚   โ”œโ”€โ”€ host/              # Tauri app (Windows + Android host)
โ”‚   โ”‚   โ”œโ”€โ”€ src/           # React frontend (Vite)
โ”‚   โ”‚   โ””โ”€โ”€ src-tauri/     # Rust backend (Tauri v2)
โ”‚   โ”œโ”€โ”€ signaling-server/  # WebSocket signaling (embedded in host)
โ”‚   โ””โ”€โ”€ web-client/        # Next.js remote control for phones
โ”œโ”€โ”€ packages/
โ”‚   โ””โ”€โ”€ shared/            # Shared TypeScript types & protocols
โ”œโ”€โ”€ build.bat              # One-click build script
โ”œโ”€โ”€ start-dev.bat          # Development environment launcher
โ””โ”€โ”€ CHANGELOG.md           # Version history

๐Ÿค Contributing

We're looking for contributors! Whether you're a developer, designer, or karaoke enthusiast, we'd love your help.

Ways to Contribute

  • ๐Ÿ’ป Code โ€” Help us build new features and fix bugs
  • ๐ŸŽจ Design โ€” Improve the user interface and experience
  • ๐Ÿ“ Documentation โ€” Write tutorials, improve guides, or translate
  • ๐Ÿ› Testing โ€” Report bugs and suggest improvements
  • ๐Ÿ’ก Ideas โ€” Share your feature suggestions

How to Get Started

  1. Check our existing issues
  2. Fork the repository and make your changes
  3. Submit a pull request with a clear description

Report Issues

Found a bug? Help us improve by reporting it on our Issue Tracker.

๐Ÿ“„ License

This project is licensed under the MIT License โ€” see LICENSE for details.

Third-Party Licenses

KaraokeNatin uses rusty_ytdl for YouTube integration (MIT License). Full attribution details are in the licenses directory.

๐Ÿ“š Resources


Made with โค๏ธ for karaoke lovers everywhere

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors