{"id":15069830,"url":"https://github.com/bhj/karaokeeternal","last_synced_at":"2025-10-07T06:57:13.985Z","repository":{"id":39897774,"uuid":"58885535","full_name":"bhj/KaraokeEternal","owner":"bhj","description":"Open karaoke party system","archived":false,"fork":false,"pushed_at":"2025-09-12T01:56:50.000Z","size":9736,"stargazers_count":569,"open_issues_count":7,"forks_count":84,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-09-12T04:01:21.365Z","etag":null,"topics":["cdgraphics","karaoke","karaoke-application","karaoke-event","karaoke-parties","karaoke-player","mp3","mp4","node","node-js","party","react","reactjs","self-hosted","sqlite"],"latest_commit_sha":null,"homepage":"https://www.karaoke-eternal.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bhj.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"bhj"}},"created_at":"2016-05-15T21:33:14.000Z","updated_at":"2025-09-12T01:41:06.000Z","dependencies_parsed_at":"2023-11-27T02:50:48.094Z","dependency_job_id":"5f187458-6dff-4bf6-a325-f2fcdbc5e67a","html_url":"https://github.com/bhj/KaraokeEternal","commit_stats":{"total_commits":3140,"total_committers":117,"mean_commits":"26.837606837606838","dds":0.2843949044585987,"last_synced_commit":"e0b65fa30893aa3e56b61ee98c8fd3eeab2db162"},"previous_names":["bhj/karaoke-forever"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/bhj/KaraokeEternal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhj%2FKaraokeEternal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhj%2FKaraokeEternal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhj%2FKaraokeEternal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhj%2FKaraokeEternal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bhj","download_url":"https://codeload.github.com/bhj/KaraokeEternal/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhj%2FKaraokeEternal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278734412,"owners_count":26036404,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cdgraphics","karaoke","karaoke-application","karaoke-event","karaoke-parties","karaoke-player","mp3","mp4","node","node-js","party","react","reactjs","self-hosted","sqlite"],"created_at":"2024-09-25T01:45:00.184Z","updated_at":"2025-10-07T06:57:13.949Z","avatar_url":"https://github.com/bhj.png","language":"TypeScript","funding_links":["https://github.com/sponsors/bhj"],"categories":[],"sub_categories":[],"readme":"# Karaoke Eternal\n\nHost awesome karaoke parties where everyone can easily find and queue songs from their phone's browser. The player is also fully browser-based with support for MP3+G, MP4 videos and WebGL visualizations. The server is self-hosted and runs on nearly everything.\n\n[![Karaoke Eternal](/docs/assets/images/README.jpg?raw=true)](/docs/assets/images/README.jpg?raw=true)\n\n\u003cp align=\"center\"\u003e\n  \u003ci\u003eApp in mobile browser (top) controlling player in Firefox/Chrome (bottom)\u003c/i\u003e\n\u003c/p\u003e\n\n## Features\n\n- Supports:\n  - MP3+G with Winamp/MilkDrop visualizations (WebGL 2)\n  - MP4 videos\n  - ReplayGain tags for volume normalization\n- Fast, modern mobile browser app designed for \"karaoke conditions\"\n- Multiple simultaneous rooms/queues (optionally password-protected)\n- Dynamic queues keep parties fair, fun and no-fuss\n- Fully self-hosted\n- No ads or telemetry\n\nMicrophones are *not* required since the player itself only outputs music - this allows your audio setup to be as simple or complex as you like. See the [F.A.Q.](https://www.karaoke-eternal.com/faq/#whats-the-recommended-audiomicrophone-setup) for more information.\n\n## Getting Started\n\n Karaoke Eternal basically has 3 parts. See [Getting Started](https://www.karaoke-eternal.com/docs/getting-started/) to get up and running step-by-step, or jump to the documentation for each part below:\n \n- **[Server:](https://www.karaoke-eternal.com/docs/karaoke-eternal-server/)** Runs on pretty much anything to serve the web app and your media files, including a Windows PC, Mac, or a dedicated server like a Raspberry Pi or Synology NAS.\n- **[App:](https://www.karaoke-eternal.com/docs/karaoke-eternal-app/)** Fast, modern mobile web app designed for \"karaoke conditions\".\n- **[Player:](https://www.karaoke-eternal.com/docs/karaoke-eternal-app/#player)** Just another part of the app, but meant to run fullscreen on the system handling audio/video for a [room](https://www.karaoke-eternal.com/docs/karaoke-eternal-app/#rooms-admin-only)\n\n## Installation\n\nThere are several [installation methods](https://www.karaoke-eternal.com/docs/karaoke-eternal-server/#installation) available for Karaoke Eternal Server.\n\n## Discord \u0026 Support\n\nJoin the [Karaoke Eternal Discord Server](https://discord.gg/PgqVtFq) for general support and development chat, or just to say hi!\n\n## Contributing \u0026 Development\n\nContributions are welcome! Please join the `#dev` channel of the [Discord Server](https://discord.gg/PgqVtFq) before embarking on major features; the project's scope is limited to ensure success.\n\nMake sure you have [Node.js](https://nodejs.org/en/) 16 or later, then:\n\n1. Fork and clone the repo\n2. `npm i`\n3. `npm run dev` and look for \"Web server running at\" for the **server URL**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbhj%2Fkaraokeeternal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbhj%2Fkaraokeeternal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbhj%2Fkaraokeeternal/lists"}