{"id":13486959,"url":"https://github.com/nukemiko/takiyasha","last_synced_at":"2025-03-27T21:31:39.345Z","repository":{"id":37293515,"uuid":"445855127","full_name":"nukemiko/takiyasha","owner":"nukemiko","description":"Python 版本的命令行文件解密工具。切勿大肆宣传此项目。","archived":true,"fork":false,"pushed_at":"2023-02-26T07:23:51.000Z","size":406,"stargazers_count":272,"open_issues_count":9,"forks_count":63,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-08-31T18:17:42.080Z","etag":null,"topics":["audio","mflac","mgg","music","ncm","python","qmc","unlock-music"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nukemiko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-01-08T15:24:40.000Z","updated_at":"2024-08-31T14:57:20.000Z","dependencies_parsed_at":"2024-01-16T09:25:29.571Z","dependency_job_id":null,"html_url":"https://github.com/nukemiko/takiyasha","commit_stats":{"total_commits":326,"total_committers":1,"mean_commits":326.0,"dds":0.0,"last_synced_commit":"16fe985432ba8322d9c28566387b4422a6d6695a"},"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nukemiko%2Ftakiyasha","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nukemiko%2Ftakiyasha/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nukemiko%2Ftakiyasha/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nukemiko%2Ftakiyasha/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nukemiko","download_url":"https://codeload.github.com/nukemiko/takiyasha/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222321721,"owners_count":16966432,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","mflac","mgg","music","ncm","python","qmc","unlock-music"],"created_at":"2024-07-31T18:00:53.669Z","updated_at":"2024-10-30T22:30:19.017Z","avatar_url":"https://github.com/nukemiko.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Takiyasha ![](https://img.shields.io/badge/Python-3.8+-red)\n\nTakiyasha 是一个用来解密多种加密音乐文件的工具。\n\n**本项目是以学习和技术研究的初衷创建的，修改、再分发时请遵循 [License](LICENSE)。**\n\nTakiyasha 只是一个命令行工具，相当于 [LibTakiyasha](https://github.com/nukemiko/libtakiyasha) 的前端。\n\n**Takiyasha 对输出数据的可用性（是否可以识别、播放等）不做任何保证。**\n\n## 各个版本的变化\n\n### 版本 1.0.0（正在开发，在[这里](https://github.com/nukemiko/takiyasha/tree/1.x-dev)跟踪进度）\n\n从此版本开始：\n\n-   解密不再是开箱即用的。**你需要根据提示，提供正确的解密所需的密钥。**\n    -   要输入密钥，你需要按照特定的格式，输入对应的命令行选项或设置对应的环境变量；也可以将密钥写入配置文件，一次配置，长期使用。\n    -   到哪里寻找密钥？\n        -   如果加密文件是你自己制造的，你自己应该知道密钥；\n        -   否则，请从内容提供者处获取，或者在它们的应用程序中寻找，或者寻求同类项目和他人的帮助。（作者是不会向你直接提供此类密钥的）\n-   并行任务模式的运行方式可能会产生变化（多进程 -\u003e 异步？）\n-   对使用 V2 密钥加密的 QMCv2 加密文件的支持，这类文件通常来源于版本 18.57 及之后的 QQ 音乐 PC 客户端\n\n### [版本 0.7.0](https://github.com/nukemiko/takiyasha/releases/tag/0.7.0)\n\n从此版本开始：\n\n-   命令行部分和算法部分分离得更为彻底：\n    -   此仓库仅存储命令行部分 `takiyasha`；\n    -   [算法部分 `libtakiyasha`](https://github.com/nukemiko/libtakiyasha) 存储在一个独立仓库中，作为 `takiaysha` 包的依赖存在。\n\n本 README 后续所有内容都是基于此版本的。\n\n### [版本 v0.6.1](https://github.com/nukemiko/takiyasha/releases/tag/v0.6.1-1)\n\n从此版本开始：\n\n-   直到 [v0.6.3](https://github.com/nukemiko/takiyasha/releases/tag/v0.6.3)，命令行部分和算法部分被拆分为 2 个模块：`takiyasha` 和 `libtakiyasha`，但仍然存在于同一个包内，可以同时安装。\n\n### [版本 v0.6.0.dev1](https://github.com/nukemiko/takiyasha/releases/tag/v0.6.0.dev1)\n\n从此版本开始，直到 v0.6.0.dev5，相较于 v0.4.2，包的结构、行为、命令行调用等已经发生了翻天覆地的变化。\n\n关于这些变化的详细信息，请参见[此处](https://github.com/nukemiko/takiyasha/releases/tag/v0.6.0.dev1)。\n\n## 特性\n\n-   跨平台：使用 Python 3 编写，只要系统中存在 Python 3.8 及以上环境，以及任意包管理器，就能安装并使用\n-   [x] \u003cspan id=\"supported_formats\"\u003e支持的加密音乐文件格式\u003c/span\u003e：\n    -   QQ 音乐\n        -   `.qmc*`\n        -   `.mflac*`\n        -   `.mgg*`\n        -   为以下加密文件提供部分支持，但不保证能成功解密：\n            -   从版本 18.57 及之后的 QQ 音乐 PC 客户端下载的 `.mflac*`/`.mgg*` 文件\n            -   从版本 11.5.5 及之后的 QQ 音乐 Android 客户端下载的 `.mflac*`/`.mgg*` 文件\n    -   网易云音乐\n        -   `.ncm`\n        -   `.uc!` （网易云音乐客户端的加密缓存文件）\n-   [x] 命令行调用方式（仅限解密，不支持反向加密）\n-   [x] 自动根据文件内容探测文件的加密类型\n-   [x] 基于多进程的多文件并行处理（默认行为）\n-   [x] 自动补充解密后文件的标签信息（包括封面）\n\n## 如何安装\n\nPython 版本需求：大于等于 3.8\n\n需要的依赖项：\n\n-   [colorama](https://pypi.org/project/colorama) - 命令行输出中的颜色\n-   [mutagen](https://pypi.org/project/mutagen) - 为输出文件写入标签和封面\n-   [MusicTagFindUtils](https://pypi.org/project/MusicTagFindUtils) - 从网易云音乐和 QQ 音乐查找输出文件的标签信息和封面\n    -   版本号必须大于等于 v0.1.2\n-   [requests](https://pypi.org/project/requests) - 网络请求库，用于下载封面信息\n-   [libtakiaysha](https://pypi.org/project/libtakiyasha) - Takiaysha 的算法部分\n\n### 从 Pypi 安装（推荐）\n\n执行命令：`pip install -U takiyasha`\n\n### 从本仓库安装\n\n执行命令：`pip install -U git+https://github.com/nukemiko/takiyasha`\n\n### 从本仓库下载和安装已发布版本\n\n1. 进入[此页面](https://github.com/nukemiko/takiyasha/releases/latest)，下载最新版本\n    - 如果要下载其他版本（包括预发布版本），请直接前往[历史发布页面](https://github.com/nukemiko/takiyasha/releases)寻找和下载\n2. 下载 Wheel 安装包（扩展名为 `.whl` 的文件）\n3. 下载完毕后，执行命令：\n   `pip install -U /path/to/package.whl`\n\n## 如何使用\n\n### 命令行环境\n\n简单易用：\n\n`takiyasha 1.ncm 2.qmcflac 3.mflac 4.mgg ...`\n\n使用 `-t, --test`，只查看输入文件信息但不解密：\n\n`takiyasha -vt 1.ncm 2.qmcflac 3.mflac 4.mgg ...`\n\n使用 `-f, --try-fallback` 尝试解密“[仅部分支持](#supported_formats)”的文件：\n\n`takiyasha -f hell.mflac damn.mgg`\n\n如果不加其他参数，解密成功的文件将会在当前工作目录（`pwd` 或 `os.getcwd()` 的值）下产生。\n\n使用 `-h, --help` 获取完整的帮助信息，或者参见[此处](https://github.com/nukemiko/takiyasha/wiki/%E5%9C%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%AD%E4%BD%BF%E7%94%A8)。\n\n如果你的终端（Shell/PowerShell/CMD 等）出现了以下报错，或其他类似错误信息：\n\n（bash）`bash: takiyasha：未找到命令`\n\n（zsh）`zsh: command not found: takiyasha`\n\n（CMD）`'takiyasha' 不是内部或外部命令，也不是可运行的程序或批处理文件。`\n\n（PowerShell）`takiyasha : 无法将“takiyasha”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写，如果包括路径，请确保路径正确，然后再试一次。`\n\n请尝试改用 `python -m takiyasha`。\n\n## 常见问题\n\n敬请参见 [Wiki 上的相关页面](https://github.com/nukemiko/takiyasha/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)。\n\n碰上了不常见的问题？[前往 Issues 页面](https://github.com/nukemiko/takiyasha/issues)，查看是否存在相似问题，或者开一个 Issue。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnukemiko%2Ftakiyasha","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnukemiko%2Ftakiyasha","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnukemiko%2Ftakiyasha/lists"}