Self hosted all-in-one karaoke software https://syng.rocks
Find a file
2024-06-17 17:18:45 +02:00
docs Preparation for 2.0 release 2023-12-18 18:56:03 +01:00
stubs Boy I wished, that customtkinter would be correctly typed :/ 2023-12-18 19:44:21 +01:00
syng Youtube: renamed attributes to be compatible with constructor 2024-06-17 17:18:45 +02:00
.gitignore Configured Gitlab CI for sphinx, mypy and pylint 2022-12-04 22:23:08 +01:00
.gitlab-ci.yml Boy I wished, that customtkinter would be correctly typed :/ 2023-12-18 19:44:21 +01:00
LICENSE LICENSE hinzufügen 2022-12-04 14:54:21 +00:00
poetry.lock Fixing versions of dependencies 2023-12-19 13:54:00 +01:00
pyproject.toml completely removed pytube. All YT communication is now done via yt-dlp. 2024-06-17 16:13:03 +02:00
README.md Installation was wrong :/ 2023-12-19 13:47:14 +01:00
requirements.txt Fixing versions of dependencies 2023-12-19 13:54:00 +01:00

Syng

Syng is an all-in-one karaoke software, consisting of a backend server, a web frontend and a playback client. Karaoke performers can search a library using the web frontend, and add songs to the queue. The playback client retrieves songs from the backend server and plays them in order.

Currently, songs can be accessed using the following sources:

  • YouTube. The backend server queries YouTube for the song and forwards the URL to the playback client. The playback client then downloads the video from YouTube for playback.
  • S3. The backend server holds a list of all file paths accessible through the s3 storage, and forwards the chosen path to the playback client. The playback client then downloads the needed files from the s3 for playback.
  • Files. Same as S3, but all files reside locally on the playback client.

The playback client uses mpv for playback and can therefore play a variety of file formats, such as mp3+cdg, webm, mp4, ...

Installation

Server

pip install "syng[server] @ git+https://github.com/christofsteel/syng.git"

This installs the server part (syng-server), if you want to self-host a syng server. There is a publicly available syng instance at https://syng.rocks.

Client

pip install "syng[client] @ git+https://github.com/christofsteel/syng.git"

This installs both the playback client (syng-client) and a configuration GUI (syng-gui).