A toolkit for hololive Dreams.
As a courtesy to other fans, please refrain from spoiling unreleased content if any is found after decrypting the game data.
-
Install the requirements.
python -m pip install -r requirements.txt
Video conversion also requires
ffmpegonPATH. Audio conversion uses thecridecoderPython package installed fromrequirements.txt. -
Copy
octocacheevaiinto thecachefolder.The default Steam location is:
*\steamapps\common\hololiveDreams\octo\pdb\5\400001\octocacheevaiThe resulting toolkit layout should be:
hololive-toolkit\ ├─ cache\ │ └─ octocacheevai ├─ main.py └─ requirements.txt -
Run
main.py.By default, this downloads and extracts every category for Japanese and shared data:
python main.py
Use
--languageto select another language. For example, usekorfor Korean:python main.py --language kor--cacheand--outputare optional. By default, the toolkit readscache/octocacheevai, caches Unity bundles incache/bundles, caches converted media sources incache/resources, and writes only final extracted files tocache/extract.
Supported languages:
jpn, eng, kor, chs, cht, ind, all
jpn: Japanese (default)eng: Englishkor: Koreanchs: Simplified Chinesecht: Traditional Chineseind: Indonesianall: All languages
Supported categories:
img, adv, live2d, model, motion, effect, audio, video, chart, all
Omitting --categories is the same as --categories all. Specify a
comma-separated list only when limiting the download.
audio includes voice, BGM, SE, and other ACB/AWB resources. External AWB
files and AWBs embedded in ACB files are decoded to PCM16 WAV automatically.
Non-Japanese
language selections include shared base assets together with the matching
_lang-* assets.
Inspect the local OCTO database:
python main.py --inspectWrite the decoded manifest as JSON:
python main.py --inspect --json "cache\OctoManifest.json"Extract a small test selection:
python main.py --categories img,adv --limit 10 --workers 4Download all categories for all languages:
python main.py --language allDownload and decrypt without extracting Unity objects or converting media:
python main.py --no-extractDownload and extract voice, BGM, and sound effects to WAV:
python main.py --categories audioDownload, decrypt, and convert CRI USM videos to MP4:
python main.py --categories videoThe source .usm is removed only after the generated MP4 passes a decode
validation. Hololive Dreams' videos do not require a CRI Movie key;
--movie-key is available for compatible encrypted data.
Existing downloads are skipped automatically and can be resumed with the same
command. Use --overwrite to download them again.
Only final extracted files are stored in category folders. Model textures use
a dedicated textures subdirectory:
cache\extract\
├─ img\*.png
├─ adv\*.json
├─ live2d\*
├─ model\*
│ └─ textures\*.png
├─ motion\*
├─ effect\*
├─ voice\wav\*.wav
├─ bgm\wav\*.wav
├─ se\wav\*.wav
├─ audio\wav\*.wav
├─ video\*.mp4
└─ chart\*
Downloaded Unity bundles are retained once under the shared cache/bundles
directory, so repeated downloads and extraction reuse the same files. Use
--bundle-cache to choose another location. Only embedded model Texture2D
and Sprite objects are exported under cache/extract/model/textures.
Original ACB/AWB files are retained under cache/resources for reuse. Use
--resource-cache to choose another location. Single-entry banks produce
wav/<bank>.wav; multi-entry banks use wav/<bank>/<bank>_<id>.wav.