Skip to content
This repository has been archived by the owner on Mar 17, 2024. It is now read-only.
/ takiyasha Public archive

Python 版本的命令行文件解密工具。切勿大肆宣传此项目。

License

Notifications You must be signed in to change notification settings

nukemiko/takiyasha

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Takiyasha

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

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

Takiyasha 只是一个命令行工具,相当于 LibTakiyasha 的前端。

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

各个版本的变化

版本 1.0.0(正在开发,在这里跟踪进度)

从此版本开始:

  • 解密不再是开箱即用的。你需要根据提示,提供正确的解密所需的密钥。
    • 要输入密钥,你需要按照特定的格式,输入对应的命令行选项或设置对应的环境变量;也可以将密钥写入配置文件,一次配置,长期使用。
    • 到哪里寻找密钥?
      • 如果加密文件是你自己制造的,你自己应该知道密钥;
      • 否则,请从内容提供者处获取,或者在它们的应用程序中寻找,或者寻求同类项目和他人的帮助。(作者是不会向你直接提供此类密钥的)
  • 并行任务模式的运行方式可能会产生变化(多进程 -> 异步?)
  • 对使用 V2 密钥加密的 QMCv2 加密文件的支持,这类文件通常来源于版本 18.57 及之后的 QQ 音乐 PC 客户端

从此版本开始:

  • 命令行部分和算法部分分离得更为彻底:
    • 此仓库仅存储命令行部分 takiyasha
    • 算法部分 libtakiyasha 存储在一个独立仓库中,作为 takiaysha 包的依赖存在。

本 README 后续所有内容都是基于此版本的。

从此版本开始:

  • 直到 v0.6.3,命令行部分和算法部分被拆分为 2 个模块:takiyashalibtakiyasha,但仍然存在于同一个包内,可以同时安装。

从此版本开始,直到 v0.6.0.dev5,相较于 v0.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 版本需求:大于等于 3.8

需要的依赖项:

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

从 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

常见问题

敬请参见 Wiki 上的相关页面

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