Skip to content

LyricGlow for macOS, an always-on-top Electron widget showing real-time, word-by-word synced lyrics with glow effects, plus artist metadata and album art. Works with Spotify, Apple Music, and YouTube Music. LRC support, offline cache, and menu bar controls.

License

Notifications You must be signed in to change notification settings

ateymoori/lyricglow

Repository files navigation

LyricGlow - Real-Time Synchronized Lyrics for macOS

LyricGlow

Real-Time Synchronized Lyrics & Music Metadata for macOS

Experience your music like never before with word-by-word synchronized lyrics, rich artist metadata, and beautiful album artwork. A floating, always-on-top companion for Spotify, Apple Music, and YouTube Music.

License: MIT Version Downloads macOS Electron

πŸ†“ Free & Open Source β€’ 🍎 Apple Silicon & Intel β€’ ⚑ Fast & Lightweight β€’ πŸ”’ Privacy-First

Features β€’ Screenshots β€’ Installation β€’ Usage β€’ Development


LyricGlow Demo - Real-time synchronized lyrics with word-by-word highlighting for Spotify, Apple Music, and YouTube Music on macOS

Real-time synchronized lyrics with smooth word-by-word highlighting and rich metadata


✨ Features

🎀 Synchronized Lyrics

  • Word-by-word highlighting with smooth animations
  • 3-line display (previous, current, next)
  • Full lyrics modal for complete song view
  • Auto-scroll synchronized with playback
  • Instant lyrics fetching from LRCLIB database

🌍 RTL Language Support

  • Perfect RTL rendering for Arabic, Persian, Hebrew
  • Bidirectional text handling
  • Font optimization for multilingual lyrics
  • Automatic language detection

🎡 Universal Music Player Support

  • Spotify - Full integration with OAuth
  • Apple Music - Native macOS integration
  • YouTube Music - Browser-based detection
  • Works with any macOS media player using Now Playing API

πŸ–ΌοΈ Rich Artist Metadata

  • Artist biography with expand/collapse
  • Image carousel with multiple photos
  • Similar artists discovery
  • Social media links (Website, Facebook, Twitter)
  • Artist statistics (listeners, play counts)

🎨 Beautiful Design

  • Glass morphism UI with backdrop blur
  • Dark theme optimized for readability
  • Always-on-top floating window
  • Frameless design with drag support
  • Smooth animations and transitions

βš™οΈ Fully Customizable

  • Toggle any section (player, lyrics, metadata)
  • Compact mode for minimal UI
  • Lyrics-only mode for focused reading
  • Adjustable window position
  • Launch at login option

πŸ” Spotify Integration

  • OAuth 2.0 authentication (secure)
  • Top tracks from artist's catalog
  • Top albums with artwork
  • User profile display
  • Enhanced metadata from Spotify API

πŸ’Ύ Smart Performance

  • 7-day intelligent caching for lyrics & metadata
  • Offline playback support
  • Image optimization with local cache
  • Low memory footprint (~80-150MB RAM)
  • Efficient polling (500ms-1s intervals)
  • Battery-friendly background processing

πŸ“Έ Screenshots

Display Modes

LyricGlow Full Mode - Complete music experience with synchronized lyrics, artist biography, album artwork, and metadata on macOS

Full Mode
Complete experience with all features enabled
LyricGlow Compact Mode - Minimal floating lyrics widget with essential controls for macOS desktop

Compact Mode
Essential player controls and lyrics

Lyrics Display Options

LyricGlow Lyrics Only Mode - Clean synchronized lyrics display with real-time word-by-word highlighting

Lyrics-Only Mode
Distraction-free focused reading
LyricGlow RTL Support - Right-to-left lyrics display for Persian, Arabic, and Hebrew music on macOS

RTL Language Support
Perfect rendering for Arabic, Persian, Hebrew

Menu Bar Integration

LyricGlow Menu Bar Animation - Live synchronized lyrics updating in real-time in macOS system tray

Live Lyrics in Menu Bar
Real-time animated updates
LyricGlow Menu Bar Tray Icon - System tray integration showing current lyric line next to app icon in macOS

Menu Bar Static View
Current lyric line display

See It In Action

LyricGlow Animation Demo - Word-by-word synchronized lyrics highlighting in action with smooth transitions

Smooth synchronized lyrics animation with word-by-word highlighting


πŸ“¦ Installation

Quick Install (Recommended)

For Apple Silicon Macs (M1, M2, M3, M4)

  1. Download LyricGlow-arm64.dmg from the latest release
  2. Open the DMG file
  3. Drag LyricGlow.app to /Applications folder
  4. Right-click LyricGlow β†’ Select "Open"
  5. Click "Open" in the security dialog

