Skip to content

UniMusic-app/unimusic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UniMusic logo, a musical slur resembling smiley face

UniMusic

Unified cross-platform music player.

Demo showcase

iosDemo.MP4

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 Notes
MusicKit
YouTube Age restricted content does not work
Local media
Deezer
Jellyfin
Funkwhale
Feature Status Notes
Unified search
Unified playlists
Lyrics
Metadata tagging
Media synchronisation Not tested on Windows
Unified library 🟧 Missing YouTube support and UI to add items

Development

Conditional service bundling

SERVICE_{LOCAL,MUSICKIT,YOUTUBE} environment variables can be used to conditonally toggle bundling music services.
All of them are set to true by default, meaning they are enabled.

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.
    • Make sure you have downloaded all prerequisites for:
  2. Place your MusicKit Developer Token in corresponding files:
    • /.example.env ⇢ /.env
  3. Setup ionic and install dependencies
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

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:
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
ionic capacitor build ios
  1. 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 in:
    • /android/app/src/main/res/values/tokens.example.xml ⇢ /android/app/src/main/res/values/tokens.xml
  2. Build or open the app
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 + Vue + Ionic.