Skip to main content

Youtube-based Karaoke machine for Raspberry Pi, OSX, Windows, and Linux

Project description

PiKaraoke

Conventional Commits

PiKaraoke is a "KTV"-style karaoke song search and queueing system. It connects to your TV, and shows a QR code for computers and smartphones to connect to a web interface. From there, multiple users can seamlessly search your local track library, queue up songs, add an endless selection of new karaoke tracks from YouTube, and more. Works on Raspberry Pi, OSX, Windows, and Linux!

Features: dedicated player/splash screen, mobile-friendly web interface, song searching/browsing, adding new songs from YouTube, mp3 + cdg support, playback controls, queue management, key change / pitch shifting, filename management, admin mode, headless mode

Pikaraoke is independently developed and maintained. If you want to support this project with a little monetary tip, it's much appreciated:

Buy Me A Coffee

Table of Contents

Supported Devices / OS / Platforms

  • Raspberry Pi
    • Requires a Raspberry Pi Model 3 or higher
    • Bookworm Desktop OS required for standalone/headed mode
    • For Pi 3: overclocking is recommended for smoother playback
  • OSX
  • Windows
  • Linux

Quick Install

For a streamlined installation that handles all dependencies (python, pipx, ffmpeg, deno, yt-dlp) and installs PiKaraoke, run the following in your terminal:

Linux & macOS

curl -fsSL https://raw.githubusercontent.com/vicwomg/pikaraoke/master/build_scripts/install/install.sh | bash

Windows (PowerShell)

irm https://raw.githubusercontent.com/vicwomg/pikaraoke/master/build_scripts/install/install.ps1 | iex

After installation, you can launch pikaraoke from the command line with pikaraoke or from a desktop shortcut (if specified).

You can rerun the above command to update a previous installation also.

Manual installation (advanced)

Prerequisites

  • A modern web browser (Chrome/Chromium/Edge recommended)
  • Python 3.10 or greater: Python downloads
  • FFmpeg: FFmpeg downloads
  • A js runtime installed to your PATH. Node.js is most common, Deno is probably easiest for non-developers.

Install pikaraoke via pipx

We recommend installing pikaraoke via pipx. You may alternately use the standard python pip installer if you are familiar with virtual environments or you are not concerned with global package isolation.

pipx install pikaraoke

Run pikaraoke with:

pikaraoke

This will start pikaraoke in headed mode, and open the default browser with the splash screen. You can then connect to the QR code via your mobile device and start downloading and queueing songs.

Upgrading

To upgrade to the latest version of pikaraoke, run:

pipx upgrade pikaraoke

More Options

See the help command pikaraoke --help for available options.

Docker instructions

For Docker users, you can get going with one command. Note that for best results you should map the port, supply your actual LAN IP, and set some persistence volumes for songs and settings (for simplicity, this example sets them to ~):

docker run -p 5555:5555 \
  -v ~/pikaraoke-songs:/app/pikaraoke-songs \
  -v ~/.pikaraoke:/home/pikaraoke/.pikaraoke \
  vicwomg/pikaraoke:latest \
  -u http://<YOUR_LAN_IP>:5555

For more information and a configurable docker-compose example, see official Dockerhub repo

Screenshots

pikaraoke-nowplaying pikaraoke-queue pikaraoke-browse pikaraoke-search1 pikaraoke-search2
pikaraoke-tv2

Developing pikaraoke

The Pikaraoke project utilizes uv for dependency management and local development.

  • Install uv
  • Git clone this repo

From the pikaraoke directory :

# install dependencies and run pikaraoke
uv run pikaraoke

See the Pikaraoke development guide for more details.

Troubleshooting and guides

See the TROUBLESHOOTING wiki for help with issues.

There are also some great guides on the wiki to running pikaraoke in all manner of bizarre places including Android, Chromecast, and embedded TVs!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pikaraoke-1.18.0.tar.gz (11.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pikaraoke-1.18.0-py3-none-any.whl (11.0 MB view details)

Uploaded Python 3

File details

Details for the file pikaraoke-1.18.0.tar.gz.

File metadata

  • Download URL: pikaraoke-1.18.0.tar.gz
  • Upload date:
  • Size: 11.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pikaraoke-1.18.0.tar.gz
Algorithm Hash digest
SHA256 be98906ea10c74ab1ad7d9ad9892813b6d812cbb352efed0e9d78f2253763579
MD5 28391ebcd4b52fe57fcf0d5cafb8aedf
BLAKE2b-256 02c195d218f2d704f61ca34fa65d24242919a696503680ca439a30bb861aa4a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pikaraoke-1.18.0.tar.gz:

Publisher: release-please.yml on vicwomg/pikaraoke

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pikaraoke-1.18.0-py3-none-any.whl.

File metadata

  • Download URL: pikaraoke-1.18.0-py3-none-any.whl
  • Upload date:
  • Size: 11.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pikaraoke-1.18.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fe91bb0c4c38de15b425b3a03ffee50eb08364320d5256639ca6a8876685432c
MD5 7d3d29aede68446df9d067cc16200063
BLAKE2b-256 fcbdbdde48997d0ea1439f77532d78b907f5e552079595468648fc4d4b7fd1a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pikaraoke-1.18.0-py3-none-any.whl:

Publisher: release-please.yml on vicwomg/pikaraoke

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page