This is a simple commandline tool that helps you convert an encrypted .ncm
file into its original, more commonly seen audio types (e.g. flac
and mp3
).
- Python3
- TQDM package, which can be installed through
pip3 install tqdm
- PyCrypto package, which can be installed through
pip3 install pycrypto
The usage would require basic knowledge of running Python3 in a terminal (long/short arguments are inter-changable in examples below):
$ python3 ncmdump.py --help
usage: ncmdump.py [-h] [-w] paths [paths ...]
pyNCMDUMP command-line interface
positional arguments:
paths one or more paths to source files
optional arguments:
-h, --help show this help message and exit
-w , --workers parallel convertion when set to more than 1 workers (default: 1)
Example of single-worker mode (default):
$ python ncmdump.py A b.ncm
INFO [2022-10-03 21:13:30]
INFO [2022-10-03 21:13:30] _ _ ___ __ __ ___ _ _ __ __ ___
INFO [2022-10-03 21:13:30] _ __ _ _| \| |/ __| \/ | \| | | | \/ | _ \
INFO [2022-10-03 21:13:30] | '_ \ || | .` | (__| |\/| | |) | |_| | |\/| | _/
INFO [2022-10-03 21:13:30] | .__/\_, |_|\_|\___|_| |_|___/ \___/|_| |_|_|
INFO [2022-10-03 21:13:30] |_| |__/
INFO [2022-10-03 21:13:30] pyNCMDUMP
INFO [2022-10-03 21:13:30] https://github.com/allenfrostline/pyNCMDUMP
INFO [2022-10-03 21:13:30]
INFO [2022-10-03 21:13:30] Running pyNCMDUMP on single-worker mode
INFO [2022-10-03 21:13:30] Converting "A/a1.ncm"
INFO [2022-10-03 21:13:32] Converted file saved at "a1.mp3"
INFO [2022-10-03 21:13:32] Converting "A/a2.ncm"
INFO [2022-10-03 21:13:35] Converted file saved at "a2.mp3"
INFO [2022-10-03 21:13:35] Converting "A/a3.ncm"
INFO [2022-10-03 21:13:38] Converted file saved at "a3.mp3"
INFO [2022-10-03 21:13:38] Converting "A/a4.ncm"
INFO [2022-10-03 21:13:45] Converted file saved at "a4.flac"
INFO [2022-10-03 21:13:45] Converting "b.ncm"
INFO [2022-10-03 21:13:56] Converted file saved at "b.flac"
INFO [2022-10-03 21:13:56] All finished
Example of parallel mode using 4 workers:
$ python ncmdump.py A b.ncm --workers 4
INFO [2022-10-03 21:14:04]
INFO [2022-10-03 21:14:04] _ _ ___ __ __ ___ _ _ __ __ ___
INFO [2022-10-03 21:14:04] _ __ _ _| \| |/ __| \/ | \| | | | \/ | _ \
INFO [2022-10-03 21:14:04] | '_ \ || | .` | (__| |\/| | |) | |_| | |\/| | _/
INFO [2022-10-03 21:14:04] | .__/\_, |_|\_|\___|_| |_|___/ \___/|_| |_|_|
INFO [2022-10-03 21:14:04] |_| |__/
INFO [2022-10-03 21:14:04] pyNCMDUMP
INFO [2022-10-03 21:14:04] https://github.com/allenfrostline/pyNCMDUMP
INFO [2022-10-03 21:14:04]
INFO [2022-10-03 21:14:04] Running pyNCMDUMP with up to 4 parallel workers
INFO [2022-10-03 21:14:04] Converting "A/a1.ncm"
INFO [2022-10-03 21:14:04] Converting "A/a2.ncm"
INFO [2022-10-03 21:14:04] Converting "A/a4.ncm"
INFO [2022-10-03 21:14:04] Converting "A/a3.ncm"
INFO [2022-10-03 21:14:07] Converted file saved at "a1.mp3"
INFO [2022-10-03 21:14:07] Converting "b.ncm"
INFO [2022-10-03 21:14:07] Converted file saved at "a3.mp3"
INFO [2022-10-03 21:14:07] Converted file saved at "a2.mp3"
INFO [2022-10-03 21:14:11] Converted file saved at "a4.flac"
INFO [2022-10-03 21:14:17] Converted file saved at "b.flac"
INFO [2022-10-03 21:14:17] All finished
Credit to anonymous5l, who wrote the original version of ncmdump in C++.