Skip to content

Commit

Permalink
修改 README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
nukemiko committed Oct 22, 2022
1 parent 19320e7 commit 5f4fff4
Showing 1 changed file with 50 additions and 7 deletions.
57 changes: 50 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,26 @@

**本项目现在不会内置任何解密所需的密钥。你需要自行寻找解密所需密钥或加密参数,在调用时作为参数传入。**

你可以在内容提供商的应用程序中查找这些必需参数,或寻求他人的帮助,但请**不要在本仓库下的 Issues 或讨论区中报告“缺少内置密钥”、“不能免密钥/一键解密”之类的问题,否则你的 Issue 会被立即关闭**
你可以在内容提供商的应用程序中查找这些必需参数,或寻求他人的帮助,但请**不要在本仓库下的 Issues 或讨论区中报告“缺少内置密钥”、“不能免密钥/一键解密”之类的问题,你的此类 Issue 不会得到作者的回复**

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

---

## 当前版本:2.0.0.dev0
## 当前版本:[2.0.0.dev1](https://github.com/nukemiko/libtakiyasha/releases/tag/2.0.0.dev1)

此版本为开发版,如果发现任何 `libtakiyasha` 自身的问题,欢迎[提交 Issue](https://github.com/nukemiko/libtakiyasha/issues)

**`libtakiyasha` 2.x 版本不是向后兼容的,使用 1.x 版本的应用程序需要进行一些改造,才能使用 2.x 版本。**

### 支持的格式

请在[此处](https://github.com/nukemiko/libtakiyasha/wiki/%E6%94%AF%E6%8C%81%E7%9A%84%E6%A0%BC%E5%BC%8F%E5%92%8C%E6%89%80%E9%9C%80%E5%AF%86%E9%92%A5%E5%8F%82%E6%95%B0)查看。

### 安装

- 运行命令:`pip install -U libtakiyasha`
- 或者前往 [GitHub 发布页](https://github.com/nukemiko/libtakiyasha/releases) 下载安装
- 运行命令:`pip install -U libtakiyasha==2.0.0.dev1`
- 或者前往 [GitHub 发布页](https://github.com/nukemiko/libtakiyasha/releases/tag/2.0.0.dev1) 下载安装

### 基本使用方法

Expand All @@ -34,21 +40,32 @@
```python
from libtakiyasha import NCM, QMCv2

... # 定义你提供的核心密钥 your_provided_core_keyyour_provided_simple_key
... # 定义你提供的核心密钥 your_core_key、your_simple_key、your_mix_key1your_mix_key2

ncmfile = NCM.from_file('source.ncm', core_key=your_provided_core_key)
# 打开 NCM 文件
ncmfile = NCM.from_file('source.ncm', core_key=your_core_key)
target_file_format = ncm.ncm_tag.format

with open('target_from_ncm.' + target_file_format, mode='wb') as fd:
for block in ncmfile:
fd.write(block)

qmcv2file = QMCv2.from_file('source.mflac', simple_key=your_provided_simple_key)
# 打开 QMCv2 文件
qmcv2file = QMCv2.from_file('source.mflac', simple_key=your_simple_key)
target_file_format = 'flac'

with open('target_from_mflac.' + target_file_format, mode='wb') as fd:
for block in qmcv2file:
fd.write(block)

# 也可以打开来自 QQ 音乐 PC 客户端 18.57 及更新版本的 QMCv2 文件,
# 但需要正确的 mix_key1 和 mix_key2 参数
qmcv2file_keyencv2 = QMCv2.from_file('source.mflac', simple_key=your_simple_key, mix_key1=your_mix_key1, mix_key2=your_mix_key2)
target_file_format = 'flac'

with open('target_from_mflac.' + target_file_format, mode='wb') as fd:
for block in qmcv2file_keyencv2:
fd.write(block)
```

- 打开加密文件时,如果不提供核心密钥,会报错而无法继续:
Expand All @@ -63,3 +80,29 @@ with open('target_from_mflac.' + target_file_format, mode='wb') as fd:
ValueError: 'simple_key' is required for QMCv2 file master key decryption
>>>
```

你需要向 `QMCv2.from_file()` 传入正确的 `simple_key` 参数才能打开文件。

同样,你需要向 `NCM.from_file()` 传入正确的 `core_key` 参数才能打开 NCM 文件。

生成加密文件(以 QMCv2 为例):

```python
from libtakiyasha import QMCv2

... # 定义你的 your_simple_key、your_mix_key1 和 your_mix_key2

new_qmcv2 = QMCv2.new()

new_qmcv2.simple_key = your_simple_key # 可选,但如果跳过此步骤,在保存到文件时需要填写参数 simple_key

with open('plain.flac', 'rb') as fd:
for line in fd:
new_qmcv2.write(line)

# 保存为 QMCv2 KeyEncV1
new_qmcv2.to_file('encrypted.mflac')

# 也可以保存为 QMCv2 KeyEncV2 - QQ 音乐 PC 端 18.57 及更高版本的格式
new_qmcv2.to_file('encrypted-keyencv2.mflac', master_key_enc_ver=2, mix_key1=your_mix_key1, mix_key2=your_mix_key2)
```

0 comments on commit 5f4fff4

Please sign in to comment.