MyGo 云音乐
用 Go 与 MyGo 写成的第三方网易云音乐桌面客户端。原生界面,没有 WebView;边下边播,无损与 Hi-Res,逐字歌词与「律动」,刘海播放器。
Translation pending
Live syllable counts, rhyme-scheme labels, and sound-based rhymes for songwriters and rappers.
MediaJavaScript · CSSGitHub @tsetoguchiOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Syllable counting, rhyme-scheme detection, and rhyme lookup for songwriters.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A tool for writing song lyrics — syllable counts per line, rhyme-scheme
detection, and a rhyme finder built on the CMU Pronouncing Dictionary's
phoneme data instead of spelling.
This repo is public mainly so I have a record of how the app actually got
built.Read the full README ↗LyricLike is a tool I built for writing song lyrics. It counts the syllables in each line, labels the rhyme scheme, and finds rhymes based on how words sound (phonemes from the CMU Pronouncing Dictionary) rather than how they are spelled.
I made this repo public mainly so I have a record of how the app actually got built.
As you type, it counts the syllables in each line and labels the rhyme scheme (A/B/C, etc). It also marks internal rhymes, which are words inside a line that rhyme with each other.
When you click a word, it finds rhymes by matching sounds, so near-rhymes show up too and not just words with the same ending. Common words come first. Names, rare words and crude words come last.
Accounts are optional. You can sign in with Google, or with an email and password, to save your pages and sync them across devices.
You'll need Node, a Cloudflare account and
Wrangler. I run Wrangler
through npx at the same version the deploys use, since older global installs
have crashed on me:
npx [email protected] d1 migrations apply lyricalmiracle_db --local
npx [email protected] pages dev .
Before that, create a .dev.vars file in the project root:
GOOGLE_CLIENT_ID=your-client-id
GOOGLE_CLIENT_SECRET=your-client-secret
OAUTH_REDIRECT_URL=http://localhost:8788/api/auth/google/callback
You can get these from a Google Cloud OAuth client (type "Web") with that redirect URI added.
Email and password accounts stay off unless you also set these:
PASSWORD_AUTH_ENABLED=true
PASSWORD_PEPPER=32-or-more-random-bytes-base64
APP_BASE_URL=http://localhost:8788
TURNSTILE_SECRET_KEY=your-turnstile-secret
RESEND_API_KEY=your-resend-key
EMAIL_FROM=LyricLike <noreply@your-domain>
PASSWORD_AUTH_ENABLED works as the kill switch. If you leave it unset, only
Google sign-in shows up. Every link that gets emailed is built from
APP_BASE_URL. The public Turnstile site key is in wrangler.toml.
You can also set ALERT_EMAIL to an address that should get a heads up when a
day's signup or account email reaches 70% of its cap in functions/_email.js.
Once a cap is reached, the signup, forgot-password and set-password requests
answer 503 until the next day.
Preview deploys use their own database (lyricalmiracle-db-preview), so a
branch never touches real accounts.
/rhymes/ holds static "words that rhyme with X" pages for search engines.
They are generated from the same rhyme logic as the editor. Since the site has
no build step, the pages are committed. To regenerate them:
node tools/rhymes/collect-popular-words.mjs # rarely: re-rank popular searches
node tools/rhymes/build-pages.mjs # rewrite /rhymes/ and sitemap.xml
The editor and the pages share one copy of the rhyme logic, rhyme-core.js.
The pages leave out names, rare words and crude words, while the editor lists
them last. The pages also leave out the words in
tools/rhymes/page-excluded-words.json, which ad networks treat as sensitive.
Those words don't get a page either, but the editor still lists them.
These are all at the repo root, and all plain JSON arrays:
cmudict.json: pronunciations, from the CMU Pronouncing Dictionaryenglish-words.json: words that rhyme results can list, commonest first (the
order is the frequency ranking)name-words.json: words English only spells with a capital ("wayne"), listed
last. Rebuild with node tools/build-name-words.mjscrude-words.json: swear and sex words, listed last and never on a rhyme pageblocklist.json: slurs. These are never listed, and typing one doesn't look
anything upThe rhyme logic and the API's access checks have tests. They need Node 22 or later, and nothing else installed:
node --test "test/*.test.mjs"
GitHub Actions runs them on every pull request.
MIT, see LICENSE. The bundled CMU Pronouncing Dictionary has its own license, see NOTICE.