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!

If you want to support this project with a little monetary tip, it's much appreciated:
Buy Me A Coffee

Table of Contents

Features

Feature Description
Web Interface Multiple users can queue tracks from their smartphones
Player/Splash Screen Connection QR code and "Next up" display
Searching/Browsing Browse a local song library
Adding New Songs Add new songs from Youtube
mp3 + cdg Support Includes compressed .zip bundles
Playback Controls Pause, Skip, Restart, and volume control
File Management Advanced editing of downloaded file names
Queue Management Manage the song queue and change the order
Key Change / Pitch Shifting Adjust the pitch of songs
Admin Mode Lock down features with admin mode
Headless Mode Run a dedicated server and stream pikaraoke to remote browser

Supported Devices / OS

  • 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

Get Started

Install required programs

Pikaraoke requires Python 3.9 or greater. You can check your current version by running python --version. Python downloads

Raspberry Pi OS / Linux distros with apt:

sudo apt-get install ffmpeg -y
sudo apt-get install chromium-browser -y
sudo apt-get install chromium-chromedriver -y

Windows / OSX / Linux:

Install pikaraoke

Create a virtual environment (optional)

Using a virtual environment (venv) is recommended to prevent conflicts with other global python packages.

You may find it more convenient to skip these steps, which allows you to launch pikaraoke without activating a venv first, but you run the risk of package conflicts.

If you don't install a lot of python projects with pip, that skipping venv is probably be fine. The choice is yours. See the python documentation for more details on venv.

Raspberry Pi/Linux/OSX:

# Create a .venv directory in the homedir
python -m venv ~/.venv
# Activate your virtual environment
source ~/.venv/bin/activate

Windows (Powershell terminal):

:: Create a venv in Windows in your homedir
cd $HOME
python -m venv .venv
.venv\Scripts\activate

You should see a "(venv)" prefix in your terminal prompt if the venv is successfully activated.

Install pikaraoke via pip

Next, install pikaraoke from PyPi on the host into your venv:

# Install pikaraoke from PyPi
pip install pikaraoke

Note: if you did not use a venv, you may need to add the --break-system-packages parameter to ignore the warning and install pikaraoke and its dependencies globally.

Run

Pikaraoke is now installed in the $PATH with the command line interface pikaraoke. Start by calling the pikaraoke command.

# Run pikaraoke
pikaraoke

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

Virtual env users: note that if you close your terminal between launches, you'll need to run: source ~/.venv/bin/activate or .venv\Scripts\activate (windows) before launching pikaraoke again.

More Options

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

Screenshots

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

Developing pikaraoke

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

  • Install poetry: Poetry
  • Git clone this repo

From the pikaraoke directory:

# install dependencies
poetry install
# Run pikaraoke from the local codebase
poetry run pikaraoke

See the Pikaraoke development guide for more details.

Run from repository (legacy)

See README for how to install pikaraoke cloning this repo and using the scripts. This is a legacy method and may no longer work.

Troubleshooting

See the TROUBLESHOOTING wiki for help with issues.

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.5.2.tar.gz (719.6 kB view details)

Uploaded Source

Built Distribution

pikaraoke-1.5.2-py3-none-any.whl (763.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pikaraoke-1.5.2.tar.gz
  • Upload date:
  • Size: 719.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pikaraoke-1.5.2.tar.gz
Algorithm Hash digest
SHA256 1caad6cd643af7b9e32d29f0aea23eb1fbd36f2dd3d181ed21b45461f28df29a
MD5 a5ac2985f540c1f4d579b4bfb198395e
BLAKE2b-256 f873fb998891b8bf41e67807149994e4bce2946c3a44b5730a25b70c6d6f11d4

See more details on using hashes here.

Provenance

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

Publisher: release-please.yml on vicwomg/pikaraoke

Attestations:

File details

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

File metadata

  • Download URL: pikaraoke-1.5.2-py3-none-any.whl
  • Upload date:
  • Size: 763.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pikaraoke-1.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2961fc201b3a5ac6390d39293ff9ab378ffe386684f1f048b43f5f56c5e1a83c
MD5 3ae797ec7ed3effa3ab76a431b94e5e1
BLAKE2b-256 6db04351fcbbf88fec1c4a1bf7480c3d0e0134f8f535adb9acfeacb443d36eff

See more details on using hashes here.

Provenance

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

Publisher: release-please.yml on vicwomg/pikaraoke

Attestations:

Supported by

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