Your music. Your server. No compromises.
Native Android music player for Jellyfin, Navidrome, and local files.
Streams your library. Decodes on-device with libmpv. Stays out of your way.
No cloud. No telemetry. No transcoding. Just playback.
▶ Watch demo video
| Direct stream | Raw bytes from your server. No HLS, no transcoding, no quality loss. |
| Lossless | FLAC, ALAC, OPUS, WAV — whatever your library has. |
| Full DSP | 86-effect rack: 18-band EQ, compressor, pitch shift, and more. |
| Offline-ready | No "Aetherfin cloud." Your server, your phone, done. |
| Visualizer | 64-band FFT driven by actual audio output. No mic permission. |
Gapless transitions · Shuffle / loop / forNtimes repeat · Lock-screen & notification controls · Sleep timer · A-B loop · Smart Queue Autoplay (local similarity engine + server mixes) · Instant playback on large queues · Shuffle next · Queue history · M3U export/import · Android home screen widget · Synced lyrics (LRC) · Auto-pause on headphone/Bluetooth disconnect with 5-min auto-resume
86-effect DSP via mpv's ffmpeg pipeline — 18-band graphic EQ with presets · Echo/delay · Phaser · Flanger · Chorus · Tremolo · Vibrato · Bit-crusher · Dynamic compressor · Noise gate · De-esser · EBU R128 loudness normalization · ReplayGain · Pitch & tempo shifting (rubberband) · Crossfeed · Stereo widening · Virtual bass · Harmonic exciter · Master bypass
Albums, Artists, Songs, Playlists, Genres, Liked songs · Smart playlists (rule-based, server + local) · Search · Context menus · Drag-to-reorder queue · Swipe-to-remove · Playlist undo (8s grace) · Navidrome queue sync (JWT) · Hero album carousel · Recently played sections
FFT visualizer (64 bars, 60 fps) · Gradient background from artwork palette · Artwork pulse on kick drums · Synced lyrics · Favorite toggle · Quality chip · Translucent frosted-glass queue · Interactive drag-down sheet
Two-way favorite sync · Listening stats dashboard (top songs/artists/albums) · Artist & track similar radio · Wikipedia-style bios · Browser-based OAuth connection
Lucide icons throughout · Skeleton shimmer loading · Filter pills for songs · Dialog-based context menus
Grab the latest APK from Releases.
Requirements: Android 7.0+ · A Jellyfin 10.8+ or Navidrome 0.49+ server (or local audio files)
First run:
- Choose Server or Local mode
- Enter your server URL + sign in, or pick a music folder
- Play something
First build downloads ~20MB libmpv
.sofiles per ABI from GitHub Releases.
flutter pub get
flutter run --debug # Debug
flutter build apk --release # ReleaseBefore pushing:
flutter analyze && flutter test┌─────────────────────────────┐ ┌────────────────────────────┐
│ Aetherfin (your phone) │ │ Your server │
│ │ │ (Jellyfin or Navidrome) │
│ libmpv decoding │◄─raw──┤ Audio files │
│ Queue, shuffle, gapless │ │ Metadata, artwork │
│ FFT visualizer (post-DSP) │◄─meta─┤ Favorites, playlists │
│ Lyrics parsing + sync │ │ Play counts │
│ DSP effects chain │ │ │
│ Cover art cache │ │ │
└─────────────────────────────┘ └────────────────────────────┘
The server stores files and metadata. Aetherfin does everything else.
PRs welcome. Read CONTRIBUTING.md for setup, code style, and PR guidelines.
No analytics. No ads. No trackers. No Aetherfin servers. The app talks only to the server you configure. See PRIVACY.md.
PRs welcome. Read CONTRIBUTING.md for setup, code style, and PR guidelines.
MIT · LICENSE
Jellyfin · Navidrome · mpv_audio_kit · Finamp



