Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ncmpp

A fast, multi-threaded C++ tool for unlocking NCM audio files and embedding cover images natively.

Features

  • High-Performance C++ Core: Multi-threaded processing with optimized decryption.
  • Cover Art Support: Automatic cover image embedding into converted FLAC or MP3 music files using TagLib.
  • Batch Processing: Built-in batch mode to process entire directories without needing external scripts.
  • Colorful Logging: Built-in colorful terminal output for status tracking.
  • Cross-Platform: Builds and runs on Linux and other systems with a C++20 compiler.
  • Smart Extension Handling: Proper filename handling for files with dots in names.

Dependencies

Build Dependencies

  • OpenSSL: Cryptographic operations.
  • RapidJSON: Metadata parsing.
  • TagLib: Audio tag and cover image embedding natively.
  • CMake: Build system.

Building

  1. Clone the repository:

    git clone https://github.com/WindustH/ncmpp.git
    cd ncmpp
  2. Create a build directory:

    mkdir build
    cd build
  3. Configure and build:

    cmake ..
    cmake --build . -j$(nproc)

    The executable ncmpp will be created in the build directory.

Usage

usage: ./ncmpp [options] ... [input_path] [output_path]

options:
  -t, --threads     Maximum number of concurrent processing threads (unsigned int [=auto])
  -s, --showtime    Display processing time for each file and total time
  -b, --batch       Batch mode: Treat input and output paths as directories (non-recursive)
  -h, --help        Print this help message

Examples

1. Process a single file:

./build/ncmpp song.ncm out_dir

(This will decrypt song.ncm and save it to out_dir with the proper extension, embedding its cover art automatically).

2. Process an entire directory in batch mode:

./build/ncmpp ./music_input ./music_output -b

3. Use 4 threads with timing and batch mode:

./build/ncmpp ./music_input ./music_output -b -t 4 -s

File Structure

ncmpp/
├── CMakeLists.txt   # CMake build configuration
├── build/           # Build directory (created during compilation)
├── ncmlib/          # Core library for decryption, parsing and cover extraction
├── ncmpp/           # CLI application logic
└── README.md

License

This project is licensed under the MIT License.

About

A fast, multi-threaded C++ tool for unlocking NCM audio files.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages