Skip to main content

music_decoder 0.1.0 copy "music_decoder: ^0.1.0" to clipboard
music_decoder: ^0.1.0 copied to clipboard

Decode NetEase Cloud Music (.ncm) and QQ Music encrypted files back to playable audio formats.

music_decoder #

A pure Dart library that restores NetEase Cloud Music (.ncm) and QQ Music encrypted files into playable audio (flac/mp3/ogg/m4a/wav). It focuses on streaming decode and keeps platform dependencies at zero, so Flutter apps can reuse the same API.

Chinese documentation: README-zh_CN.md.

Features #

  • Decode NetEase Cloud Music .ncm files back to the original audio stream.
  • Decode QQ Music QMC variants (v1/v2) via tail-key extraction.
  • Write tags for NCM output (title/album/artist and cover art).
  • Stream-based decoding to avoid loading large files in memory.

Install #

Add the dependency:

dependencies:
  music_decoder: ^0.1.0

Then run dart pub get.

Usage #

import 'dart:io';
import 'package:music_decoder/music_decoder.dart';

Future<void> main() async {
  final decoder = MusicDecoder();

  final ncmResult = await decoder.decodeNcm(File('song.ncm'));
  print('NCM -> ${ncmResult.outputFile.path}');

  final qmcResult = await decoder.decodeQmc(File('track.qmcflac'));
  print('QMC -> ${qmcResult.outputFile.path}');
}

For a runnable demo, see example/music_decoder_example.dart and place your files in:

  • example/music/netease_cloud_music for .ncm
  • example/music/qq_music for QMC variants (qmcflac, mflac, mgg, etc.)

Notes #

  • QMC output is a raw audio stream; existing tags are preserved only if they are embedded in the encrypted file itself.
  • Sample audio files are excluded from the published package; keep them local.
  • Some rare QMC variants may require additional mappings in qmc_constants.dart.
  • Newer QQ Music formats (with a musicex tail) may decode into corrupt FLAC streams due to updated encryption; see the upstream QMCDecode issue for details: https://github.com/gongjiehong/QMCDecode/issues/3

Reference Projects #

1
likes
140
points
12
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Decode NetEase Cloud Music (.ncm) and QQ Music encrypted files back to playable audio formats.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

pointycastle

More

Packages that depend on music_decoder