Skip to main content

Python 版本的音乐解密工具

Project description

Takiyasha

Takiyasha 是一个用来解密多种加密音乐文件的工具。

Github | Notabug

本项目是以学习和技术研究的初衷创建的,修改、再分发时请遵循 License

Takiyasha 的设计灵感,以及部分解密方案,来源于 Unlock Music Project - CLI Edition

Takiyasha 对输出数据的可用性(是否可以识别、播放等)不做任何保证。

重要事项

在 v0.4.2 之后的版本中,包的结构、行为、命令行调用等已经发生了翻天覆地的变化。

如果你曾针对 v0.4.2 或者之前的版本制作过脚本或工具,那么它们已经不再适用于当前版本(v0.6.0.dev1 及之后)。

如果你有使用 v0.4.2 的需求,按照以下步骤回滚:

  1. 卸载:pip uninstall takiyasha
  2. 安装 v0.4.2:pip install -U takiyasha==0.4.2

特性

  • 跨平台:使用 Python 3 编写,只要系统中存在 Python 3.8 及以上环境,以及任意包管理器,就能安装并使用
  • 支持的加密音乐文件格式
    • QQ 音乐
      • .qmc*
      • .mflac*
      • .mgg*
      • 为以下加密文件提供部分支持,但不保证能成功解密:
        • 从版本 18.57 及之后的 QQ 音乐 PC 客户端下载的 .mflac*/.mgg* 文件
        • 从版本 11.5.5 及之后的 QQ 音乐 Android 客户端下载的 .mflac*/.mgg* 文件
    • 网易云音乐
      • .ncm
      • .uc! (网易云音乐客户端的加密缓存文件)
  • 作为 Python 库使用时,针对主要功能,有完善的 docstring
  • 作为 Python 库使用时,支持解密和实验性的反向加密
  • 命令行调用方式(仅限解密,不支持反向加密)
  • 自动根据文件内容探测文件的加密类型
  • 基于多进程的多文件并行处理(默认行为)
  • 自动补充解密后文件的标签信息(包括封面)

如何安装

Python 版本需求:大于等于 3.8

需要的依赖项:

  • pyaes - AES 加解密支持
  • colorama - 命令行输出中的颜色
  • mutagen - 为输出文件写入标签和封面
  • MusicTagFindUtils - 从网易云音乐和 QQ 音乐查找输出文件的标签信息和封面
    • 版本号必须大于等于 v0.1.2
  • requests - 网络请求库,用于下载封面信息

从 Pypi 安装(推荐)

执行命令:pip install -U takiyasha

从本仓库安装

执行命令:pip install -U git+https://github.com/nukemiko/takiyasha

从本仓库下载和安装已发布版本

  1. 进入此页面,下载最新版本
    • 如果要下载其他版本(包括预发布版本),请直接前往历史发布页面寻找和下载
  2. 下载 Wheel 安装包(扩展名为 .whl 的文件)
  3. 下载完毕后,执行命令: pip install -U /path/to/package.whl

如何使用

命令行环境

简单易用:

takiyasha 1.ncm 2.qmcflac 3.mflac 4.mgg ...

使用 -t, --test,只查看输入文件信息但不解密:

takiyasha -vt 1.ncm 2.qmcflac 3.mflac 4.mgg ...

使用 -f, --try-fallback 尝试解密“仅部分支持”的文件:

takiyasha -f hell.mflac damn.mgg

如果不加其他参数,解密成功的文件将会在当前工作目录(pwdos.getcwd() 的值)下产生。

使用 -h, --help 获取完整的帮助信息,或者参见此处

如果你的终端(Shell/PowerShell/CMD 等)出现了以下报错,或其他类似错误信息:

(bash)bash: takiyasha:未找到命令

(zsh)zsh: command not found: takiyasha

(CMD)'takiyasha' 不是内部或外部命令,也不是可运行的程序或批处理文件。

(PowerShell)takiyasha : 无法将“takiyasha”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。

请尝试改用 python -m takiyasha

在其他项目中作为 Python 库导入使用

敬请参见 Wiki 上的相关页面

常见问题

敬请参见 Wiki 上的相关页面

碰上了不常见的问题?前往 Issues 页面,查看是否存在相似问题,或者开一个 Issue。

Project details


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.6.2.tar.gz (35.9 kB view details)

Uploaded Source

Built Distribution

takiyasha-0.6.2-py3-none-any.whl (42.4 kB view details)

Uploaded Python 3

File details

Details for the file takiyasha-0.6.2.tar.gz.

File metadata

  • Download URL: takiyasha-0.6.2.tar.gz
  • Upload date:
  • Size: 35.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.10.5

File hashes

Hashes for takiyasha-0.6.2.tar.gz
Algorithm Hash digest
SHA256 5e0822b2d5a320afef56534a205421448dec1199040709a75139beb00a9fc0ba
MD5 5c72f6e4d182342d919be902f9f6128e
BLAKE2b-256 66c1e3374a1738adbb3ea0b3c6da6ab12d0da7c0e4dbb76648c02c3cb372480a

See more details on using hashes here.

File details

Details for the file takiyasha-0.6.2-py3-none-any.whl.

File metadata

  • Download URL: takiyasha-0.6.2-py3-none-any.whl
  • Upload date:
  • Size: 42.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.10.5

File hashes

Hashes for takiyasha-0.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e1ecc70ba217424b729a7a0699a0cd91610fde214fb1690d4167ff4fb0f67239
MD5 631c87267f14acac419eed626b36cfa7
BLAKE2b-256 cc5a1a741e03db7d59aea0ff24d250417d02558a3bc72fc1cabc8dabb99e43a6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page