Skip to content

OpenConverter v0.1.0

Choose a tag to compare

@nowa277 nowa277 released this 16 Jun 06:12
· 94 commits to main since this release

OpenConverter v0.1.0

First public release. Open-source audio converter for Linux that handles encrypted formats (NCM, QMC, KGM, KWM) via pure-JavaScript decoders.

Status

Format Verified
.ncm (NetEase Cloud Music) ✅ 14/14 samples, byte-diff = 0 vs Python ncmdump
.qmc0 / .qmc1 / .qmc2 / .qmcflac ❌ stubs, no samples
.kgm / .kwm (KuGou) ❌ stubs, no samples
.mp3 / .flac / .wav / .m4a / .aac / .ogg / .opus ✅ passthrough + ffmpeg re-encode

Only formats with real samples + byte-diff verification are marked verified. QMC/KGM/KWM throw not yet implemented — no samples available for verification rather than faking success.

What's in the box

  • Clean-room rewrite of a previously commercial macOS audio converter
  • All commercial elements removed: vip_type / use_num / trialData / LoadUrl / doLoadInfo / iOS receipt validation / remote license servers / native FFI decryption dylib — verified zero matches by tests/check-no-commercial.sh (30+ grep patterns)
  • Pure-JS NCM decoder (no native dependencies), works on any Linux without macOS-only .dylib
  • Spotify-inspired dark theme UI with macOS-style traffic-light window controls
  • Single process-message IPC channel (no per-feature commercial handlers)
  • electron-store holds only non-commercial user preferences (format / quality / outputDir / theme)
  • ffmpeg wrapper for format conversion
  • CLI mode (node src/cli.js) for headless testing
  • electron-builder outputs: .deb (x64, arm64) + .AppImage (x64, arm64)

Install

# Debian / Ubuntu
sudo apt install ffmpeg
sudo dpkg -i openconverter_0.1.0_amd64.deb
sudo apt install -f   # resolve missing deps
openconverter

# Any distro (AppImage)
chmod +x OpenConverter-0.1.0.AppImage
./OpenConverter-0.1.0.AppImage

Build from source

npm install
npm run build:renderer
npx electron-builder --linux

Verify the build

node tests/ncm.test.js                 # 14 samples, byte-diff vs Python ncmdump
bash tests/check-no-commercial.sh      # 30+ commercial-element patterns, 0 matches

Honest limitations

  • QMC / KGM / KWM: algorithm stubs only, no real samples — not yet verified, file an issue if you can provide samples
  • Audio listening: Docker has no sound card; ffprobe verifies structure only. Listen locally for subjective quality
  • GUI interaction: not automated; manual testing required
  • macOS / Windows: not supported. Target is Linux only