Skip to content

Export stories and lives

The export commands each write one subject as a directory or file. They read the catalog, fetch and decrypt the bundles they need into the cache, and need decoded master data where the subject is defined by it (what each command needs). To export every object of many bundles at once, use export assets instead.

Every command below prints a short summary; add --json for its report as JSON. The layout of each output is in Command outputs.

A story

nnnotes export episode 10462 -o out/episode_10462.json     # the episode's commands, lines and resources
nnnotes export story 10462 -o out/stories/10462            # everything the episode plays

export story writes the episode, its decoded cue sheets, the stage scene, the story UI, frames, effects, stills, chats and videos below -o, and its Live2D models below the models directory (--models, default live2d/ next to the story directory). A model directory that exists is used as it is, so exporting the stories of a season into sibling directories exports each model once.

  • --format flac|ogg|wav and --flac-level N choose the audio format; --no-audio leaves the cue sheets undecoded.
  • --fonts game also writes the game's fonts reduced to the characters shown (needs pip install 'nnnotes[fonts]').
  • --force exports the episode's models again.

MasterAdv lists the episode ids; nnnotes voices list --source story --episode ID lists the voiced lines of one. Details: export episode, export story.

A live

nnnotes export live 100001 --difficulty expert -o out/lives/100001_expert

One chart as the self-contained directory ournotes-player reads: the chart as shipped and its converted runtime notes, the 3D scene, the note and effect assets, the BGM and sound effects with their routing, and the start canvas in the configured language.

  • --band BAND or --leader-card CARD_ID picks the band of the background and start timeline (default: the band of the music's first vocal character).
  • --live-option NAME[=VALUES] (repeatable) adds the files of other values of the live options, such as MirrorChart or NoteDesignId; --live-option all adds every option with every value.

Details: export live.

A Live2D model

nnnotes catalog keys --prefix Character/Live2D/ --limit 0     # every model key
nnnotes export live2d adv_live2d_rana_003_casual_spring_01 -o out/live2d/rana

MODEL is the model's key or its id, the last part of the key. The output is a Cubism runtime directory: moc3, atlas pages, motions, expressions, physics, model3.json and the whole prefab as JSON. Details: export live2d.

A spot or a room

nnnotes export spot SPOT_ID -o out/spots/SPOT_ID
nnnotes export room KEY -o out/rooms/room.glb             # a background prefab key

export spot writes the spot's master row with its names and tap-talk episodes, its Spine characters, its background as binary glTF and the shaders of its bundles. export room writes one background prefab as binary glTF with a summary next to it. Details: export spot, export room.

Shaders, audio and the UI library

nnnotes export shader --key KEY -o out/shaders                 # every shader of a key's bundle closure
nnnotes export audio CUE_SHEET -o out/audio/CUE_SHEET          # one cue sheet, one file per stream
nnnotes export ui -o out/ui                                    # the prefab library of the APK's embedded catalog

export audio decodes Cri/Sound/<CUE_SHEET> with the HCA key read from the APK; FLAC keeps the decoded PCM bit-exact at every --flac-level. Details: export shader, export audio, UI library.

Voices

nnnotes voices list --character 1 --category character-rank-up
nnnotes voices search "hello" --search-language en
nnnotes voices get MasterTalk:561 -o out/voices/561

The voices commands list, search and fetch the character and story voices of the master data. Without an export assets output (--from) they read the master data and the catalog directly and decode only the cue sheet a voices get needs. Details: voices.