All Projects → karaokemugen → karaokemugen-app

karaokemugen / karaokemugen-app

Licence: MIT license
Karaoke player and manager (Backup repository. Main is https://gitlab.com/karaokemugen/karaokemugen-app )

Programming Languages

typescript
32286 projects
SCSS
7915 projects
javascript
184084 projects - #8 most used programming language
PLpgSQL
1095 projects
CSS
56736 projects
shell
77523 projects

Projects that are alternatives of or similar to karaokemugen-app

Plex Mpv Shim
Cast media from Plex Mobile and Web apps to MPV. (Unofficial)
Stars: ✭ 120 (+300%)
Mutual labels:  mpv
Mpv Prescalers
prescalers for mpv, as user shaders
Stars: ✭ 191 (+536.67%)
Mutual labels:  mpv
mpv-ytdlautoformat
A simple mpv script to auto change ytdl-format for Youtube and Twitch
Stars: ✭ 30 (+0%)
Mutual labels:  mpv
Mpv Playlistmanager
Mpv lua script to create and manage playlists
Stars: ✭ 150 (+400%)
Mutual labels:  mpv
Play With Mpv
Chrome extension that allows you to play videos in webpages like youtube with MPV instead
Stars: ✭ 163 (+443.33%)
Mutual labels:  mpv
Mpv
🎥 Command line video player
Stars: ✭ 17,018 (+56626.67%)
Mutual labels:  mpv
Intersubs
Interactive subtitles for mpv. Instantly translate selected word/sentence.
Stars: ✭ 111 (+270%)
Mutual labels:  mpv
mpv-scripts
A collection of scripts for mpv player
Stars: ✭ 138 (+360%)
Mutual labels:  mpv
Glow
mpv Config File Generator for Windows
Stars: ✭ 167 (+456.67%)
Mutual labels:  mpv
iheart-mplayer
Automatically open an iheartradio station in a media player, such as mplayer, VLC, or mpv
Stars: ✭ 44 (+46.67%)
Mutual labels:  mpv
Haruna
Open source video player built with Qt/QML and libmpv.
Stars: ✭ 147 (+390%)
Mutual labels:  mpv
Mpv Scripts
Various scripts for mpv
Stars: ✭ 164 (+446.67%)
Mutual labels:  mpv
Mpv Webm
Simple WebM maker for mpv, with no external dependencies.
Stars: ✭ 234 (+680%)
Mutual labels:  mpv
Ff2mpv
A Firefox add-on for playing URLs in mpv.
Stars: ✭ 149 (+396.67%)
Mutual labels:  mpv
podcast-player
A Python command line podcast player
Stars: ✭ 20 (-33.33%)
Mutual labels:  mpv
Dotfiles
If there is a shell, there is a way!
Stars: ✭ 112 (+273.33%)
Mutual labels:  mpv
Mpv Stats
Display file statistics in mpv.
Stars: ✭ 192 (+540%)
Mutual labels:  mpv
typography-karaoke
Demonstrating Typography via Karaoke-style cues using HTML5 Audio/Video and WebVTT
Stars: ✭ 15 (-50%)
Mutual labels:  karaoke
vscode-mediaplayer
Mediaplayer extention for VS Code
Stars: ✭ 18 (-40%)
Mutual labels:  mpv
Python Mpv
Python interface to the awesome mpv media player
Stars: ✭ 245 (+716.67%)
Mutual labels:  mpv

Karaoke Mugen

logo

presentation

Master branch: pipeline status - Next branch: pipeline status

Project: Last commit Latest version License Size Commits since release on next Weblate

Social: Discord Discourse Twitter Mastodon

Karaoke Mugen is a playlist manager and player for video and audio karaoke. It's made of a webapp and an engine. The webapp allows users to search for and add songs and admins to manage the karaoke session and playlists. The engine plays those songs on the computer used to display the video.

It works like a japanese karaoke where anyone can add songs one after another to a playlist with their smartphone, tablet or computer. The playlist can be reviewed by an operator or played "as is".

Karaoke Mugen can work without an Internet connection, but a few of its features need online access.

This is a mature product, battle-tested during anime conventions like Jonetsu, Japan Expo or Japanantes and similar events, weddings, anime nights between friends, etc. There still are some bugs remaining we'd like to exterminate, obviously :).

Visit Karaoke Mugen's homepage

Features

  • Accepted formats:
    • Video: AVI, MP4, MKV (anything supported by mpv really)
    • Subtitles: ASS, SRT, Karafun, KAR, Ultrastar, KBP
      • Apart from ASS and SRT, subtitles will get converted for use with mpv as it can't read them directly.
    • Music: MP3, M4A, OGG (anything supported by mpv really)
  • Streamer-friendly options: Twitch chat triggers, Nico Nico Douga-style comments, text files with refreshed information for your layouts, and more.
  • Complete player controls: Skip, pause, play, stop, rewind playback, hide/show lyrics, mute/unmute and volume control.
  • Pitch and speed controls for the song currently playing
  • Playlist management: Reorder, shuffle, copy and move songs around between playlists
    • Playlists can be current (used by the video player) and/or public (where users can send songs to)
    • Playlists can be hidden from public interface.
    • Some songs in the playlist can be hidden, these songs will be displayed as "???" to keep the surprise to public users.
    • Playlists can be smart : automatically generate playlists depending on some criterias.
  • Blacklist and whitelist system: Hide some songs from public view.
  • Complete metadata structure for songs: Singers, songwriters, creators, authors, languages, categorization tags...
    • Complete filter system and search engine based on the aforementionned metadata.
  • System Panel to configure Karaoke Mugen:
    • Multi-karaoke repositories support: You can add as many repositories you want. Karaoke Mugen comes with its own of course.
    • Configure application behaviour and view logs
    • Manage your song library (add, remove, edit...)
    • View stats like most played or requested songs
  • User profiles with access rights, favorites list, and preferences
  • Web interface for smartphone/tablet/desktop IE6 compatible
    • Public interface can be set to restricted mode to prevent adding songs or in closed mode to prevent access while you prepare your karaoke.
    • Users can add songs they want from the library or their own favorites, follow the current playlist, see lyrics in real time from where they are (great for near-sighted people who want to sing along!)
    • Operators can organize playlists and control the player through the operator interface.
  • Highly customizable experience to tailor the app to your specific needs (for twitch streams, in front of a crowd, between friends, for karaoke contests, etc.)
  • Display karaoke information or operator announcements during song playback
  • Export/import playlists and favorites
  • For anime fans: link your account with MyAnimeList, Anilist or Kitsu to get a song list with all the anime you've seen!
  • And many other things! Check out the feature list

How it works

  • See the install section below
  • Launch the app (see the launch section below). You will be prompted with some questions and you will need to create an account (online or local).
  • Karaoke Mugen will update its database on startup with the default karaoke repository. You can alternatively create your own repositories and karaokes. See the karaoke base repository and documentation.
  • Once your playlist is ready, invite some friends and direct them to the public interface with their device. Let them add songs. Once enough songs are added, hit play and have fun!

Medias are downloaded on the go, but you can pre-download everything (beware, it's several hundred gigabytes big!) if you're preparing a karaoke event in a place without reliable Internet for example.

For more information, check out the documentation site!

System requirements

The app is multi-platform and works on Linux/Windows/macOS.

For source installs, it requires nodeJS 14 or above, as well as postgresql, GNU patch, mpv and ffmpeg binaries (see below).

For binary installs, everything's included.

Install

If you don't want to install manually, binaries are available on the website for Windows, Linux and macOS. The instructions below are for power users or devs who want to tinker with the app.

Download

To install, git clone this repository with the --recursive flag since it uses git submodules or download one of the available binaries for macOS or Windows on Karaoke Mugen's website.

Config files and portability

If a file named portable exists in the same directory as KM, it will seek its config files in a app folder from that directory.

If that file does not exist, config files will be read from ~/KaraokeMugen/.

Portable mode is useful if you're storing Karaoke Mugen on a removeable media or an external hard drive.

Required binaries

mpv (video player), ffmpeg (video/audio processing), GNU Patch (data updates), and postgreSQL (database) are required by Karaoke Mugen.

Depending on your system

You can also define paths where to find those binaries in your config.yml file if you have them already installed elsewhere on your system and wish to use them. See config.sample.yml for examples.

You can download a complete package for mpv/ffmpeg/postgres/patch here:

Binaries must be placed in the app/bin folder (create it if it doesn't exist already).

If that's not the case, you can modify those paths in config.yml.

Make sure postgres is launched, configured and ready for use.

If you're using Linux and with to use your distribution's own binaries, beware: they often package old versions of ffmpeg/mpv/postgresql, update them first via their own websites' instructions if you're not using the ones we provide.

mpv

mpv 0.33 or later is required. (mpv's website)

ffmpeg

ffmpeg 3 or later is required (ffmpeg's website)

Patch

You'll need a version of the GNU patch utility 2.7 or above so Karaoke Mugen can apply git-patches sent via Karaoke Mugen Server to keep your song lists up to date.

  • On Windows, you can download a pre-compiled one here
  • On macOS we recommend you use Homebrew to install GNU Patch.
  • On Linux, make sure your distribution has the latest patch package.

PostgreSQL

PostgreSQL 13.x or later is required (postgreSQL's website)

Version 12.x can work but we're bundling 13 with the binary distribution of Karaoke Mugen, so we'll base any feature decision later on version 13.

Versions below 12.x won't work.

Later PostgreSQL versions should work just fine.

Karaoke Mugen can use PostgreSQL in two ways :

  • Existing database cluster : Connect to an existing PostgreSQL server (edit the config.yml file to point to the correct server and database). This is the preferred way on Linux systems.
  • Bundled PostgreSQL version : If bundledPostgresBinary is set to true in config.yml then Karaoke Mugen will seek a app/bin/postgresql directory. Inside, you should have a complete PostgreSQL distribution including a bin, lib and share folders. Karaoke Mugen needs to find the pg_ctl binary in the bin folder.

See Database setup for more information.

Yarn

If you don't have yarn, install it first from Yarn's website

Git submodules

Initialize some git config values either via yarn gitconfig or by hand:

git config diff.submodule log
git config fetch.recursesubmodules on-demand
git config status.submodulesummary true
git config push.recursesubmodules on-demand
git config submodule.recurse true

Use the yarn pull command (which is a shortcut for git pull with submodules) to update submodules.

Dependencies

Launch yarn to install dependencies and build the React frontend

yarn setup

This runs install on the app and frontend then builds them.

Database setup

Karaoke Mugen needs a PostgreSQL database to work.

Create a config.yml and place it in your data directory (~/KaraokeMugen or app/ in portable configurations). Edit it and add the following, filling in the blanks (username, password, port, host and database name of your choosing.) and switch bundledPostgresBinary to false. Leave superuser and superuserPassword blank. It should look like this :

System:
  Database:
    bundledPostgresBinary: false
    database: karaokemugen_app
    host: localhost
    password: musubi
    port: 5432
    username: karaokemugen_app

As a superuser on PostgreSQL, you need to create the database properly. Use the psql command-line tool to connect to your PostgreSQL cluster and create the needed database and extension. Example with the config.yml above :

CREATE DATABASE karaokemugen_app ENCODING 'UTF8';
CREATE USER karaokemugen_app WITH ENCRYPTED PASSWORD 'musubi';
GRANT ALL PRIVILEGES ON DATABASE karaokemugen_app TO karaokemugen_app;

Switch to the newly created database and enable the unaccent extension.

\c karaokemugen_app
CREATE EXTENSION unaccent;

All done!

Launch

If you're running on a headless Linux install, see the following section.

If you're running on any other system with a graphical interface, To launch the app :

yarn start

Generating a database ie required on first launch and is done automatically if the database specified in config.yml is empty.

On first run, the app will make you create an admin user and decide on a few base settings. You'll get to follow a guided tour of the operator panel too. You can trigger this tour process again by selecting the Tutorial item in the K menu on the app's operator panel.

Headless install

Our runtime is Electron and it needs a X Server to work, but we can go around that. Once launched, Karaoke Mugen is reachable with a browser by going to http://<your_ip>:1337.

To launch an Electron app without an attached X Server you'll need Xvfb installed

export DISPLAY=':99.0'
Xvfb :99 -screen 0 1920x1080x24 > /dev/null 2>&1 &
yarn startHeadless

API

If you wish to create your own client for Karaoke Mugen or interact with its API, please see the dedicated API documentation site

Translations

Frontend

Translation status frontend

Backend

Translation status backend

Contact

You can contact us by either

  • Creating an issue
  • Going to the contact page and picking the communication channel of your choice.

How to contribute

Karaoke Mugen is created by people who like anime, karaoke, etc. You can help us fill the world with karaoke!

For code/development contributions, read the contributing guide

Everything's there, and if you have questions, you can come to our Discord in the #dev channel!

Another way is to post on our Discourse Forum

Donations

We accept donations through Patreon, Liberapay or Paypal directly. If you're interested in helping us pay for our infrastructure and other projects, please donate! For more information on why we need money and how to donate, see this news article on our site

Special thanks

Sentry full logo

Thanks to the Sentry error tracking solution, the app is self-reporting its errors to maintainers to help them to fix issues.

BrowserStack full logo

Thanks to the BrowserStack testing solution, we can be sure that our interfaces will run just fine on each device.

MacStadium full logo

Thanks to MacStadium, we have a Mac mini M1 to run tests and CI to build Karaoke Mugen for the M1 architecture!

Thanks to Weblate we can allow people to more easily contribute to translating the app in many languages!!

Credits

"Nanamin", Karaoke Mugen's mascott as well as Karaoke Mugen's logo are designed by Sedeto

License

Karaoke Mugen is licensed under MIT License. Other projects related to Karaoke Mugen may have other license terms. Please check every project for more information.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].