The ultimate toolkit for transcribers and contributors on Genius.com. A browser extension that injects a professional-grade floating panel directly into the Genius lyrics editor — smart tags, one-click typographic cleanup, lyric card generation, custom macros, and much more.
| 🚀 Save time | Insert structures and fix typography in a single click. |
| 🧠 Customizable | Create your own buttons, macros, and regex-based tools. |
| ✨ Quality assured | Lyrics automatically respect Genius editorial standards. |
| 🌍 8 languages | FR · EN · PL · ES · DE · IT · PT · RU — with locale-specific typography rules. |
| 🎨 Lyric Cards | Generate shareable lyric images in 1:1, 9:16, and 16:9 formats. |
| 🌙 Dark mode | Beautiful dark interface enabled by default; light mode available. |
| 🔒 Safe editing | Undo/redo history (10 states) + auto-draft backup to local storage. |
- Unified Verse Manager — Dynamic
[Couplet 1],[Couplet 2]button with fast ← → navigation. - Artist Detection — Scans the page for main & featured artists; auto-proposes them for tag credits.
- Quick Tags —
[Refrain],[Intro],[Bridge],[Outro],[Pré-Refrain]… inserted with correct formatting. - Multi-language tags — Adapts to English (
[Verse],[Chorus]), French ([Couplet],[Refrain]), Polish ([Zwrotka],[Refren]), and more.
One prominent Fix All button that cleans everything in one click:
- Curly apostrophes
'→' - Capitalization at the start of lines
- Unnecessary final punctuation removed (preserves
...ellipsis) - French quotes
« »→"(or Polish„"→") - Long dashes
— –→-(or-→—for Polish) - Double spaces removed
- Proper line spacing between sections
- Correction Preview — Interactive diff view showing every change before applying.
- Parenthesis Check — Detects and highlights unclosed
( )or[ ]in red.
- Select text → generate a beautiful shareable image for Instagram / Twitter / TikTok.
- Background options: Album art or Artist photo, fetched automatically.
- Multiple formats: 1:1, 9:16, 16:9.
- Live preview before download.
- Lyric Card Only Mode — Hide transcription tools and keep only the card generator.
- Create your own insertion buttons or complex regex find/replace tools.
- Simple graphical manager — no coding required.
- Import / Export — Share button presets as code snippets with other contributors.
Select a number like 42 and convert it to:
- 🇫🇷 quarante-deux · 🇬🇧 forty-two · 🇵🇱 czterdzieści dwa
- Export as
.txt— Download lyrics as a clean text file directly from the Genius toolbar. - Copy to clipboard — One-click copy alongside file download.
- Smart cleaning — Automatically strips Contributors headers, Genius hyperlink annotations, and HTML tags.
- 4 export formats:
- Standard — Keeps tags and spacing.
- No Tags — Removes
[Verse],[Chorus], etc. - No Spacing — Removes empty lines.
- Raw — Pure text, no tags or spacing.
- Intelligent Scraper — If the editor is closed, GFT scrapes lyrics from the public page.
Control the embedded YouTube player without leaving the editor:
▶️ Play / ⏸️ Pause- ⏪ Rewind 5s / ⏩ Forward 5s
- Compatible with
nocookieprivacy embeds.
- In-editor find & replace with a regex toggle for power users.
- Select text in the editor → a contextual toolbar appears for Bold, Italic, and quick formatting.
- Undo / Redo — Visual 10-state history with
Ctrl+Z/Ctrl+Y. - Auto Draft — Periodic local save with
💾pulse indicator. Crash-proof your work.
- Interactive wizard on first install — choose language, theme, and mode.
- Replay tutorial anytime from the settings menu.
- Quick-access link to external AI transcription tools directly from the panel footer.
| Shortcut | Action |
|---|---|
Ctrl + 1 to 5 |
Insert structure tags (Verse, Chorus…) |
Ctrl + Shift + C |
Fix All (opens correction preview) |
Ctrl + D |
Duplicate current line |
Ctrl + Z |
Undo |
Ctrl + Y |
Redo |
Ctrl + Shift + S |
Show / hide statistics |
Ctrl + Alt + Space |
Play / Pause YouTube |
Ctrl + Alt + ← |
Rewind 5s |
Ctrl + Alt + → |
Forward 5s |
Shortcuts are customizable from the Settings menu inside the panel.
Install from the Chrome Web Store.
Install from Firefox Add-ons (AMO).
- Go to the Releases tab and download the latest zip file (e.g.
genius-fast-transcriber-chrome.ziporgenius-fast-transcriber-firefox.zip). - Extract the downloaded zip file on your computer.
- Chrome — Go to
chrome://extensions, enable Developer mode (top right toggle), click Load unpacked and select the extracted folder. - Firefox — Go to
about:debugging#/runtime/this-firefox, click Load Temporary Add-on and select themanifest.jsonfile inside the extracted folder.
- Clone or download the repository.
- Install dependencies and build:
npm install npm run build # Chrome (Manifest V3) npm run build:firefox # Firefox
- Chrome — Go to
chrome://extensions, enable Developer mode, click Load unpacked and select.output/chrome-mv3. - Firefox — Go to
about:debugging#/runtime/this-firefox, click Load Temporary Add-on and select.output/firefox-mv2/manifest.json.
The project is built with WXT (next-gen browser extension framework), Vue 3 (Composition API), and TypeScript (strict mode). Linting and formatting are handled by Biome.
npm install
npm run dev # Chrome dev server with HMR
npm run dev:firefox # Firefox dev server with HMR
npm run build # Production build (Chrome)
npm run build:firefox # Production build (Firefox)
npm run zip # Package for Chrome Web Store
npm run zip:firefox # Package for Firefox AMO
npm run lint # Lint with Biome
npm run lint:fix # Auto-fix lint errors
npm run format # Format with Biome
npm run typecheck # TypeScript type-checking (wxt prepare + vue-tsc)src/
├── entrypoints/ # WXT entry points
│ ├── content.ts # Content script — injected on *://*.genius.com/*-lyrics
│ ├── background.ts # Service worker
│ └── popup/ # Extension popup (HTML + Vue mount)
├── components/
│ ├── content/ # 18 Vue SFCs injected into the page
│ │ ├── GftPanel.vue # Main floating panel (root component)
│ │ ├── StructureSection # Tag insertion UI
│ │ ├── CleanupSection # Fix All controls
│ │ ├── CorrectionPreview # Diff preview modal
│ │ ├── LyricCardModal # Lyric card generator
│ │ ├── CustomButtonMgr # User-defined buttons
│ │ ├── FloatingToolbar # Contextual formatting bar
│ │ ├── OnboardingWizard # First-run tutorial
│ │ └── ... # + 10 more
│ └── popup/ # 3 popup components (Language, Mode, Theme selectors)
├── composables/ # 11 reactive composables
│ ├── useEditor.ts # Genius contenteditable interaction
│ ├── useCorrections.ts # Typographic cleanup engine
│ ├── useSettings.ts # Persistent user settings
│ ├── useSongData.ts # Page scraping (cover, artists, metadata)
│ ├── useLyricCard.ts # Card generation logic
│ ├── useUndoRedo.ts # 10-state history
│ ├── useDraft.ts # Auto-save drafts
│ ├── useKeyboardShortcuts # Shortcut bindings
│ ├── useYoutubeControls # YouTube iframe API
│ ├── useExport.ts # .txt export
│ └── useGftState.ts # Global panel state
├── utils/ # 9 pure utility modules
│ ├── corrections.ts # Correction rules (locale-aware)
│ ├── numberToWords.ts # Number → text conversion
│ ├── lyricCard.ts # Canvas rendering
│ ├── dom.ts # DOM helpers for Genius page
│ ├── diff.ts # Text diff algorithm
│ └── ...
├── types/ # TypeScript type definitions
└── locales/
├── app/ # Runtime translations (vue-i18n) — 8 locales
│ ├── fr.json
│ ├── en.json
│ ├── pl.json
│ ├── es.json
│ ├── de.json
│ ├── it.json
│ ├── pt.json
│ └── ru.json
├── *.json # Manifest i18n (@wxt-dev/i18n) — 8 locales
└── index.ts # i18n setup & locale registration
See CONTRIBUTING.md for setup instructions, coding standards, and PR workflow.
Additional documentation in the docs/ folder:
| Document | Description |
|---|---|
| ROADMAP.md | Feature ideas and priorities |
| PUBLISHING.md | Chrome Web Store & Firefox AMO publishing guide |
| TESTING.md | Manual testing checklist |
| CHANGELOG.md | Full version history |
| Language | Tags | Fix All | Number → Words | UI |
|---|---|---|---|---|
| 🇫🇷 French | ✅ | ✅ | ✅ | ✅ |
| 🇬🇧 English | ✅ | ✅ | ✅ | ✅ |
| 🇵🇱 Polish | ✅ | ✅ | ✅ | ✅ |
| 🇪🇸 Spanish | ✅ | ✅ | — | ✅ |
| 🇩🇪 German | ✅ | ✅ | — | ✅ |
| 🇮🇹 Italian | ✅ | ✅ | — | ✅ |
| 🇵🇹 Portuguese | ✅ | ✅ | — | ✅ |
| 🇷🇺 Russian | ✅ | ✅ | — | ✅ |