Skip to content
MetaSekaiLabPublic

About

nnnotes?! Offline data toolkit for BanG Dream! Our Notes game files: catalogs, bundles, masterdata, stories, Live2D, audio and live charts

Topics

Resources

Contributing

Stars

16 stars

Watchers

1 watching

Forks

Repository files navigation

nnnotes

English | 简体中文

nnnotes turns your BanG Dream! Our Notes game files into structured data, media and static player sites. It reads Addressables catalogs, bundles, master data and APK resources; exports stories, Live2D models, live charts, rooms, UI, shaders and audio; and assembles sites for ournotes-player.

A persistent depot stores converted objects, task results and catalog versions. Exports share these results, and named sites retain their selected products across builds. A depot can also share work through a directory or S3-compatible object storage.

Documentation · Quick start · Commands

Install

Python 3.11 or newer:

pip install nnnotes==0.3.0
pip install 'nnnotes[fonts]==0.3.0'    # story and UI fonts
pip install 'nnnotes[remote]==0.3.0'   # S3-compatible depot storage
pip install 'nnnotes[deck]==0.3.0'     # music-data chart statistics

Choose the extras your commands need; they can be combined as nnnotes[fonts,remote,deck]==0.3.0. Audio/video conversion uses vgmstream and FFmpeg. Site builds additionally require Node.js 22+ and a built ournotes-player 0.2.x package. The deck extra installs ournotes-sim==0.0.12.

First export

Supply your own client files, keys and server addresses through the configuration wizard:

nnnotes config init --user
nnnotes config check
nnnotes master download --latest -o work/master-bin
nnnotes master decode work/master-bin -o work/master
nnnotes config set paths.master work/master
nnnotes export episode 10462 -o out/episode.json
nnnotes export story 10462 --fonts game -o out/story

Set paths.depot to a persistent directory and paths.apk to your game APK. The wizard reads keys without echo; config check reports setting names, origins and validity. Story export requires the fonts extra and audio tools. See the quick start for prerequisites and output layout.

Build a player site

npm install ournotes-player@0.2.0
nnnotes site build --name stories -o out/site --story 10462 --fonts game --player node_modules/ournotes-player
node node_modules/ournotes-player/scripts/validate-data.mjs out/site
python -m http.server 8000 --directory out/site

Open http://localhost:8000/story/. Live2D, MotionSync and Spine features require the corresponding browser runtimes supplied by the embedding page. See the site guide. Use --pair MUSIC_ID:DIFFICULTY for a chart, --live2d KEY for a model, and --story-languages ja,en for selected story languages. Reusing a site name updates selected topics and retains the others.

Choose a workflow

Task Commands Guide
Configure inputs config init, config check, servers Configuration
Inspect or retain catalogs catalog keys, browse, versions, import, fetch, diff Commands
Copy source bundles bundle pull Asset export
Export a subject export episode, story, live, live2d, spot, room, shader, audio, ui Exports
Convert selected assets export assets, depot plan, depot run Asset export
Check and retain stored work depot verify, depot gc Depot
Export song and chart statistics music-data Music data
Find character voices voices list, search, summary, get Commands

Commands print summaries; --json selects a structured report. The reference describes exit statuses and options.

Data and compatibility

Product exports use versioned manifests and shared object records. Read the format reference, product reference and schemas to consume them. Task identities include input contents, options and conversion implementations, including native encoders. Byte-identical output requires matching inputs and library/tool implementations, including Pillow and its native compression backend. JSON uses UTF-8 and LF; infinite values use 1e999 or -1e999. Determinism explains reproducibility across installations.

Versions cover the CLI, configuration, schemas and documented Python API. Before 1.0, a minor version can change these interfaces. See CHANGELOG.md and the architecture.

Contributing and license

CONTRIBUTING.md describes development and synthetic tests. nnnotes is licensed under MIT. This is an unofficial fan project, unaffiliated with the game's developer or operator. Game resources, keys and server configuration are supplied by each user and are subject to their owners' rights.

About

nnnotes?! Offline data toolkit for BanG Dream! Our Notes game files: catalogs, bundles, masterdata, stories, Live2D, audio and live charts

Topics

Resources

Contributing

Stars

16 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages