openjutsu
영상에서 원클릭으로 인물 교체, ComfyUI·MiniMax H3 기반 오픈소스 로컬 힉스필드 겐주츠 대안, FLUX.3 Klein 재조명 지원
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
A minimalist music and synchronized lyrics web app built with Next.js.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Music and lyrics for your desktop, while you do your work.
Get started · How it works · Liner notes
Pick a song and read along. Versify plays the lyrics in time with the music, right over the album art. There’s no feed and nothing pulling you elsewhere, just one song and its words.
[!NOTE] There are no accounts. Favorites, playlists, and settings stay in the browser you use, and do not sync between devices.
| Feature | What it does |
|---|---|
| Find a song | Search by song or artist and choose a recording. |
| Follow the lyrics | Lyrics scroll with the music. Click a line to jump to it, or scroll through them yourself. |
| Change the audio | Wrong version? Add a YouTube link and adjust the lyric timing. |
| Translate the lyrics | Show translations under each line in Korean, Japanese, Chinese, French, Spanish, or Portuguese. |
| Save your favorites | Make playlists, shuffle, and repeat. Everything is saved in your browser—no account needed. |
| Make it yours | Colors match the album art, by day or by night. Adjust the lyric size, change the clock format, or go fullscreen. |
| Keep listening | When a song ends, Versify finds another one to play. |
Synchronized lyrics only work when the words and the audio describe the same recording. Versify holds every step to that:
[!TIP] If a song still drifts, choose Change source, paste another YouTube recording, and set Lyric timing in half-second steps until the words land.
I made Versify to keep on my desktop while I study or do other things. Just music, album art, and lyrics I can glance at whenever I want.
Requires Node.js 22.18 or newer and an internet connection.
npm install
npm run dev
Open localhost:3000. Search, lyrics, and audio matching work without any keys. Two optional services can be added in .env.local (the names are listed in .env.example):
| Variable | Adds |
|---|---|
GOOGLE_TRANSLATE_API_KEY | On-demand lyric translation, using a server-side key with Cloud Translation enabled. |
YOUTUBE_API_KEY | An extra fallback for audio matching, using a server-side key with YouTube Data API v3 enabled. |
Restart the dev server after changing these, and set production values in your hosting provider.
[!CAUTION] Both keys are server-side secrets tied to your Google Cloud project, where misuse can exhaust quota or run up charges. Never commit
.env.localor paste real keys into client code.
Versify brings together independent services; it does not host or distribute music.
[!IMPORTANT] Versify is not a licensed streaming service. These services and their content can change, so check each provider's terms, and the rights involved, before any public or commercial deployment.
npm test # unit tests
npm run typecheck # TypeScript
npm run build # production build
Built with Next.js, React, and TypeScript. The README artwork in docs/readme/ is plain animated SVG, generated by node docs/readme/generate.mjs.
[!WARNING] Audio matching first queries YouTube Music's public web search, which is not an official API and can change without notice. If it stops responding, Versify falls back to YouTube search, so keep that path working when you change
lib/video-match.ts.