For Intel Macs

  1. Download LyricGlow-x64.dmg from the latest release
  2. Follow steps 2-5 above

⚠️ First Launch Security Note: macOS Gatekeeper will show a warning because LyricGlow uses ad-hoc signing (not notarized). Right-clicking and selecting "Open" bypasses this check. This is required only on first launch.

System Requirements:

  • macOS 11.0 (Big Sur) or later
  • 100 MB free disk space
  • Internet connection for lyrics fetching
  • Spotify, Apple Music, or any music player using macOS Now Playing API

Build from Source

# Clone repository
git clone https://github.com/ateymoori/lyricglow.git
cd lyricglow

# Install dependencies
npm install

# Run in development mode
npm start

# Build DMG for distribution
npm run dist:mac

Developer Requirements:

  • Node.js 22.x or later
  • npm or yarn
  • Xcode Command Line Tools

πŸš€ Usage

Getting Started

  1. Launch LyricGlow - The app will appear as a floating window
  2. Play music in Spotify, Apple Music, or YouTube Music
  3. Watch lyrics sync automatically with word-by-word highlighting
  4. Customize your experience - Click βš™οΈ to open settings

Features Guide

Media Controls

  • Play/Pause - Click the center button or spacebar
  • Skip tracks - Use previous/next buttons
  • Seek - Click or drag the progress bar to jump to any timestamp
  • Full lyrics - Click πŸ“„ button to view complete lyrics

Settings & Customization

πŸŽ›οΈ General Settings
  • Launch at Login - Auto-start LyricGlow when you log in
  • Menu Bar Lyrics - Display current lyric line in system tray
  • Spotify Integration - Connect your account for enhanced features
🎨 Display Settings

Toggle visibility for each section:

  • βœ… Music Player (album art, controls, progress bar)
  • βœ… Synchronized Lyrics
  • βœ… Artist Images Carousel
  • βœ… Artist Biography
  • βœ… Artist Metadata (country, genre, social links)
  • βœ… Top Tracks (Spotify login required)
  • βœ… Top Albums (Spotify login required)
  • βœ… Similar Artists
πŸ’Ύ Cache Management
  • View cached items - See all stored lyrics, metadata, and images
  • Clear individual items - Remove specific cached songs
  • Clear all cache - Fresh start (7-day auto-cleanup by default)
πŸ“Š Logs & Troubleshooting
  • View log statistics - Monitor app performance
  • Open logs folder - Access detailed logs at ~/Library/Logs/LyricGlow/
  • Clear logs - Remove old log files

Pro Tips

πŸ’‘ Drag to reposition - Click and drag anywhere on the window πŸ’‘ Click album art - Opens track in Spotify (if installed) πŸ’‘ Menu bar control - Right-click tray icon for quick actions πŸ’‘ Keyboard shortcuts - Spacebar for play/pause (when focused) πŸ’‘ RTL support - Automatically detected for Arabic, Persian, Hebrew


πŸ› οΈ Development

Project Structure

lyricglow/
β”œβ”€β”€ app/                        # Main application code
β”‚   β”œβ”€β”€ main.js                # Electron main process
β”‚   β”œβ”€β”€ renderer.js            # UI logic & event handling
β”‚   β”œβ”€β”€ preload.js             # Secure IPC bridge
β”‚   β”œβ”€β”€ index.html             # Main window markup
β”‚   β”œβ”€β”€ styles.css             # Complete styling
β”‚   β”œβ”€β”€ auth/                  # Spotify OAuth
β”‚   β”œβ”€β”€ cache/                 # Caching system
β”‚   β”œβ”€β”€ lyrics/                # Lyrics fetching (LRCLIB)
β”‚   β”œβ”€β”€ metadata/              # Artist metadata (TheAudioDB, Spotify)
β”‚   └── utils/                 # Logger, SecureFetch
β”œβ”€β”€ build/                     # Build assets (icons, entitlements)
β”œβ”€β”€ assets/fonts/              # Embedded fonts (Inter, Vazirmatn)
└── electron-builder.yml       # Packaging configuration

NPM Scripts

npm start              # Launch app (production mode)
npm run dev            # Launch with verbose logging
npm run pack           # Build unpacked app for testing
npm run dist:mac       # Build DMG for macOS (both architectures)
npm run release        # Auto version bump + build

Tech Stack

