CoOp:Anything
Search any game and see how much of it you can play with friends: every co-op mod, its stage, quality and community rating.
Sing along and fill in the missing words in your favorite songs.
GamesGitHub @amayouriolOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
Lyric Drop: a personal lyrics-training game. Play songs from your own Spotify library and fill in the words as they’re sung, by typing or singing.
Taken from the repository README
Loading the full README.
Read the full README ↗A lyrics-training game. Pick a song from YouTube, listen to it in the browser, and fill in the words that drop out of the lyrics as they're sung.
Lyrics come from LRCLIB, a free lyrics service. Songs without timed lyrics show up in your library but can't be played.
Personal project. The web version is meant for friends, not for the public: the lyrics aren't licensed for public use, and YouTube's free allowance is small. Please keep your copy small too.
The app never downloads audio from YouTube, never hides its player and never blocks its ads: that's against YouTube's terms, and it isn't needed.
git clone https://github.com/amayouriol/lyrics-game.git
This creates a lyrics-game folder, and the app lives in another lyrics-game folder inside it. Every command below runs from there:
cd lyrics-game/lyrics-game
The key is free. Searching uses part of a small daily allowance (about 100 searches a day), and the app remembers every choice, so only new songs use it. Pasting a link or a playlist costs almost nothing.
Skip this if you only want YouTube. If you want your Spotify library too, each person needs their own Spotify keys. They're free.
http://127.0.0.1:3000/api/auth/callback
In the lyrics-game folder, copy .env.local.example to a new file named .env.local, then fill it in:
YOUTUBE_API_KEY=your YouTube key
SESSION_SECRET=a long random text
SPOTIFY_CLIENT_ID=your Client ID
SPOTIFY_CLIENT_SECRET=your Client secret
SPOTIFY_REDIRECT_URI=http://127.0.0.1:3000/api/auth/callback
(Using only YouTube? The three Spotify lines can stay empty.)
For SESSION_SECRET, this command prints a random one you can paste:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
.env.local holds your private keys. Never share it or upload it anywhere (git already ignores it).
npm install
npm run dev
Then open http://127.0.0.1:3000 in your browser. Click Or use the app without Spotify to play YouTube songs only, or Connect with Spotify if you set it up. Use 127.0.0.1, not localhost, or the Spotify login won't come back to the app.
To add songs, open Library. The box at the top is the one place to add: type a song name (and the artist) and pick one of three videos, or paste a YouTube video or a public (or unlisted) playlist link. Below it, Your lists holds what you added, in lists you can create, rename and delete, and Saved holds your Favorites and Play later. With Spotify connected, a From Spotify tab shows your Spotify playlists too.
Leave the terminal open while you play. To stop, press Ctrl + C in it. Next time, just run npm run dev again.
lyrics-game/.data/, which is created on first use and never uploaded. Delete it to start fresh.127.0.0.1). Anyone else on your network can't use it that way. For friends, use the web version.You can put a copy online that your friends open from a link. It is YouTube only, it asks for a shared word you give your friends, and each friend's games and songs are kept apart under a random id in their browser. Your own copy on your computer stays as it is.
It runs free on two services. You create the accounts yourself; nothing is paid.
UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN (the normal read-and-write token).lyrics-game.| Name | Value |
|---|---|
APP_MODE | web |
WEB_GATE_WORD | the shared word you choose (case doesn't matter) |
YOUTUBE_API_KEY | your YouTube key (step 2 of the setup above) |
UPSTASH_REDIS_REST_URL | from Upstash |
UPSTASH_REDIS_REST_TOKEN | from Upstash |
your-project.vercel.app. Open it: you should see Enter the word. Send friends the link and the word, separately.WEB_GATE_WORD is missing, the site stays locked. To lock everyone out and ask for a new word, change it in Vercel (Settings → Environment Variables) and redeploy. Changes to a variable only apply to the next deploy.lyrics-game/src/lib/limits.ts.main branch on its own address that only you can open while logged in to Vercel. Friends use the main address.Built with Next.js 16, React and TypeScript. On your computer, everything is stored as files in .data/. The web version (APP_MODE=web) keeps the same data in a free Upstash Redis database instead, through the same code (src/lib/storage.ts).
| Command | What it does |
|---|---|
npm run dev | Runs the app on port 3000 |
npm test | Checks the game rules, the storage and the limits (lyrics-game/src/lib/*.test.ts) |
npm run lint | Checks the code style |
npm run build | Builds the app the way it would run for real |
lyrics-game/src/lib/: the logic (YouTube, lyrics, game rules, saved data and lists, storage, limits; Spotify too, in your own copy).lyrics-game/src/app/: the pages and the api/ routes.spec.md, plan.md and Output/: how the project was planned and built, phase by phase.docs/images/ and refer to them with .