# Netease Cloud Music Copyright Protection File Dump ![shield](https://img.shields.io/badge/python-2.7%7C3.4+-blue.svg) ## Credit ### Origin - [anonymous5l/ncmdump](https://github.com/anonymous5l/ncmdump): Original repository ### Fork - [JamieDummy/NCM_dump](https://github.com/JamieDummy/NCM_dump): Add GUI - [mnilzg/ncmdump](https://github.com/mnilzg/ncmdump): Speed up with NumPy ### Contributor - [@kalteblau](https://github.com/kalteblau): Validate path & collision - [@HarrisonXi](https://github.com/HarrisonXi): Add missing identifier - [@leconio](https://github.com/leconio): handle dict key missing exception - [@lonelyhentai](https://github.com/lonelyhentai): Add pip support ## Dependency ``` $ pip install pycryptodome mutagen ``` ## Install ``` $ pip install git+https://github.com/nondanee/ncmdump.git ``` ## Usage ### Execute ```sh $ ncmdump -h # equivalent to "python ncmdump/app.py -h" usage: ncmdump [-h] [-f format] [-o output] [-d] [-c | -r] [input [input ...]] positional arguments: input ncm file or folder path optional arguments: -h show this help message and exit -f format customize naming format -o output customize saving folder -d delete source after conversion -c overwrite file with the same name -r auto rename if file name conflicts ``` > Supported name format holder: `%artist%`, `%title%`, `%album%` ### Import ```python from ncmdump import dump ``` ```python def dump(input_path, output_path = None, skip = True): ''' args: input_path: a string of input file path output_path: a string of output file path or a naming function skip: a boolean controls conversion skipping when output file exists returns: a string of output file path or none if conversion is skipped ''' ```