{"id":51383709,"url":"https://github.com/koniz-dev/vinyl-music-player","last_synced_at":"2026-07-03T18:11:19.939Z","repository":{"id":313731340,"uuid":"1052431247","full_name":"koniz-dev/vinyl-music-player","owner":"koniz-dev","description":"A product from the Musical Universe","archived":false,"fork":false,"pushed_at":"2026-06-02T09:14:36.000Z","size":217,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-02T09:18:51.555Z","etag":null,"topics":["canvas-api","color-customization","content-creation","creative-tools","drag-and-drop","event-driven","javascript","lyrics-sync","modular-architecture","music-player","music-visualization","progressive-web-app","state-management","video-export","video-generation","vinyl-players","web-audio-api"],"latest_commit_sha":null,"homepage":"https://koniz-dev.github.io/vinyl-music-player/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/koniz-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-08T03:36:55.000Z","updated_at":"2026-06-02T09:14:40.000Z","dependencies_parsed_at":"2025-09-08T06:14:25.386Z","dependency_job_id":null,"html_url":"https://github.com/koniz-dev/vinyl-music-player","commit_stats":null,"previous_names":["koniz-dev/vinyl-music-player"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/koniz-dev/vinyl-music-player","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koniz-dev%2Fvinyl-music-player","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koniz-dev%2Fvinyl-music-player/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koniz-dev%2Fvinyl-music-player/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koniz-dev%2Fvinyl-music-player/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/koniz-dev","download_url":"https://codeload.github.com/koniz-dev/vinyl-music-player/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koniz-dev%2Fvinyl-music-player/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35096187,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-03T02:00:05.635Z","response_time":110,"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":["canvas-api","color-customization","content-creation","creative-tools","drag-and-drop","event-driven","javascript","lyrics-sync","modular-architecture","music-player","music-visualization","progressive-web-app","state-management","video-export","video-generation","vinyl-players","web-audio-api"],"created_at":"2026-07-03T18:11:19.064Z","updated_at":"2026-07-03T18:11:19.934Z","avatar_url":"https://github.com/koniz-dev.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎵 Vinyl Music Player\n\n\u003e Turn any audio file into a vinyl-spin music video with synced lyrics — **right in your browser**, no upload, no install.\n\n[![Live Demo](https://img.shields.io/badge/demo-live-success?style=for-the-badge)](https://koniz-dev.github.io/vinyl-music-player/)\n[![License: MIT](https://img.shields.io/badge/license-MIT-green?style=for-the-badge)](LICENSE)\n[![PWA](https://img.shields.io/badge/PWA-offline_ready-5A0FC8?style=for-the-badge)](docs/architecture.md#pwa--offline)\n[![No build](https://img.shields.io/badge/build-not_required-blue?style=for-the-badge)](docs/architecture.md#why-no-build-step)\n\n**[Live Demo](https://koniz-dev.github.io/vinyl-music-player/)** · **[Docs](docs/)** · **[Report a Bug](https://github.com/koniz-dev/vinyl-music-player/issues)**\n\n---\n\nDrop in an MP3, type the song title, add timed lyrics, click export. You get a **1080×1920 vertical MP4 (or WebM)** ready for TikTok, Reels, or YouTube Shorts — other aspect ratios available too. Audio never leaves your device — the whole pipeline (decode, render, encode) runs in the browser.\n\n## Why use this\n\n- 🎬 **Real video export** — Canvas + `MediaRecorder` to MP4 or WebM, not a screen recording\n- 📝 **Synced lyrics** — type per-line or bulk-paste JSON; live preview as audio plays\n- ✨ **AI auto-sync** — Whisper runs *in your browser* to time your lyrics (or transcribe from scratch); nothing is uploaded\n- 🎨 **Live vinyl preview** — record spins, tonearm tracks, lyrics fade in/out\n- 🔒 **100% local** — no servers, no uploads, no account\n- 📦 **Offline-ready PWA** — works on the train after the first load\n- ⚡ **Zero install** — open the [demo](https://koniz-dev.github.io/vinyl-music-player/) and go\n\n## Quickstart\n\n```bash\ngit clone https://github.com/koniz-dev/vinyl-music-player.git\ncd vinyl-music-player\nnpm install\nnpm run dev\n```\n\nOpen \u003chttp://localhost:3000\u003e. Need more detail? See [Getting Started](docs/getting-started.md).\n\n\u003e ES modules require an HTTP origin — don't open `index.html` via `file://`.\n\n## Documentation\n\n| | |\n|---|---|\n| [Getting Started](docs/getting-started.md) | Install, run, first export in 60 s |\n| [Usage Guide](docs/usage.md) | UI walkthrough — upload, lyrics, color, export |\n| [JSON Lyrics Format](docs/json-lyrics-format.md) | Bulk-import spec, LRC conversion |\n| [Architecture](docs/architecture.md) | Modules, event bus, render pipeline |\n| [Troubleshooting](docs/troubleshooting.md) | Browser matrix + fixes |\n| [Contributing](docs/contributing.md) | Dev workflow + code style |\n\n## Tech\n\nVanilla HTML / CSS / JavaScript. ES modules, no build step, no backend. Uses `MediaRecorder`, Web Audio, Canvas, a service worker for offline support, and on-device Whisper (transformers.js + ONNX Runtime, WebGPU/WASM) for lyric auto-sync. Full breakdown in [docs/architecture.md](docs/architecture.md).\n\n## License\n\n[MIT](LICENSE) © [koniz-dev](https://github.com/koniz-dev)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoniz-dev%2Fvinyl-music-player","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkoniz-dev%2Fvinyl-music-player","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoniz-dev%2Fvinyl-music-player/lists"}