Skip to content

sorrow404Null/MusicKit

Repository files navigation

MusicKit

Kotlin Android Compose License

中文版 (Chinese Version)

A modern Android application for NCM music conversion, built with Jetpack Compose and Material 3.


🛠 Environment

Requirement Version
Kotlin 2.3.0
Android Gradle Plugin 8.13.2
Compose BOM 2025.12.01
Min SDK 24 (Android 7.0)
Target SDK 35 (Android 15)

📖 Overview

MusicKit is a high-performance tool designed to decrypt .ncm files into standard .mp3 or .flac formats. It doesn't just convert audio; it ensures your library stays organized by automatically restoring:

  • Metadata: Full ID3 tag support (Title, Artist, Album).
  • Visuals: Original high-resolution album covers.
  • Lyrics: Synchronized LRC lyrics fetched automatically.

✨ Features

  • High-speed Decryption: Efficiently converts encrypted files without quality loss.
  • TagLib Integration: Robust metadata writing for wide player compatibility.
  • Online Integration: Automatically matches and embeds lyrics from web sources.
  • Material 3 UI: A sleek, modern interface with support for Dynamic Color and **Edge-to-Edge ** display.
  • Batch Management: Scan entire folders and process hundreds of files in one go.
  • Privacy First: All decryption is done locally on your device.

🚀 Tech Stack

  • UI: Jetpack Compose (Modern, reactive UI)
  • Architecture: MVVM with Kotlin Coroutines & Flow
  • Network: OkHttp & Kotlinx Serialization
  • Media: TagLib for advanced audio tagging
  • Storage: Jetpack DataStore for configuration

📝 Usage

  1. Setup: Go to Settings and grant permission for your Input and Output directories.
  2. Scan: Return to the Home screen; MusicKit will automatically index all .ncm files.
  3. Select: Tap individual items or use "Select All".
  4. Convert: Hit the primary action button to begin the automated conversion.

🗺 Roadmap

  • Core NCM decryption logic
  • Metadata and cover art injection
  • Online lyrics fetching
  • Multi-language support (i18n)
  • Material 3 Design implementation

⚖️ License

Distributed under the Apache License 2.0. See LICENSE for more information.

⚠️ Disclaimer

This project is for educational and research purposes only. Please respect copyright laws and support official music platforms. The developers are not responsible for any misuse of this tool.

Packages

 
 
 

Contributors

Languages