Category Technology
Framework Electron 33.4.11
Language TypeScript 5.9.3 (Strict Mode)
Build System electron-vite + Vite 5.4.21
Lyrics API LRCLIB - Synchronized lyrics database
Metadata API TheAudioDB - Artist information
Music Integration Spotify Web API - OAuth & enhanced features
System Integration macOS AppleScript, Now Playing API
Storage electron-store
Logging electron-log
Packaging electron-builder

Architecture Highlights

  • Security-First: Context isolation, no Node.js integration in renderer, CSP headers
  • Event-Driven: IPC communication between main and renderer processes
  • Efficient Polling: Smart interval adjustments (500ms-1s) based on playback state
  • Multi-Source: Lyrics from LRCLIB, metadata from TheAudioDB and Spotify
  • Offline Support: 7-day intelligent caching with automatic cleanup

πŸ—ΊοΈ Roadmap

v0.4 - Enhanced Experience (Q1 2025)

  • Multilingual UI (Spanish, French, German, Persian, Arabic, Chinese)
  • Additional lyrics sources (Genius, Musixmatch fallback)
  • Romanization for non-Latin scripts
  • Customizable themes and colors
  • Keyboard shortcuts configuration

v0.5 - Cross-Platform (Q2 2025)

  • Windows 10/11 support
  • Linux (Ubuntu, Fedora) support
  • Chrome/Firefox browser extension
  • iOS companion app (view lyrics on mobile)

v1.0 - AI & Advanced Features (Q3 2025)

  • AI-powered lyrics generation for missing songs
  • Karaoke mode with vocal removal
  • Lyrics translation (50+ languages)
  • Music recommendations based on lyrics mood
  • Export lyrics with timestamps
  • Animated backgrounds sync to music

🀝 Contributing

We welcome contributions! Here's how you can help:

High Priority

  • πŸͺŸ Windows Support - Port to Windows 10/11 with native APIs
  • 🐧 Linux Support - MPRIS integration for Ubuntu/Fedora
  • 🌍 UI Translations - Localize interface to your language
  • 🎀 Lyrics Sources - Integrate additional APIs (Genius, Musixmatch)

Also Needed

  • 🎨 UI/UX improvements
  • πŸ“– Documentation & tutorials
  • πŸ› Bug reports & testing
  • πŸ’‘ Feature suggestions

How to Contribute

  1. Fork this repository
  2. Clone your fork: git clone https://github.com/YOUR_USERNAME/lyricglow.git
  3. Create branch: git checkout -b feature/your-feature-name
  4. Make changes and commit: git commit -m "Add: your feature description"
  5. Push to your fork: git push origin feature/your-feature-name
  6. Open Pull Request with detailed description

Development Guidelines:

  • Follow existing code style (ES2022, async/await)
  • Test on both Apple Silicon and Intel Macs
  • Update README for new features
  • Add error handling and logging

πŸ“„ License

MIT License - Copyright (c) 2025 AmirHossein Teymoori

Permission is hereby granted, free of charge, to use, modify, and distribute this software.

See LICENSE file for full details.


πŸ™ Credits & Acknowledgments

APIs & Services

Technologies

Fonts


πŸ‘¨β€πŸ’» Developer

AmirHossein Teymoori

Senior Full-Stack Developer & Open Source Enthusiast

GitHub Email


⭐ Support This Project

If LyricGlow enhances your music experience, please consider:

Star LyricGlow on GitHub

Star this repository β€’ Share with friends β€’ Report bugs β€’ Contribute code

Every star helps more people discover LyricGlow! 🌟


πŸ”— Links

🏠 GitHub Repository β€’ πŸ“¦ Build from Source β€’ πŸ› Report Issues


🏷️ Keywords & Topics

synchronized-lyrics real-time-lyrics spotify-lyrics apple-music-lyrics youtube-music-lyrics macos-app electron-app music-player lyrics-display now-playing desktop-lyrics floating-widget lyrics-widget music-companion karaoke rtl-support arabic-lyrics persian-lyrics hebrew-lyrics multilingual music-metadata artist-biography album-artwork spotify-integration free-app open-source mit-license electron typescript macos-big-sur apple-silicon m1-m2-m3 lyrics-automation lyrics-synchronization lrc-format music-visualization transparent-overlay always-on-top music-widget desktop-widget lyrics-api


Made with ❀️ for music lovers | Last updated: October 2025 | Version 0.4.0

About

LyricGlow for macOS, an always-on-top Electron widget showing real-time, word-by-word synced lyrics with glow effects, plus artist metadata and album art. Works with Spotify, Apple Music, and YouTube Music. LRC support, offline cache, and menu bar controls.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published