Skip to content

Edit Track Titles

Rivers edited this page Sep 26, 2026 · 1 revision

Track Titles

Some works ship their audio as 01.mp3, #2.wav, Track03.opus, you might want to rename these to meaningful track titles, or if you have a translated version of a work but you want to see it in a nother language. you can achieve this through the Edit Metadata -> Edit Track Titles button.

This does not rename your local files, it is stored in the database only.

Editing titles by hand

You need to be logged in as admin (or have auth disabled).

  1. Open a work → Edit metadata
  2. Edit track titles
  3. Type into any track, then Save

Filling a whole list at once

Expand Fill from a track list, paste one title per line, pick which folders to apply it to, and press Fill.

The list is applied by position — line 1 goes onto the folder's first track, line 2 onto its second, and so on. Blank lines are ignored, so a double-spaced paste works fine.

Apply to folders selection default to all selected, which is sometimes not you want: Unselect a folder the list doesn't describe, like a bonus folder.

Press Save when you are done.

Extracting the list automatically

If you point the server at an LLM, an Extract from description button appears next to Fill. It sends the description to the LLM endpoint you specified (see Connecting a model) and returns a list of track titles.

Requirements:

  • The work must have a scraped description. If it doesn't, refresh its metadata first.
  • DLsite works only. The Fanza scraper is not implemented..

Connecting a model

Supply the following environment variables for your Kikoenai process.

Variable Required Notes
KIKO_LLM_BASE_URL yes OpenAI-compatible base, including /v1
KIKO_LLM_MODEL yes e.g. qwen3:8b
KIKO_LLM_API_KEY no Omit for a local server
KIKO_LLM_EXTRA_BODY no JSON merged into the request body
KIKO_LLM_TIMEOUT_MS no Default 600000 (10 minutes)

Example setups

Ollama

environment:
  - KIKO_LLM_BASE_URL=http://host.containers.internal:11434/v1
  - KIKO_LLM_MODEL=qwen3:8b
  - KIKO_LLM_EXTRA_BODY={"think":false,"options":{"num_ctx":16384}}

llama.cpp

llama-server -m unsloth/Qwen3-4B-Instruct-2507-GGUF:Q4_K_M  --host 0.0.0.0 --port 8080 -c 16384 --jinja
KIKO_LLM_BASE_URL=http://host.containers.internal:8080/v1
KIKO_LLM_MODEL=qwen3
KIKO_LLM_EXTRA_BODY={"chat_template_kwargs":{"enable_thinking":false}}

Warning

KIKO_LLM_MODEL must be non-empty, although it is ignored by the server.

Context length

16384 should be enough. A long description plus a long file list runs to roughly 9–10k tokens on the biggest works; 8192 covers the large majority if memory is tight.

Turning off reasoning

Reasoning output is stripped before parsing, so a thinking model still works — it's just slower for no benefit. The switch is provider-specific:

Server KIKO_LLM_EXTRA_BODY
Ollama {"think":false}
llama.cpp (with --jinja) {"chat_template_kwargs":{"enable_thinking":false}}
vLLM / SGLang {"chat_template_kwargs":{"enable_thinking":false}}
OpenRouter {"reasoning":{"exclude":true}}

Note

Remote provider may reject the request because of NSFW content in the description.