使用 Python 编写的加密音乐解锁工具
Project description
Takiyasha v0.3.4
简体中文 | English
Takiyasha 是用来解锁被加密的音乐文件的工具,支持 .qmc、.mflac 等多种格式。
Takiyasha 项目是以学习和技术研究的初衷创建的,修改、再分发时请遵循 License。
Takiyasha 解锁 QMC 加密文件的能力,来源于此项目:Unlock Music 音乐解锁
如果你只想快点体验,查看安装方法
特性
- Takiyasha 使用 Python 3 编写
- 只要电脑/手机上可以运行 Python 3 和使用 pip,就可以安装和使用 Takiyasha
支持的加密格式
- 旧版 QMC 加密格式 (.qmc*)
- 新版 QMC 加密格式 (.mflac/.mflac*/.mgg/.mgg*)
- QQ 音乐 .tm 格式 (.tm*)
- Moo Music 加密格式 (.bkc*)
- NCM 加密格式 (.ncm)
- KGM 加密格式 (.kgm/.kgma/.vpr)
适用群体
- 经常批量下载和解锁加密格式的用户
- 不在乎解锁速度的用户
- 受限于 Python 的语言特性,解锁过程很慢
- 想要研究算法和提升自己技术水平的开发者
如何安装
- 所需运行环境
- Python 版本:大于或等于 3.8
- 所需依赖
- Python 包:click - 提供命令行界面
- Python 包:mutagen - 向输出文件写入歌曲信息
- Python 包:pycryptodomex - 部分加密格式的解锁支持
从 Pypi 安装
使用命令:pip install -U takiyasha
通过已发布的 wheel (.whl) 软件包文件安装
- 前往发布页面
- 找到你需要的版本
- 当前最新的稳定版本:v0.3.4 Build 2022-02-13
- 按照发布说明进行下载和安装
从本仓库直接安装
建议从 Pypi 安装或者在发布页面下载安装 Takiyasha。
需要首先安装 git
。
使用命令:pip install -U git+https://github.com/nukemiko/takiyasha
如何使用
命令行(CMD/Powershell/Terminal 等)
Takiyasha 提供了 3 个命令入口:
takiyasha
unlocker
takiyasha-unlocker
它们只存在命令长度上的区别。
- 直接执行命令:
takiyasha file1.qmcflac file2.mflac ...
unlocker file3.kgm file4.vpr ...
- 直接运行模块:
python -m takiyasha file5.mgg file6.ncm ...
无论怎样运行,都可以使用 -h/--help
选项获得更多帮助信息。
作为 Python 模块导入使用
-
创建一个 Decoder 对象:
from takiyasha import new_decoder qmcflac_dec = new_decoder('test.qmcflac') mflac_dec = new_decoder('test.mflac') ncm_dec = new_decoder('test.ncm') noop_dec = new_decoder('test.kv2') # “test.kv2”是扩展名为“kv2”的 mp3 文件 print(qmcflac_dec, mflac_dec, ncm_dec, noop_dec, end='\n')
输出:
<QMCFormatDecoder at 0x7fdbf2057760 name='test.qmcflac'> # QMCv1 加密 <QMCFormatDecoder at 0x7fdbf2ac1090 name='test.mflac'> # QMCv2 加密 <NCMFormatDecoder at 0x7fdbf15622f0 name='test.ncm'> # NCM 加密 <NoOperationDecoder at 0x7fdbf1563400 name='test.kv2'> # 无需解锁操作
-
执行解锁操作并保存到文件:
for idx, decoder in enumerate([qmcflac_dec, mflac_dec, ncm_dec, noop_dec]): audio_format = decoder.audio_format save_filename = f'test{idx}.{audio_format}' with open(save_filename, 'wb') as f: for block in decoder: f.write(block) print('Saved:', save_filename)
输出:
Saved: test0.flac Saved: test1.flac Saved: test2.flac Saved: test3.mp3
使用
file
命令验证输出文件是否正确:> file test0.flac test1.flac test2.flac test3.mp3 test0.flac: FLAC audio bitstream data, 16 bit, stereo, 44.1 kHz, 13379940 samples test1.flac: FLAC audio bitstream data, 16 bit, stereo, 44.1 kHz, 16585716 samples test2.flac: FLAC audio bitstream data, 16 bit, stereo, 44.1 kHz, 10222154 samples test3.mp3: Audio file with ID3 version 2.4.0, contains: MPEG ADTS, layer III, v1, 320 kbps, 44.1 kHz, Stereo
-
针对一些内嵌封面等元数据的加密格式(例如 NCM),还可将其嵌入解锁后的文件:
from takiyasha import new_tag with open('text2.flac', 'rb') as ncmfile: tag = new_tag(ncm_decrypted_file) # 上文中的 NCMFormatDecoder 对象已经储存了找到的元数据 tag.title = ncm_dec.music_title tag.artist = ncm_dec.music_artists tag.album = ncm_dec.music_album tag.comment = ncm_dec.music_identifier tag.cover = ncm_dev.music_cover_data ncm_decrypted_file.seek(0, 0) tag.save(ncm_decrypted_file)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
takiyasha-0.3.4.tar.gz
(126.7 kB
view details)
Built Distribution
takiyasha-0.3.4-py3-none-any.whl
(130.1 kB
view details)
File details
Details for the file takiyasha-0.3.4.tar.gz
.
File metadata
- Download URL: takiyasha-0.3.4.tar.gz
- Upload date:
- Size: 126.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9bd658112f6323e0604a378826a1dd995f7789963625d9b840140bb5143e31ea |
|
MD5 | 0b07f3541cfed77e79ee6bb8e507fb19 |
|
BLAKE2b-256 | 747c62e83cc9e176c8d7c38006ae04db502d1259be9d6b676f32a8869f01a3ed |
File details
Details for the file takiyasha-0.3.4-py3-none-any.whl
.
File metadata
- Download URL: takiyasha-0.3.4-py3-none-any.whl
- Upload date:
- Size: 130.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89afccd252631d9bef905fa6b91f409316e02c53875e8488b9b1e185e65cf089 |
|
MD5 | 51408d2488e2428d63a34334b7d11948 |
|
BLAKE2b-256 | de88faf6bf7af8bd0d83d25b0feb435970926a91f47b4e7ecd54e3429e87dd28 |