About this project
FMP is a cross-platform music player for Android and Windows that unifies three major audio sources—Bilibili, YouTube, and NetEase Cloud Music—into a single experience. Instead of juggling separate apps, users get one search box, one queue, one library, and one listening history across all three platforms.
**Core features**
- **Unified search and playback**: Search across Bilibili (video audio, multi-part collections, live-room audio, favourites import), YouTube (videos, playlists, Mix/Radio dynamic queues, Opus/AAC preference), and NetEase (songs, playlists, VIP and availability flags). Paste a URL to play it directly.
- **Library and playlists**: Build playlists with custom covers or import them from any of the three sources, plus fuzzy-matched import from QQ Music and Spotify exports.
- **Playback controls**: Queue reordering, repeat and shuffle modes, speed control, and a "try this one" mode that returns to your previous position. The queue survives a restart.
- **Lyrics**: From NetEase, QQ Music, and lrclib with configurable source priority, synced scrolling, translation and romanization, and a separate desktop lyrics window on Windows.
- **Offline downloads**: Download single tracks or whole playlists; downloads become part of the local library.
- **Live rooms as radio**: Dedicated playback page for live rooms.
- **History and stats**: Timeline with statistics, local backup and restore, and in-app update check against GitHub Releases.
**Platform support**
- Android: background playback, notification controls, system media keys.
- Windows: system media keys, SMTC (System Media Transport Controls), system tray, global hotkeys, desktop lyrics window.
**Technology stack**
- App: Flutter, Dart, Material 3
- State: Riverpod
- Local data: Isar
- Routing: go_router
- Audio: just_audio (Android), media_kit (Windows)
- Network: Dio, youtube_explode_dart, per-platform adapters
- i18n: slang
The UI adapts between bottom navigation, a side rail, and a desktop detail pane based on window width.
**Privacy**
FMP hosts no music. It reads public interfaces of platforms you already have accounts on. History, playlists, settings, credentials, and downloads stay on your device. There are no ad or analytics SDKs. The project is for study and personal use; membership-only, restricted, and unavailable content follows source platform rules, and frequent or abnormal requests may risk account limitations.
**Building**
Requires the Flutter SDK. Windows desktop builds additionally need the NuGet CLI and a Rust toolchain. Generated code is not committed; run `dart run build_runner build` and `dart run slang` before analyzing. In-depth documentation is written in Traditional Chinese, covering architecture, building, development, release process, and troubleshooting.
**License**: MIT, with third-party components (including LGPL-licensed libmpv/FFmpeg in the Windows build) recorded in THIRD_PARTY_LICENSES.md.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.