Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Any tips on how to get a key for the latest version of StarRail? #149

Open
mqnowa opened this issue Mar 27, 2024 · 7 comments
Open

Any tips on how to get a key for the latest version of StarRail? #149

mqnowa opened this issue Mar 27, 2024 · 7 comments

Comments

@mqnowa
Copy link

mqnowa commented Mar 27, 2024

No description provided.

@gszshdzz
Copy link

@mqnowa
Copy link
Author

mqnowa commented Mar 27, 2024

https://github.com/donmai-me/WannaCRI Maybe

There is no hint in that repository to get the key. When you get the key, you can use that repository to decrypt.

@gszshdzz
Copy link

https://github.com/donmai-me/WannaCRI Maybe

There is no hint in that repository to get the key. When you get the key, you can use that repository to decrypt.

idk, maybe you can refer to #8

@Cactism
Copy link

Cactism commented Mar 31, 2024

https://github.com/donmai-me/WannaCRI Maybe

There is no hint in that repository to get the key. When you get the key, you can use that repository to decrypt.

You can try looking at this repository: https://github.com/BUnipendix/PyCriUsm

I'm too technically incompetent to understand how they're able to get the keys, but after building, it prints out a .json with the keys — I don't know if it's compatible with GI-cutscenes, but it's a start.

Folder created after building:
image

The keys.json file: keys.json

(i literally spent hours trying to figure out how to get the cutscenes in a human readable format, but i haven't had really much luck with a bunch of errors and stuff ⚰️)

For example, after building and running the following script in the repository's folder (with the above screenshot as a reference, it would be Downloads\HSR - PyCriUsm-main):

import asyncio
from PyCriUsm.demux import extract_usm

videos, audios = asyncio.run(extract_usm(r"C:\HoYoverse\Collapse Launcher\APPDATA\SRGlb\Games\StarRail_Data\StreamingAssets\Video\Windows\CS_Chap03_Act230_m.usm", r"C:\Users\danie\Downloads\test", is_async=True))

I then used ffmpeg (.\ffmpeg -i "C:\Users\danie\Downloads\test\CS_Chap02_Act580_m.ivf" -i "C:\Users\danie\Downloads\test\CS_Chap02_Act580_m_0.adx" -c:v copy output.mp4) to merge the the video and audio tracks, but for some reason the Chinese dub didn't work :(

Terminal output after trying to merge video and Chinese audio: output.txt

The other dubs worked however; here's the English output: https://images-ext-1.discordapp.net/external/c1XzKBjLRC6-ngzQMkpFCcgjvf0HABDvuVdbHqEaiPE/https/files.catbox.moe/qq0b3c.mp4

I would love to see more development towards Honkai Star Rail's cutscenes!

@Hitachi-Momoka
Copy link

https://github.com/donmai-me/WannaCRI Maybe

There is no hint in that repository to get the key. When you get the key, you can use that repository to decrypt.

You can try looking at this repository: https://github.com/BUnipendix/PyCriUsm

I'm too technically incompetent to understand how they're able to get the keys, but after building, it prints out a .json with the keys — I don't know if it's compatible with GI-cutscenes, but it's a start.

Folder created after building: image

The keys.json file: keys.json

(i literally spent hours trying to figure out how to get the cutscenes in a human readable format, but i haven't had really much luck with a bunch of errors and stuff ⚰️)

For example, after building and running the following script in the repository's folder (with the above screenshot as a reference, it would be Downloads\HSR - PyCriUsm-main):

import asyncio
from PyCriUsm.demux import extract_usm

videos, audios = asyncio.run(extract_usm(r"C:\HoYoverse\Collapse Launcher\APPDATA\SRGlb\Games\StarRail_Data\StreamingAssets\Video\Windows\CS_Chap03_Act230_m.usm", r"C:\Users\danie\Downloads\test", is_async=True))

I then used ffmpeg (.\ffmpeg -i "C:\Users\danie\Downloads\test\CS_Chap02_Act580_m.ivf" -i "C:\Users\danie\Downloads\test\CS_Chap02_Act580_m_0.adx" -c:v copy output.mp4) to merge the the video and audio tracks, but for some reason the Chinese dub didn't work :(

Terminal output after trying to merge video and Chinese audio: output.txt

The other dubs worked however; here's the English output: https://images-ext-1.discordapp.net/external/c1XzKBjLRC6-ngzQMkpFCcgjvf0HABDvuVdbHqEaiPE/https/files.catbox.moe/qq0b3c.mp4

I would love to see more development towards Honkai Star Rail's cutscenes!

不会英文,所以直接中文了,可以去翻译一下。

试了一下,我知道这个key是怎么用了。
他的这个key是Demuxer.EncryptionKey方法返回的值,所以可以重写一下读取json文件的方法去读取这些key。
另外,USM.Demux方法也得修改一下,在171行的位置去添加一下 MaskAudio(ref data, size),path赋值的上面,然后再把对应方法的里面的unit类型修改成int就可以运行了。
解包出来的文件,视频文件(.ivf)是正常可以播放的,音频文件(.hca)可以用ffmpeg转换成常见的格式,自带音频转换报错不能转换,技术有限,没法改源码。

@mqnowa
Copy link
Author

mqnowa commented Apr 2, 2024

PyCriUSM allows you to create a Python library .pyd for decryption by placing a key previously obtained using Iridium-SR.
Iridium-SR requires two more files to be prepared, the details of which are not mentioned anywhere. So I am looking for information on the packetIds.json and StarRail.proto to use.

@mqnowa
Copy link
Author

mqnowa commented Apr 2, 2024

PyCriUSM committed the key for 2.1 two days after the HSR update, but I need to solve the Iridium-SR question to get the key immediately after the update.
In parallel, we are looking for solutions other than PyCriUSM/Iridium-SR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants