Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tarkah/karaoke-rs
A simple, network enabled karaoke player in Rust
https://github.com/tarkah/karaoke-rs
actix-web glium karaoke music rodio rust wasm yew
Last synced: 12 days ago
JSON representation
A simple, network enabled karaoke player in Rust
- Host: GitHub
- URL: https://github.com/tarkah/karaoke-rs
- Owner: tarkah
- License: mit
- Created: 2019-04-16T22:20:15.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-06-08T22:37:14.000Z (over 2 years ago)
- Last Synced: 2024-10-15T11:38:09.957Z (24 days ago)
- Topics: actix-web, glium, karaoke, music, rodio, rust, wasm, yew
- Language: Rust
- Homepage:
- Size: 6.09 MB
- Stars: 161
- Watchers: 4
- Forks: 11
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-yew - karaoke-rs - A simple, network enabled karaoke player in Rust. (Projects)
README
A simple, network enabled karaoke player in Rust.
---
Your karaoke collection can be browsed and queued from a self served website and played either natively on your computer, or remotely through any browser. Only supports MP3+G (mp3 & corresponding cdg) files.
**_Now includes a web player. Songs can be played from any modern browser, anywhere in the world! Use command line flag `--use-web-player` to enable this feature. Player is accessible from the `/player` page on the website and can be controlled just like the native player through commands on the queue page._**
- [Setup](#setup)
- [Linux](#linux)
- [macOS](#macos)
- [Windows](#windows)
- [Build from Source](#build-from-source)
- [CLI Arguments](#cli-arguments)
- [Screenshots](#screenshots)
- [Songs Page](#songs-page)
- [Favorites Page](#favorites-page)
- [Artists Page](#artists-page)
- [Queue Page](#queue-page)
- [Player](#player)
- [Acknowledgments](#acknowledgments)## Setup
### Linux
- Download latest [release](https://github.com/tarkah/karaoke-rs/releases/latest) or build from source
- Run `karaoke-rs --help` to see all arguments
- Place your song collection at `~/.local/share/karaoke-rs/songs`, or specify location via `--songs path/to/song/directory`
- Default configuration file is created at `~/.config/karaoke-rs/config.yaml`. This can be copied / changed and specified via `--config path/to/config.yaml`
- You may need to force disable vsync to eliminate flickering, set environment variable `vblank_mode=0`### macOS
- Download latest [release](https://github.com/tarkah/karaoke-rs/releases/latest) or build from source
- Run `karaoke-rs --help` to see all arguments
- Place your song collection at `$HOME/Library/Application Support/karaoke-rs/songs`, or specify location via `--songs path/to/song/directory`
- Default configuration file is created at `$HOME/Library/Preferences/karaoke-rs/config.yaml`. This can be copied / changed and specified via `--config path/to/config.yaml`### Windows
- Download latest [release](https://github.com/tarkah/karaoke-rs/releases/latest) or build from source
- Double click `karaoke-rs.exe` to run with default configuration. Run from command prompt / powershell `karaoke-rs.exe --help` to see all arguments
- Place your song collection at `%APPDATA%\karaoke-rs\songs`, or specify location via `--songs C:\path\to\song\directory`
- Default configuration file is created at `%APPDATA%\karaoke-rs\config.yaml`. This can be copied / changed and specified via `--config C:\path\to\config.yaml`
- Ensure all paths supplied via argument are absolute from the root of the applicable drive. Relative paths appear to cause program to crash### Build from Source
- Build frontendFirst [install wasm-pack](https://rustwasm.github.io/wasm-pack/installer/), then run:
```sh
cd frontend
npm install
npm run build
```
- Compile
```sh
cd ..
cargo build --release
```
- Binary located at `target/release/karaoke-rs`## CLI Arguments
```
karoake-rs 0.11.1
tarkah
A simple, network enabled karaoke player in RustUSAGE:
karaoke-rs [FLAGS] [OPTIONS]FLAGS:
-h, --help Prints help information
-w, --use-web-player Use web player instead of native player
-V, --version Prints version informationOPTIONS:
-c, --config Sets a custom config file
-d, --data Sets a custom data directory
-p, --port Specify website port
--port-ws Specify a websocket port when using the web player feature
-r, --refresh-collection Specify if collection should be refreshed on startup [possible values: true,
false]
-s, --songs Sets a custom song directory
```## Screenshots
### Songs Page
![songs](/screenshots/songs.png?raw=true)### Favorites Page
![favorites](/screenshots/favorites.png?raw=true)### Artists Page
![artists](/screenshots/artists.png?raw=true)### Queue Page
![queue](/screenshots/queue.png?raw=true)### Player
![player1](/assets/background.png?raw=true)![player1](/screenshots/player_1.png?raw=true)
![player2](/screenshots/player_2.png?raw=true)
## Acknowledgments
- [@maxjoehnk](https://github.com/maxjoehnk) - Thanks for designing the frontend!
- [@Keavon](https://github.com/Keavon) - Thanks for helping extensively test the new frontend & web player!