Youtube-based Karaoke machine for Raspberry Pi, OSX, Windows, and Linux
Project description
PiKaraoke
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:
Table of Contents
- Supported Devices / OS / Platforms
- Quick Install
- Manual Installation
- Docker
- Screenshots
- Developing pikaraoke
- Troubleshooting
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
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pikaraoke-1.18.1.tar.gz.
File metadata
- Download URL: pikaraoke-1.18.1.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e11b6c82e707f8975f153818df45aaa8f87b81d4ccc45be78ba50fb11d1463cd
|
|
| MD5 |
3799ea5a8734632f2a9640fadb0a1953
|
|
| BLAKE2b-256 |
d060b2c32b6fb0a1e25be156fb6c2ba93c650ce008377cf8336e82b4f8c3f7f6
|
Provenance
The following attestation bundles were made for pikaraoke-1.18.1.tar.gz:
Publisher:
release-please.yml on vicwomg/pikaraoke
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pikaraoke-1.18.1.tar.gz -
Subject digest:
e11b6c82e707f8975f153818df45aaa8f87b81d4ccc45be78ba50fb11d1463cd - Sigstore transparency entry: 871481009
- Sigstore integration time:
-
Permalink:
vicwomg/pikaraoke@b93ae4adffc734affcea6282f70452eb170612cf -
Branch / Tag:
refs/heads/master - Owner: https://github.com/vicwomg
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-please.yml@b93ae4adffc734affcea6282f70452eb170612cf -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file pikaraoke-1.18.1-py3-none-any.whl.
File metadata
- Download URL: pikaraoke-1.18.1-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3371db4827598448b973cafd82439f6483304df6aa33c523bcc16f0c5cf05c9
|
|
| MD5 |
c2e88845baf1b45b8282042cb0ff4539
|
|
| BLAKE2b-256 |
181eabfc1f4492cabb102539693898faedb7862ba6fc1422d5ac95ce94fbc3cb
|
Provenance
The following attestation bundles were made for pikaraoke-1.18.1-py3-none-any.whl:
Publisher:
release-please.yml on vicwomg/pikaraoke
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pikaraoke-1.18.1-py3-none-any.whl -
Subject digest:
f3371db4827598448b973cafd82439f6483304df6aa33c523bcc16f0c5cf05c9 - Sigstore transparency entry: 871481011
- Sigstore integration time:
-
Permalink:
vicwomg/pikaraoke@b93ae4adffc734affcea6282f70452eb170612cf -
Branch / Tag:
refs/heads/master - Owner: https://github.com/vicwomg
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-please.yml@b93ae4adffc734affcea6282f70452eb170612cf -
Trigger Event:
workflow_dispatch
-
Statement type: