https://github.com/im-beast/music-player
Unified music player
https://github.com/im-beast/music-player
android apple-music cross-platform ios music-player musickit unimusic youtube youtube-music
Last synced: 27 days ago
JSON representation
Unified music player
- Host: GitHub
- URL: https://github.com/im-beast/music-player
- Owner: Im-Beast
- Created: 2025-01-01T19:45:55.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-04-17T12:40:42.000Z (about 1 month ago)
- Last Synced: 2025-04-21T06:14:31.519Z (29 days ago)
- Topics: android, apple-music, cross-platform, ios, music-player, musickit, unimusic, youtube, youtube-music
- Language: TypeScript
- Homepage:
- Size: 4.27 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![]()
UniMusic
Unified cross-platform music player.
## Demo showcase
https://github.com/user-attachments/assets/29bd54d2-f7f3-44c9-bfcb-54f1a88080ab
## Roadmap
Development is currently prioritized for iOS and macOS, however first stable release should also work on Android, Linux and Windows.
- ✅ - Basically ready
- 🟧 - Partially done
- 🟥 - Not yet added
- ❓ - Unknown if it will be added| Service | Status |
| ----------- | :----: |
| MusicKit | ✅ |
| YouTube | ✅ |
| Local media | ✅ |
| Deezer | ❓ |
| Jellyfin | ❓ |
| Funkwhale | ❓ || Feature | Status | Notes |
| --------------------- | :----: | --------------------------------------- |
| Unified search | ✅ | |
| Unified playlists | 🟧 | Missing UI for adding songs to playlist |
| Unified library | 🟧 | Missing album support (WIP) |
| Metadata tagging | 🟥 | Manual metadata edition is supported |
| Media synchronisation | 🟥 | |
| Lyrics | 🟥 | |Dates attributed to each features are a subject to change as they are a very rough estimates at a very early point in development.
Debugging, life-related things, app design and such might affect them.
I will try to update the roadmap as the development progresses.\* – Features considered "optional", unclear whether they will materialize
## Development
### Shared
These steps are needed for every platform to work properly
1. Make sure you have all dependencies required to build the app:
- Package manager: [pnpm](https://pnpm.io).
- Make sure you have downloaded all prerequisites for:
- [Capacitor](https://capacitorjs.com/docs/getting-started/environment-setup)
- [Ionic](https://ionicframework.com/docs/intro/environment)
2. Place your [MusicKit Developer Token](https://developer.apple.com/documentation/applemusicapi/generating_developer_tokens) in corresponding files:
- /.example.env ⇢ /.env
3. Setup ionic and install dependencies```sh
pnpm install -g @ionic/cli # Install ionic cli globally
ionic config set -g npmClient pnpm # Make ionic use pnpm
pnpm install # Install all project dependencies
```### Web
```sh
ionic serve # Run the development server
ionic serve --external # add --external if you want to host it to other devices on your network
ionic build # Build the web app into dist/web
```### Electron
1. If you intend to use DRM content via MusicKit in Electron you need to sign the electron application with VMP certificate, read more:
- [Electron for Content Security VMP signing](https://github.com/castlabs/electron-releases/wiki/EVS)
- [Signing VMP certificate during development](https://github.com/castlabs/electron-releases/wiki/FAQ#how-can-i-vmp-sign-my-application-during-development)
- [My commit message explaining it a bit](https://github.com/Im-Beast/music-player/commit/cb5ba29462bd881608e62efef0417530b1cb6c8b)```sh
pnpm electron-dev # Run the app with development server
pnpm electron-build # Build the electron app into dist/electron
pnpm electron-preview # Preview how the app will look like in production mode
```### Mobile
> [!NOTE]
> MusicKit authorization on mobile requires you to already have Apple Music app installed.#### iOS
> [!IMPORTANT]
> To run iOS app you will have to use physical device, as MusicKit is not supported in Simulator.1. Build and open in Xcode
```sh
ionic capacitor build ios
```2. Run on physical device
### Android
> [!NOTE]
> Unlike iOS you can use Android Virtual Devices (AVD) found in Android Studio or any other Emulator for that matter.1. Place your [MusicKit Developer Token](https://developer.apple.com/documentation/applemusicapi/generating_developer_tokens) in:
- /android/app/src/main/res/values/tokens.example.xml ⇢ /android/app/src/main/res/values/tokens.xml
2. Build or open the app```sh
ionic capacitor open android # Build android and open Android Studio
ionic capacitor run android # Or run android app directly in emulator
```## Recommended IDE Setup
[VS Code](https://code.visualstudio.com/) + [Vue](https://marketplace.visualstudio.com/items?itemName=Vue.volar) + [Ionic](https://marketplace.visualstudio.com/items?itemName=ionic.ionic).