Skip to content

Wilk087/Aurora

Repository files navigation

Aurora Player

Aurora Player is a local music player for Linux and Windows, built with Electron, Vue 3, and Tailwind CSS. It focuses on a feature-rich, clean and modern interface for managing and playing your personal music library.

Note: This project was developed with the assistance of AI tools. All code has been reviewed and tested by the maintainer.

Screenshots

Library Fullscreen
Library grid view Fullscreen mode
Artist page Synced lyrics
Artist page Lyrics sync
Search
Search Page

Features

Library and browsing

  • Scan local folders for audio files (MP3, FLAC, OGG, WAV, M4A, AAC, OPUS, WMA)
  • Browse by songs, albums, artists, years, or folder structure
  • Detailed artist pages with bio, images, similar artists, active years, and country info
  • Tag-based filtering - apply custom tags to tracks and albums, filter views by tag
  • Auto-tagging for soundtracks and singles; separate soundtrack/singles library sections
  • Real-time search across songs and albums with a dedicated search view
  • Sort songs by title, artist, album, year, and duration
  • Sort albums by name, artist, year, and track count
  • Virtual scrolling for large libraries

Playback

  • Queue with play next, play later, shuffle, and repeat modes (off, all, one)
  • Waveform progress bar
  • Crossfade between tracks with adjustable duration
  • Audio output device selection
  • Volume normalization (dynamics compressor)
  • Drag-and-drop queue reordering
  • Sleep timer (after song, after album, 15/30/45/60/90 minutes, or custom)
  • Error auto-skip with notification

Playlists and favorites

  • Create, rename, delete, and reorder playlists
  • Custom cover images for playlists
  • Import playlists from M3U files
  • Smart playlists with rule-based auto-population (genre, year, artist, album, title, BPM, etc.)
  • Mark songs as favorites with inline heart buttons
  • Multi-select with Ctrl+Click, Shift+Click, and Ctrl+A for bulk actions

Now playing and fullscreen

  • Now playing view with synced lyrics, album art, and waveform bar
  • Adaptive accent colors extracted from album art
  • Three fullscreen layouts: Default, Modern, and Artwork
  • Animated fullscreen backgrounds (Lava Lamp, Sonar Ripple, Cinematic Grain)
  • Animated album covers via Apple Music motion artwork
  • Queue panel in fullscreen

Lyrics

  • Automatic loading of local .lrc files alongside audio files
  • Online lyrics fetching via LRCLIB with auto-save
  • Manual lyrics search from within the app
  • Synced lyrics display with manual time offset adjustment
  • Enhanced LRC support (word-level timestamps)
  • Built-in LRC syncer tool for creating lyrics from scratch

Integrations

  • Discord Rich Presence (5 format options, custom client ID support)
  • Last.fm and ListenBrainz scrobbling
  • Navidrome / Subsonic server streaming
  • MPRIS D-Bus integration on Linux (media keys, desktop controls)
  • Automatic Wayland / X11 display server detection on Linux
  • Remote control via LAN (mobile access with PIN-based authentication)
  • File association - open audio files directly with Aurora Player

Theming

  • JSON-based theme system with full colour, glass, scrollbar, slider, and font overrides
  • Light and dark theme support via base colour axis inversion
  • Custom CSS injection on top of any theme
  • Hot-reload - themes are detected automatically when dropped into the themes folder
  • See docs/themes.md for the full format reference

Plugins

  • JavaScript plugin system with lifecycle hooks (track change, play, pause, queue, seek, etc.)
  • Plugin API for controlling playback, library, playlists, favorites, themes, and UI
  • Settings schema - plugins declare typed settings and Aurora auto-renders the UI controls
  • Sidebar items, player bar slots, and fullscreen slots for injecting custom UI
  • Per-plugin persistent key-value storage
  • Optional CSS injection for plugin-specific styles
  • See docs/plugins.md for the full API reference

Other

  • First-time setup wizard
  • Aurora Stats - listening statistics with charts and artist breakdowns
  • Library sync - mirror playlists and favorites across machines via a shared folder, with auto-push/pull
  • Export and import settings, favorites, and playlists as a backup file
  • Context menus for songs, albums, and playlists
  • Cache management (covers, artist images, waveform data, animated covers)
  • Window transparency toggle
  • Toast notifications for user actions
  • Automatic update checker (notifies once per new release)
  • Custom iOS-style slider option
  • Troubleshooting log viewer

Installation

Linux -- AppImage

Download the latest .AppImage from the Releases page. Make it executable and run:

chmod +x Aurora-Player-*.AppImage
./Aurora-Player-*.AppImage

Linux -- Arch (pacman)

Download the .pacman package from Releases and install with:

sudo pacman -U aurora-player-*.pacman

Or use the PKGBUILD included in the repository to build from source:

makepkg -si

Linux -- Nix

A flake.nix is included. To build and run:

nix build
./result/bin/aurora-player

Or run directly:

nix run

Windows

Download the installer (.exe) or portable build from the Releases page.

Development

Requirements

  • Node.js 18 or later
  • npm

Setup

git clone https://github.com/Wilk087/Aurora.git
cd Aurora
npm install

Running in development mode

npm run dev

This starts the Vite dev server with hot reload for the renderer and auto-restarts the Electron main process on changes.

Building

Build the renderer and Electron main process without packaging:

npm run build

Packaging

Build distributable packages:

npm run dist:pacman       # Arch Linux .pacman package
npm run dist:appimage     # Linux AppImage
npm run dist:win          # Windows installer + portable
npm run dist:all          # All platforms at once

Built packages are written to the release/ directory.

Documentation

Project structure

electron/
  main.ts          Main process (IPC handlers, file I/O, protocols, MPRIS)
  preload.ts       Context bridge exposing window.api to the renderer
  mpris.ts         Custom MPRIS2 D-Bus service for Linux
  subsonic.ts      Subsonic/Navidrome REST API client
src/
  components/      Reusable Vue components
  composables/     Vue composables (useSelection, useToast, etc.)
  plugins/         Plugin loader, API factory, and event bus
  router/          Vue Router configuration
  stores/          Pinia stores (library, player, playlist, favorites, theme, plugins)
  types/           TypeScript interfaces (theme, plugin, etc.)
  views/           Page-level view components
  utils/           Utility functions
docs/              Theme and plugin documentation, examples
build/             App icons (PNG, ICO)

Tech stack

  • Electron 33
  • Vue 3.4 (Composition API)
  • Pinia 2.1
  • Vue Router 4
  • Tailwind CSS 3.4
  • TypeScript
  • Vite 5

Versioning

This project uses semantic versioning. The version is defined in package.json and is the single source of truth for the application. PKGBUILD and flake.nix reference it via comments and should be updated manually when bumping versions.

License

This project is licensed under the GNU General Public License v3.0.

About

Aurora is an Electron based local music player in modern design

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors