A browser extension that adds beautiful animated backgrounds to YouTube Music using Kawarp - creating fluid, warped visuals from album artwork. Built with Plasmo, React, and TypeScript.
Warning
Although optional, it is highly recommended to use this extension alongside Better Lyrics.
- Fluid Animated Backgrounds: Album artwork transforms into smooth, warped visuals using Kawarp
- Animated Album Art: Displays animated album artwork (video loops) when available
- Audio Reactive: Beat detection syncs effects with music for a pulsing, dynamic experience
- Real-time Configuration: Adjust settings and see changes instantly via the popup
- Persistent Settings: Configuration saved automatically across sessions
- Multi-page Support: Works on player pages, homepage, and search results
- Cross-browser: Supports Chrome, Firefox, Edge, Brave, Arc, and other Chromium browsers
Use the download links above to install from Chrome Web Store or Firefox Add-ons.
-
Clone the repository
git clone https://github.com/better-lyrics/shaders cd shaders -
Install dependencies
bun install
-
Build the extension
bun run build
-
Load in your browser
- Chrome/Edge/Brave/Arc: Open
chrome://extensions/, enable "Developer mode", click "Load unpacked", selectbuild/chrome-mv3-prod - Firefox: Open
about:debugging#/runtime/this-firefox, click "Load Temporary Add-on", select any file inbuild/firefox-mv2-prod
- Chrome/Edge/Brave/Arc: Open
For development with hot reload:
bun run dev # Chrome
bun run dev:firefox # Firefox
bun run dev:edge # Edge- Go to YouTube Music
- Play any song
- Click the extension icon in your browser toolbar to open settings
All settings are accessible from the extension popup with real-time preview.
| Option | Default | Description |
|---|---|---|
| Enable Effects | On | Master toggle for the gradient effect |
| Audio Responsive | On | Beat detection syncs effects with music |
| Show on Browse Pages | Off | Display effects on homepage/search (may impact performance) |
| Animated Album Art | On | Show animated album artwork when available |
| Show Logs | Off | Debug information in browser console |
| Option | Default | Range | Description |
|---|---|---|---|
| Opacity | 0.75 | 0-1 | Visibility of the effect layer |
| Warp Intensity | 1.0 | 0-3 | How much the album art gets distorted |
| Blur Passes | 8 | 1-16 | Softness of the background (more = dreamier) |
| Animation Speed | 1.0 | 0-3 | Speed of the fluid effect |
| Transition Duration | 1000ms | 0-3000 | Crossfade time when switching songs |
| Saturation | 1.5 | 0-3 | Color intensity boost |
| Dithering | 0.008 | 0-0.05 | Subtle noise to prevent color banding |
These settings appear when Audio Responsive is enabled:
| Option | Default | Range | Description |
|---|---|---|---|
| Speed Multiplier | 4x | 1-10 | Animation speed boost on beat |
| Scale Boost | 2% | 0-10 | Pulsing zoom effect on beats |
| Beat Threshold | 0.75 | 0-1 | Beat detection sensitivity (lower = more sensitive) |
Settings can be exported to JSON and imported on other devices or browsers.
bun run build # Build for all browsers (Chrome, Firefox, Edge)
bun run package # Package for distributionBuild outputs:
- Chrome:
build/chrome-mv3-prod - Firefox:
build/firefox-mv2-prod - Edge:
build/edge-mv3-prod
- Ensure you're on music.youtube.com (not youtube.com)
- Check that the extension is enabled in settings
- Try refreshing the page
- Navigate to a player page (start playing a song)
- Check that "Audio Responsive" is enabled in settings
- Adjust "Beat Threshold" if detection is too sensitive or not sensitive enough
- Disable "Show on Browse Pages" to limit effects to player page only
- The effect automatically pauses when the tab is not visible
- Not all songs have animated artwork available
- Ensure "Animated Album Art" is enabled in settings
- The feature queries artwork.boidu.dev for availability
- Plasmo - Browser extension framework
- Kawarp - Fluid warped background effect
- React 18 + TypeScript
- Web Audio API for beat detection
GPL-3.0 License. See LICENSE for details.
Built with Kawarp, Plasmo, and artwork.boidu.dev.
