selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
music-geshizhuanhuan logo

Self-host music-geshizhuanhuan

v0.1.0

Encrypted music format converter with web UI and CLI

BetaOpen SourceMIT
Updatedlast month
LanguagePython
Setup difficultyEasy
Stars
231
Ports
8686 (Web UI (Flask server)), 9000 (Alternative web UI port (optional))
Requires
Mutagen, Pycryptodome, Python
Install with Windows

What is music-geshizhuanhuan?

music-geshizhuanhuan is a cross-platform tool for decrypting encrypted music files from four major Chinese music platforms: NetEase Cloud Music (.ncm), QQ Music (.mflac, .mgg, .qmcflac, .qmcogg, etc.), Kugou Music (.kgm, .kgma, .vpr), and Kuwo Music (.kwm). It provides both a web interface (Flask-based, runs on localhost:8686) with drag-and-drop batch processing, real-time progress, cover art preview, and ZIP download, and a command-line interface for scripting and automation. The decryption engines are implemented from scratch in pure Python with only three third-party dependencies (pycryptodome, mutagen, flask). It preserves metadata and cover art, supports unified transcoding via ffmpeg, and runs on macOS, Linux, and Windows. Known limitations: Kugou v5 (.kgg) and new Kuwo formats are not yet supported; new QQ Music files without embedded keys require an Android key database.

Should you self-host music-geshizhuanhuan?

music-geshizhuanhuan scores 43/100 on selfhost.directory (how scoring works) and ranks #8 of 15 in Audio Processing. It has 231 GitHub stars.

It shipped 1 stable release in the past year. The latest, v0.1.0, came out on 25 August 2026.

Setup is easy: most people get it running in one sitting. It is MIT-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is Retrieval-based-Voice-Conversion-WebUI (77/100, 38 918 stars). It scores higher overall, so compare the two before you pick. See music-geshizhuanhuan vs Retrieval-based-Voice-Conversion-WebUI side by side.

Features

  • Auto format detection
  • Batch processing with ZIP download
  • Command Line Interface
  • Cross-verified implementation
  • Dark mode UI
  • Kugou Music decryptionKGG v5 format not yet supported
  • Kuwo Music decryptionNew Kuwo formats not supported
  • Local-only processing
  • Metadata and cover art preservation
  • NetEase Cloud Music (.ncm) decryption
  • QQ Music decryptionNew v2 formats without embedded keys require Android key database
  • Unified transcodingRequires ffmpeg installed separately
  • Web UI

music-geshizhuanhuan README

How to install music-geshizhuanhuan

Install music-geshizhuanhuan with Windows

git clone git@github.com:HRuiCcc/music-geshizhuanhuan.git cd music-geshizhuanhuan .\run.bat web # 双击 run.bat 或 PowerShell 运行,自动装依赖并打开浏览器

Run .\run.bat web for web UI, or .\run.bat <file> for CLI

How to configure music-geshizhuanhuan

  • --dry-runList planned operations without writing files

    List planned operations without writing files

  • --ekeyManually specify EKey for files without embedded key

    Manually specify EKey for files without embedded key

  • --ekey-dbPath to QQ Music Android player_process_db key database

    Path to QQ Music Android player_process_db key database

  • --embed-coverembedEmbed tags and cover art (default)

    Embed tags and cover art (default)

    values: embed/no-embed

  • --ffmpegPath to ffmpeg binary

    Path to ffmpeg binary

  • --forceOverwrite existing output files

    Overwrite existing output files

  • --formatUnified transcoding target format

    Unified transcoding target format

    values: mp3/flac/m4a/wav/ogg

  • --kgm-keyassets/kugou_key.xzPath to Kugou public key (default built-in assets/kugou_key.xz)

    Path to Kugou public key (default built-in assets/kugou_key.xz)

  • --no-browserDon't auto-open browser on web startup

    Don't auto-open browser on web startup

  • --no-embed-coverDon't embed tags and cover art

    Don't embed tags and cover art

    values: embed/no-embed

  • --no-recursiveDon't recurse into directories

    Don't recurse into directories

  • -o./unlockedOutput directory (default ./unlocked)

    Output directory (default ./unlocked)

  • --port8686Web server port (default 8686)

    Web server port (default 8686)

music-geshizhuanhuan releases & version history

FAQ

支持无损吗?

Yes. Decryption is byte-for-byte restoration so FLAC and other lossless formats remain lossless. Transcoding to FLAC is also lossless.

需要装 ffmpeg 吗?

Only needed for unified transcoding (e.g., --format mp3). Not required for decryption only or keeping original format.

为什么新版 QQ 音乐的 .mflac 解不了?

QQ Music PC client 19.57+ no longer embeds keys in downloaded files. Workarounds: downgrade client to 19.51 or earlier and re-download, or use Android key database (player_process_db) with --ekey-db parameter.

文件会被上传吗?

No. The web service only listens on 127.0.0.1 (localhost), so decryption happens entirely on your machine. The code has only 3 third-party dependencies and no telemetry.

More in File Conversion

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…