Not in the top 1,000 by GitHub stars

EGSECDA/vocaloid-style-mv-pipeline

Production pipeline and Claude Code skill for Vocaloid-style hand-drawn (手書き) lyric music videos: deterministic Canvas2D/WebGL2 animation engine, JIZURA lyric motion, AI illustration, Blender toon 3D, headless rendering to 16:9 and 9:16.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

skills/vocaloid-style-mv/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 13b380dab077

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 13b380dab077d4c8ea956825c9693c720e0c2b91

251GitHub stars
39stars in 7 days
1skill in this repository
3commits in 30 days

Heat

7.1
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Nov 7, 2026251

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

vocaloid-style-mv

When your agent uses it

Make an original animated music video (MV / PV) for a song from its audio file plus lyrics, in the Vocaloid / J-pop lyric-video tradition: 手書き/tegaki (V家手书, 手描きMV, ボカロPV), 文字PV and kinetic typography (リリックモーション, リリックビデオ, 歌詞動画, 歌词视频, 动态歌词), anime-illustration MVs with an original character — for any mood, from dark ballads to bright upbeat summer pop. Renders to MP4 with a deterministic Canvas2D/WebGL2 engine in a headless browser: JIZURA lyric motion, AI-generated art, optional Blender toon 3D, beat-locked editing, 9:16 vertical/Shorts version. Use it whenever the user wants a music video, MV, PV, lyric video or beat-synced animation for a song, e.g. "make an MV for my song", "turn this track into a lyric video", "给这首歌做个MV/PV", "做个V家手书", "この曲のMVを作って", "ボカロPV作って", "縦型ショートも" — even if they only give a .wav/.mp3 and say "make a cool video for it". Not for editing existing footage or clip compilations.

What it loads into context

Frontmatter

313 tokens

Always available to the agent

SKILL.md

3,142 tokens

When the skill is activated

Reference documents

57,563 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. What you have
  2. Requirements
  3. The workflow (phases, deliverables, checkpoints)
  4. Principles that make it look like a showreel (why they matter)
  5. Working style
  6. References (read when the phase needs it)

Scripts executed separately

  • scripts/check_env.py
  • scripts/new_project.py
  • template/blender/helpers_selftest.py
  • template/blender/probe_scene.py
  • template/blender/shots/_shared.py
  • template/blender/shots/shotA_street.py
  • template/blender/shots/shotB_crossing.py
  • template/demo/make_demo_song.py
  • template/engine/core/assets.js
  • template/engine/core/draw.js
  • template/engine/core/gl.js
  • template/engine/core/main.js
  • template/engine/core/trans.js
  • template/engine/core/util.js
  • template/engine/fonts/fonts.js
  • template/engine/scenes/dark.js
  • template/engine/scenes/glass.js
  • template/engine/scenes/intro.js
  • template/engine/scenes/memory.js
  • template/engine/scenes/meta.js
  • template/engine/scenes/night.js
  • template/engine/scenes/scenes.js
  • template/engine/scenes/typo.js
  • template/engine/timeline.js
  • template/engine/vertical.js
  • template/jizura/app/jizura_adapter.js
  • template/package.json
  • template/setup.ps1
  • template/setup.sh
  • template/tools/alpha_matte.py
  • template/tools/analyze_audio.py
  • template/tools/blender_common.py
  • template/tools/blender_run.py
  • template/tools/build_jizura_bundle.mjs
  • template/tools/fetch_fonts.py
  • template/tools/gigafile_upload.mjs
  • template/tools/imagegen.py
  • template/tools/jizura_parts.mjs
  • template/tools/jizura_probe.mjs
  • template/tools/jizura_serve.mjs
  • template/tools/jz_cuts_at.mjs
  • template/tools/kit_env.mjs
  • template/tools/kit_env.py
  • template/tools/preview_style_fx.mjs
  • template/tools/render_final.mjs
  • template/tools/render_final.ps1
  • template/tools/render_frames.mjs
  • template/tools/review_sheets.py
  • template/tools/stills.mjs
  • template/tools/style_palette_sheet.py
  • template/tools/transcribe_align_mms.py
  • template/tools/transcribe_kana.py
  • template/tools/transcribe_lines.py
  • template/tools/transcribe_onset_probe.py
  • template/tools/transcribe_prep.py
  • template/tools/transcribe_reconcile.py
  • template/tools/transcribe_score.py
  • template/tools/transcribe_separate.py
  • template/tools/transcribe_translation.py
  • template/tools/transcribe_vocal_activity.py
  • template/tools/transcribe_whisper.py
  • template/tools/verify_style_snippets.mjs

Files

  • SKILL.mdcore12,262 bytes
  • SKILL.mdcore12,262 bytes
  • references/01-workflow.mddoc11,332 bytes
  • references/02-creative-direction.mddoc16,620 bytes
  • references/03-audio-and-lyrics.mddoc24,955 bytes
  • references/04-asset-generation.mddoc20,210 bytes
  • references/05-engine.mddoc33,131 bytes
  • references/06-jizura.mddoc13,636 bytes
  • references/07-blender-3d.mddoc18,550 bytes
  • references/08-render-and-delivery.mddoc15,572 bytes
  • references/09-qa-and-lessons.mddoc7,997 bytes
  • references/effect-cookbook.mddoc21,089 bytes
  • scripts/check_env.pyruns23,404 bytes
  • scripts/new_project.pyruns13,286 bytes
  • template/.gitignoreasset1,595 bytes
  • template/PROJECT_README.mddoc12,593 bytes
  • template/analysis/.gitkeepasset0 bytes
  • template/assets/bg/.gitkeepasset0 bytes
  • template/assets/char/.gitkeepasset0 bytes
  • template/assets/style/luts/P1_oumagatoki.pngasset219 bytes
  • template/assets/style/luts/P1_oumagatoki_duo.pngasset184 bytes
  • template/assets/style/luts/P2_zansho.pngasset237 bytes
  • template/assets/style/luts/P2_zansho_duo.pngasset176 bytes
  • template/assets/style/luts/P3_fumikiri.pngasset118 bytes
  • template/assets/style/luts/P3_fumikiri_duo.pngasset190 bytes
  • template/assets/style/luts/P4_hotarubi.pngasset230 bytes
  • template/assets/style/luts/P4_hotarubi_duo.pngasset174 bytes
  • template/assets/style/luts/P5_taishoku.pngasset182 bytes
  • template/assets/style/luts/P5_taishoku_duo.pngasset174 bytes
  • template/assets/style/palettes.jsonasset5,715 bytes
  • template/audio/.gitkeepasset0 bytes
  • template/blender/helpers_selftest.pyruns4,144 bytes
  • template/blender/probe_scene.pyruns21,019 bytes
  • template/blender/shots/_shared.pyruns32,021 bytes
  • template/blender/shots/shotA_street.pyruns39,524 bytes
  • template/blender/shots/shotB_crossing.pyruns33,520 bytes
  • template/demo/README.mddoc2,228 bytes
  • template/demo/lyrics_demo.lrcasset471 bytes
  • template/demo/make_demo_song.pyruns18,932 bytes
  • template/demo/sections_demo.jsonasset1,030 bytes
  • template/engine/core/assets.jsruns2,816 bytes
  • template/engine/core/draw.jsruns17,049 bytes
  • template/engine/core/gl.jsruns13,512 bytes
  • template/engine/core/main.jsruns11,378 bytes
  • template/engine/core/trans.jsruns6,701 bytes
  • template/engine/core/util.jsruns6,248 bytes
  • template/engine/fonts/OFL_delagothicone.txtdoc4,392 bytes
  • template/engine/fonts/OFL_dotgothic16.txtdoc4,399 bytes
  • template/engine/fonts/OFL_kaiseitokumin.txtdoc4,383 bytes
  • template/engine/fonts/OFL_kleeone.txtdoc4,386 bytes
  • template/engine/fonts/OFL_mplusrounded1c.txtdoc4,350 bytes
  • template/engine/fonts/OFL_notosansjp.txtdoc4,388 bytes
  • template/engine/fonts/OFL_notosanssc.txtdoc4,388 bytes
  • template/engine/fonts/OFL_notoserifjp.txtdoc4,350 bytes
  • template/engine/fonts/OFL_notoserifsc.txtdoc4,350 bytes
  • template/engine/fonts/OFL_rampartone.txtdoc4,391 bytes
  • template/engine/fonts/OFL_reggaeone.txtdoc4,390 bytes
  • template/engine/fonts/OFL_shipporiminchob1.txtdoc4,399 bytes
  • template/engine/fonts/OFL_yujisyuku.txtdoc4,386 bytes
  • template/engine/fonts/OFL_zenkakugothicnew.txtdoc4,401 bytes
  • template/engine/fonts/OFL_zenoldmincho.txtdoc4,399 bytes
  • template/engine/fonts/fonts.cssasset5,761 bytes
  • template/engine/fonts/fonts.jsruns2,204 bytes
  • template/engine/fonts/manifest.jsonasset5,818 bytes
  • template/engine/index.htmlasset1,726 bytes
  • template/engine/scenes/dark.jsruns62,194 bytes
  • template/engine/scenes/glass.jsruns67,471 bytes
  • template/engine/scenes/intro.jsruns76,157 bytes
  • template/engine/scenes/memory.jsruns74,424 bytes
  • template/engine/scenes/meta.jsruns55,290 bytes
  • template/engine/scenes/night.jsruns61,836 bytes
  • template/engine/scenes/scenes.jsruns6,666 bytes
  • template/engine/scenes/typo.jsruns65,319 bytes
  • template/engine/timeline.jsruns28,972 bytes
  • template/engine/vertical.htmlasset1,775 bytes
  • template/engine/vertical.jsruns8,167 bytes
  • template/jizura/app/engine.htmlasset1,749 bytes
  • template/jizura/app/host_direct.htmlasset3,832 bytes
  • template/jizura/app/host_iframe.htmlasset2,111 bytes
  • template/jizura/app/jizura_adapter.jsruns6,586 bytes
  • template/package.jsonruns1,962 bytes
  • template/requirements.txtdoc2,304 bytes
  • template/setup.ps1runs12,917 bytes
  • template/setup.shruns11,647 bytes
  • template/tools/alpha_matte.pyruns25,099 bytes
  • template/tools/analyze_audio.pyruns90,765 bytes
  • template/tools/blender_common.pyruns60,793 bytes
  • template/tools/blender_run.pyruns2,549 bytes
  • template/tools/build_jizura_bundle.mjsruns4,191 bytes
  • template/tools/fetch_fonts.pyruns5,683 bytes
  • template/tools/gigafile_upload.mjsruns5,291 bytes
  • template/tools/imagegen.pyruns12,081 bytes
  • template/tools/jizura_parts.mjsruns1,899 bytes
  • template/tools/jizura_probe.mjsruns3,926 bytes
  • template/tools/jizura_serve.mjsruns3,936 bytes
  • template/tools/jz_cuts_at.mjsruns3,018 bytes
  • template/tools/kit_env.mjsruns5,999 bytes
  • template/tools/kit_env.pyruns11,171 bytes
  • template/tools/preview_style_fx.mjsruns10,316 bytes
  • template/tools/render_final.mjsruns7,478 bytes
  • template/tools/render_final.ps1runs375 bytes
  • template/tools/render_frames.mjsruns30,915 bytes
  • template/tools/review_sheets.pyruns4,023 bytes
  • template/tools/stills.mjsruns4,964 bytes
  • template/tools/style_palette_sheet.pyruns14,868 bytes
  • template/tools/transcribe_align_mms.pyruns6,017 bytes
  • template/tools/transcribe_kana.pyruns5,594 bytes
  • template/tools/transcribe_lines.pyruns14,986 bytes
  • template/tools/transcribe_onset_probe.pyruns4,577 bytes
  • template/tools/transcribe_prep.pyruns3,135 bytes
  • template/tools/transcribe_reconcile.pyruns16,308 bytes
  • template/tools/transcribe_score.pyruns4,240 bytes
  • template/tools/transcribe_separate.pyruns4,572 bytes
  • template/tools/transcribe_translation.pyruns6,805 bytes
  • template/tools/transcribe_vocal_activity.pyruns2,357 bytes
  • template/tools/transcribe_whisper.pyruns6,350 bytes
  • template/tools/verify_style_snippets.mjsruns8,978 bytes
Read SKILL.md

# Vocaloid-style MV pipeline (手書き / 文字PV)

This skill turns **a song + its lyrics** into a finished, showreel-quality lyric MV (16:9 master, 9:16 vertical version, share encodes). It packages a pipeline that was used to make 「残光」 (Music / Lyrics / Movie:**NikusonP**) — a 3:46 MV with an original V家-style singer, a cracked-sky / afterglow concept, JIZURA typography, two Blender 3D sequences and ~70 beat-locked shots, rendered in ~4 minutes on an RTX 3080.

**The goal is a film of similar craft, not a copy.** Every song gets its own concept, character, palette, motifs and storyboard derived from *its* lyrics and structure. The scene library and the 残光 case study are a toolbox and a worked example; reusing their look wholesale defeats the point. `references/02-creative-direction.md` explains how to find a new concept and gives a variation matrix.

## What you have

- `template/` — a complete project: the engine (`engine/`), scene library (`engine/scenes/*.js`), JIZURA adapter (`jizura/`), all tools (`tools/`), Blender shot scripts (`blender/`), palettes/LUTs, a procedural **demo** (`demo/`, synthetic song) and a default commented timeline.
- `scripts/new_project.py` — scaffold a project from the template (`--song`, `--lyrics`, `--title`, `--title-sub`, `--artist`, `--credit`, `--setup`). `scripts/check_env.py` — what's installed.
- `references/` — the method. Read the ones you need, when you need them (table at the end).
- The 残光 case study (storyboard, timeline, prompts, contact sheets) is **not** inside this skill folder. In a repo checkout it is `examples/zanko/` (two levels above this file). With only the installed skill, read it online: https://github.com/EGSECDA/vocaloid-style-mv-pipeline/tree/main/examples/zanko (raw: `https://raw.githubusercontent.com/EGSECDA/vocaloid-style-mv-pipeline/main/examples/zanko/<FILE>`). Every `examples/zanko/...` path in `references/` means this folder.

## Requirements
View the complete source on GitHub

Skills included

  • vocaloid-style-mv

Repository facts

License
MIT
Created
Oct 4, 2026
Last pushed
Nov 4, 2026
Forks
17
Open issues
0
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 4, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 1 note
  • skills/vocaloid-style-mv/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 283 signals by file

skills/vocaloid-style-mv/SKILL.md

  • Network accessline 24
    - `scripts/new_project.py` — scaffold a project from the template (`--song`, `--lyrics`, `--title`, `--title-sub`, `--artist`, `--credit`, `--setup`). `scripts/check_env.py` — what's installed. - `references/` — the method. Read the ones yo
  • Network accessline 26
    - The 残光 case study (storyboard, timeline, prompts, contact sheets) is **not** inside this skill folder. In a repo checkout it is `examples/zanko/` (two levels above this file). With only the installed skill, read it online: https://github.
  • Network accessline 38
    1. **Scaffold** — `python <skill>/scripts/new_project.py <dir> --song <song.wav> --lyrics <lyrics> --title <title> --title-sub <Latin subtitle> --artist <artist> --credit "Music / Lyrics / Movie:<artist>" --setup`. The four strings set `Z.T
  • Network accessline 39
    - **Plain-text lyrics** (no timestamps — the usual case) need forced alignment for the timings: add `--setup-args "-Lyrics"` (macOS / Linux: `--setup-args "--lyrics"`), then install the alignment deps once inside the project: `python -m pip

skills/vocaloid-style-mv/references/02-creative-direction.md

  • Network accessline 112
    Thesis: light that remains after its source is gone. Logline: after the sun has gone, a girl holds the last light; the sky cracks, she falls into the night, keeps a small flame alive, gathers her shattered heart, and walks a road made of he

skills/vocaloid-style-mv/references/03-audio-and-lyrics.md

  • Network accessline 157
    Install notes: CUDA Whisper needs `pip install nvidia-cublas-cu12` (ctranslate2 ships cuDNN but not cuBLAS; the script adds the pip `nvidia/*/bin` folders to the DLL path on Windows). The Python packages of steps 2–9 (faster-whisper, onnxru

skills/vocaloid-style-mv/references/04-asset-generation.md

  • Network accessline 87
    1. **Character bible** `docs/CHARACTER.md` (cover: name & concept · silhouette · hair (colour + inner colour) · eyes · signature item · outfit layers · motion prop (which side!) · palette roles as hex · do-nots (existing-character likenesse

skills/vocaloid-style-mv/references/05-engine.md

  • Network accessline 131
    Shot ids refer to 残光's `examples/zanko/timeline.js`. The case study is in the kit repo only, not in the installed skill folder — online: https://github.com/EGSECDA/vocaloid-style-mv-pipeline/tree/main/examples/zanko (raw file: https://raw.g
  • Network accessline 174
    | `fall` | falling toward a square of dawn; light streaks; time-freeze on audio stops | `char`, `freeze [[t0,t1]]` (default: stops in the shot), `pulse`, `vp [x,y]`, `speed`, `h` | s12 | | `flame` | cupped hands with a breathing flame (`bre
  • Network accessline 176
    | `ink` | sumi tendrils curl around her in a pale fog void, lurching per beat | `char`, `seed 7`, `h`, `x 960`, `y 992` | s46 |

skills/vocaloid-style-mv/references/06-jizura.md

  • Network accessline 7
    [JIZURA 字面](https://github.com/852wa/JIZURA) (MIT, Copyright (c) 2026 hakoniwa) is a browser app that auto-builds 文字PV lyric-motion videos: give it lyrics (+ LRC times) and a song, and it plans cuts from ~860 parts in 10 groups (layout, ent

skills/vocaloid-style-mv/references/09-qa-and-lessons.md

  • Network accessline 64
    | Engine | WebGL in headless falls back to SwiftShader | Edge/Chrome channel + `--use-angle=d3d11 --enable-gpu --ignore-gpu-blocklist`; check `renderer` in `window.ready` | | Render | progress can't be seen when output is piped | sample seg
  • Network accessline 66
    | Upload | an ad link matched a loose URL regex → script stopped while the last file was at 47 % | strict pattern `https://NN.gigafile.nu/MMDD-<hash>`; verify each link's page (name + size) before sending |

skills/vocaloid-style-mv/references/effect-cookbook.md

  • Network accessline 5
    Condensed from the 残光 style bible ([examples/zanko/STYLE_RESEARCH.md](https://github.com/EGSECDA/vocaloid-style-mv-pipeline/blob/main/examples/zanko/STYLE_RESEARCH.md) in the kit repo — not inside the installed skill; 94 recipes with GLSL/J

skills/vocaloid-style-mv/scripts/check_env.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 98
    good = rc == 0 and m and int(m.group(1)) >= MIN_NODE     R.add("REQUIRED", "node", good, ver or "not found",           "" if good else f"install Node.js {MIN_NODE}+ (https://nodejs.org)")
  • Network accessline 99
    R.add("REQUIRED", "node", good, ver or "not found",           "" if good else f"install Node.js {MIN_NODE}+ (https://nodejs.org)")     npm = shutil.which("npm")
  • Network accessline 100
    "" if good else f"install Node.js {MIN_NODE}+ (https://nodejs.org)")
  • Network accessline 108
    good = v[:2] >= MIN_PY     R.add("REQUIRED", "python", good, f"{platform.python_version()}  ({sys.executable})",           "" if good else "install Python 3.10+ (https://www.python.org)")
  • Network accessline 109
    R.add("REQUIRED", "python", good, f"{platform.python_version()}  ({sys.executable})",           "" if good else "install Python 3.10+ (https://www.python.org)")     core = [("librosa", "librosa"), ("numpy", "numpy"), ("scipy", "scipy"), ("s
  • Network accessline 110
    "" if good else "install Python 3.10+ (https://www.python.org)")
  • Access to secretsline 141
    [Credential-related source omitted]
  • Access to secretsline 152
    [Credential-related source omitted]
  • Access to secretsline 153
    [Credential-related source omitted]
  • Network accessline 155
    rc, out = run([exe, "-hide_banner", "-version"]) if exe else (-1, "")     R.add("REQUIRED", "ffmpeg", rc == 0, first_line(out)[:70] if rc == 0 else "not found",           "" if rc == 0 else "install ffmpeg and put it on PATH (or set FFMPEG)
  • Network accessline 156
    R.add("REQUIRED", "ffmpeg", rc == 0, first_line(out)[:70] if rc == 0 else "not found",           "" if rc == 0 else "install ffmpeg and put it on PATH (or set FFMPEG): https://ffmpeg.org")     pexe = shutil.which(fp)
  • Network accessline 157
    "" if rc == 0 else "install ffmpeg and put it on PATH (or set FFMPEG): https://ffmpeg.org")
  • Network accessline 182
    [Credential-related source omitted]
  • Access to secretsline 182
    [Credential-related source omitted]
  • Network accessline 184
    "" if rc == 0 else "setup clones JIZURA with git (https://git-scm.com)")
  • Access to secretsline 196
    [Credential-related source omitted]
  • Access to secretsline 215
    [Credential-related source omitted]
  • Access to secretsline 216
    [Credential-related source omitted]
  • Access to secretsline 225
    [Credential-related source omitted]
  • Access to secretsline 241
    [Credential-related source omitted]
  • Access to secretsline 255
    [Credential-related source omitted]
  • Access to secretsline 274
    [Credential-related source omitted]
  • Access to secretsline 302
    [Credential-related source omitted]

skills/vocaloid-style-mv/scripts/new_project.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 90
    [Credential-related source omitted]

skills/vocaloid-style-mv/template/PROJECT_README.md

  • Network accessline 19
    Setup installs Playwright (`npm install`), the Python packages (`requirements.txt`), downloads the fonts into `engine/fonts/` (~260 MB, Google Fonts, OFL), clones [JIZURA 字面](https://github.com/852wa/JIZURA) into
  • Network accessline 20
    `engine/fonts/` (~260 MB, Google Fonts, OFL), clones [JIZURA 字面](https://github.com/852wa/JIZURA) into
  • Network accessline 55
    trails, a vortex, kanji slams, fireflies forming 蛍, a dawn and a violet end card mean the machine renders correctly (reference: `docs/images/demo_sheet.jpg` in the kit repo, https://github.com/EGSECDA/vocaloid-style-mv-pipeline/blob/main/do
  • Network accessline 56
    (reference: `docs/images/demo_sheet.jpg` in the kit repo, https://github.com/EGSECDA/vocaloid-style-mv-pipeline/blob/main/docs/images/demo_sheet.jpg; it is a 1 s review sheet, so compare it with `render/review/sheet_00.jpg`). See `demo/READ
  • Network accessline 57
    https://github.com/EGSECDA/vocaloid-style-mv-pipeline/blob/main/docs/images/demo_sheet.jpg; it is a 1 s review sheet,
  • Network accessline 150
    - Engine, scenes, tools, demo song and demo lyrics: vocaloid-style-mv-pipeline by **NikusonP**, MIT licence. The demo lyrics   (`demo/lyrics_demo.lrc`) and the synthesized demo song are original and free to use. - [JIZURA 字面](https://github
  • Network accessline 151
    (`demo/lyrics_demo.lrc`) and the synthesized demo song are original and free to use. - [JIZURA 字面](https://github.com/852wa/JIZURA) (c) 2026 hakoniwa (github.com/852wa), MIT — fetched by setup,   not vendored; keep `jizura/app/JIZURA_LICENS
  • Network accessline 152
    - [JIZURA 字面](https://github.com/852wa/JIZURA) (c) 2026 hakoniwa (github.com/852wa), MIT — fetched by setup,

skills/vocaloid-style-mv/template/blender/helpers_selftest.py

  • Executable scriptline 1
    Executable file

skills/vocaloid-style-mv/template/blender/probe_scene.py

  • Executable scriptline 1
    Executable file

skills/vocaloid-style-mv/template/blender/shots/_shared.py

  • Executable scriptline 1
    Executable file

skills/vocaloid-style-mv/template/blender/shots/shotA_street.py

  • Executable scriptline 1
    Executable file

skills/vocaloid-style-mv/template/blender/shots/shotB_crossing.py

  • Executable scriptline 1
    Executable file

skills/vocaloid-style-mv/template/demo/make_demo_song.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/vocaloid-style-mv/template/engine/core/assets.js

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    async function decode(p) {     const res = await fetch(url(p));
  • Network accessline 15
    const res = await fetch(url(p));

skills/vocaloid-style-mv/template/engine/core/draw.js

  • Executable scriptline 1
    Executable file

skills/vocaloid-style-mv/template/engine/core/gl.js

  • Executable scriptline 1
    Executable file

skills/vocaloid-style-mv/template/engine/core/main.js

  • Executable scriptline 1
    Executable file
  • Network accessline 30
    const loadJSON = async p => { const r = await fetch(Z.ROOT + p); if (!r.ok) throw new Error(p + ' ' + r.status); return JSON.parse((await r.text()).replace(/^<U+FEFF>/, '')); };
  • Possible obfuscationline 30
    const loadJSON = async p => { const r = await fetch(Z.ROOT + p); if (!r.ok) throw new Error(p + ' ' + r.status); return JSON.parse((await r.text()).replace(/^<U+FEFF>/, '')); };

skills/vocaloid-style-mv/template/engine/core/trans.js

  • Executable scriptline 1
    Executable file

skills/vocaloid-style-mv/template/engine/core/util.js

  • Executable scriptline 1
    Executable file

skills/vocaloid-style-mv/template/engine/fonts/OFL_delagothicone.txt

  • Network accessline 1
    Copyright 2020 The Dela Gothic Project Authors (https://github.com/syakuzen/DelaGothic)
  • Network accessline 3
    This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: https://openfontlicense.org
  • Network accessline 5
    https://openfontlicense.org

skills/vocaloid-style-mv/template/engine/fonts/OFL_dotgothic16.txt

  • Network accessline 1
    Copyright 2020 The DotGothic16 Project Authors (https://github.com/fontworks-fonts/DotGothic16)
  • Network accessline 3
    This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
  • Network accessline 5
    http://scripts.sil.org/OFL

skills/vocaloid-style-mv/template/engine/fonts/OFL_kaiseitokumin.txt

  • Network accessline 1
    Copyright 2020 The Kaisei Project Authors (https://github.com/Font-Kai/Kaisei)
  • Network accessline 3
    This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: https://scripts.sil.org/OFL
  • Network accessline 5
    https://scripts.sil.org/OFL

skills/vocaloid-style-mv/template/engine/fonts/OFL_kleeone.txt

  • Network accessline 1
    Copyright 2020 The Klee Project Authors (https://github.com/fontworks-fonts/Klee)
  • Network accessline 3
    This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: https://scripts.sil.org/OFL
  • Network accessline 5
    https://scripts.sil.org/OFL

skills/vocaloid-style-mv/template/engine/fonts/OFL_mplusrounded1c.txt

  • Network accessline 3
    This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
  • Network accessline 5
    http://scripts.sil.org/OFL

skills/vocaloid-style-mv/template/engine/fonts/OFL_notosansjp.txt

  • Network accessline 1
    Copyright 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'
  • Network accessline 3
    This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: https://scripts.sil.org/OFL
  • Network accessline 5
    https://scripts.sil.org/OFL

skills/vocaloid-style-mv/template/engine/fonts/OFL_notosanssc.txt

  • Network accessline 1
    Copyright 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'
  • Network accessline 3
    This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: https://scripts.sil.org/OFL
  • Network accessline 5
    https://scripts.sil.org/OFL

skills/vocaloid-style-mv/template/engine/fonts/OFL_notoserifjp.txt

  • Network accessline 6
    This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
  • Network accessline 7
    http://scripts.sil.org/OFL

skills/vocaloid-style-mv/template/engine/fonts/OFL_notoserifsc.txt

  • Network accessline 6
    This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
  • Network accessline 7
    http://scripts.sil.org/OFL

skills/vocaloid-style-mv/template/engine/fonts/OFL_rampartone.txt

  • Network accessline 1
    Copyright 2020 The Rampart Project Authors (https://github.com/fontworks-fonts/Rampart)
  • Network accessline 3
    This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
  • Network accessline 5
    http://scripts.sil.org/OFL

skills/vocaloid-style-mv/template/engine/fonts/OFL_reggaeone.txt

  • Network accessline 1
    Copyright 2020 The Reggae Project Authors (https://github.com/fontworks-fonts/Reggae)
  • Network accessline 3
    This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: https://scripts.sil.org/OFL
  • Network accessline 5
    https://scripts.sil.org/OFL

skills/vocaloid-style-mv/template/engine/fonts/OFL_shipporiminchob1.txt

  • Network accessline 1
    Copyright 2021 The Shippori Mincho Project Authors (https://github.com/fontdasu/ShipporiMincho)
  • Network accessline 3
    This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
  • Network accessline 5
    http://scripts.sil.org/OFL

skills/vocaloid-style-mv/template/engine/fonts/OFL_yujisyuku.txt

  • Network accessline 1
    Copyright 2021 The Yuji Project Authors (https://github.com/Kinutafontfactory/Yuji)
  • Network accessline 3
    This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
  • Network accessline 5
    http://scripts.sil.org/OFL

skills/vocaloid-style-mv/template/engine/fonts/OFL_zenkakugothicnew.txt

  • Network accessline 1
    Copyright 2022 The Zen Kaku Gothic Project Authors (https://github.com/googlefonts/zen-kakugothic)
  • Network accessline 3
    This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
  • Network accessline 5
    http://scripts.sil.org/OFL

skills/vocaloid-style-mv/template/engine/fonts/OFL_zenoldmincho.txt

  • Network accessline 1
    Copyright 2021 The Zen Old Mincho Project Authors (https://github.com/googlefonts/zen-oldmincho)
  • Network accessline 3
    This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
  • Network accessline 5
    http://scripts.sil.org/OFL

skills/vocaloid-style-mv/template/engine/fonts/fonts.js

  • Executable scriptline 1
    Executable file

skills/vocaloid-style-mv/template/engine/scenes/dark.js

  • Executable scriptline 1
    Executable file
  • Network accessline 4
    *   fall   {char, freeze:[[t0,t1]], pulse:[t], vp:[x,y], speed, h}        shot 12   falling toward a tiny square of dawn; time-freeze on the stop  *   flame  {mode:'breathe'|'grow'|'dark', img, face, stops:[[t0,t1]], flameAt, zoomAt, zoomTo
  • Network accessline 5
    *   flame  {mode:'breathe'|'grow'|'dark', img, face, stops:[[t0,t1]], flameAt, zoomAt, zoomTo, igniteAt}   shots 15 / 31 / 50  *   ink    {char, seed, h, x, y}                                          shot 46   sumi tendrils curl around her
  • Network accessline 6
    *   ink    {char, seed, h, x, y}                                          shot 46   sumi tendrils curl around her in a pale fog void
  • Network accessline 760
    // 46 · ink — 「絶望の形を抱きしめたまま」   // A pale fog void. Sumi tendrils grow from the edges and the ground (12 fps, lurching forward on every beat), reach   // for her and curl into fern-like croziers just short of her; two pass behind her, so the
  • Network accessline 761
    // A pale fog void. Sumi tendrils grow from the edges and the ground (12 fps, lurching forward on every beat), reach   // for her and curl into fern-like croziers just short of her; two pass behind her, so they read as wrapping around   // 
  • Network accessline 762
    // for her and curl into fern-like croziers just short of her; two pass behind her, so they read as wrapping around
  • Network accessline 774
    // [control points, curl dir, crozier radius, turns, base width, delay, dur]
  • Network accessline 779
    // reachers (curl short of her)

skills/vocaloid-style-mv/template/engine/scenes/glass.js

  • Executable scriptline 1
    Executable file
  • Network accessline 823
    const nc = Z.canvas(SW, SH), nx = nc.getContext('2d'), RS = Z.rng(seed + 9);

skills/vocaloid-style-mv/template/engine/scenes/intro.js

  • Executable scriptline 1
    Executable file
  • Network accessline 253
    const cyc = Math.floor((t + ph) / life), age = t + ph - cyc * life, k = age / life;       const r = j => Z.rnd(i, cyc, seed + j);       const vx = (r(2) - 0.5) * (o.vx ?? 50), vy = -(o.rise ?? 1) * (26 + 70 * r(3)), curl = 6 + 20 * r(4), w 
  • Network accessline 254
    const r = j => Z.rnd(i, cyc, seed + j);       const vx = (r(2) - 0.5) * (o.vx ?? 50), vy = -(o.rise ?? 1) * (26 + 70 * r(3)), curl = 6 + 20 * r(4), w = 2 + 3 * r(5), sx = (r(6) - 0.5) * (o.spread ?? 20);       const pos = a => [o.x + sx + v
  • Network accessline 255
    const vx = (r(2) - 0.5) * (o.vx ?? 50), vy = -(o.rise ?? 1) * (26 + 70 * r(3)), curl = 6 + 20 * r(4), w = 2 + 3 * r(5), sx = (r(6) - 0.5) * (o.spread ?? 20);
  • Network accessline 256
    const pos = a => [o.x + sx + vx * a + Math.sin(a * w + r(7) * 6) * curl * a, o.y + vy * a - 9 * a * a];

skills/vocaloid-style-mv/template/engine/scenes/memory.js

  • Executable scriptline 1
    Executable file
  • Network accessline 593
    const rot = Z.rnds(f.k, 11) * 5 * a + f.k;       const al = Math.pow(1 - k, 1.2);       const curl = 0.35 + 0.55 * Math.abs(Math.sin(a * 3.2 + f.k));      // flakes curl and flip as they rise
  • Network accessline 594
    const al = Math.pow(1 - k, 1.2);       const curl = 0.35 + 0.55 * Math.abs(Math.sin(a * 3.2 + f.k));      // flakes curl and flip as they rise       ctx.save(); ctx.translate(x, y); ctx.rotate(rot); ctx.scale(sc, sc * curl);
  • Network accessline 595
    const curl = 0.35 + 0.55 * Math.abs(Math.sin(a * 3.2 + f.k));      // flakes curl and flip as they rise
  • Network accessline 850
    if (hw > 0.05) {       const nc = 4, gap = 0.055, cw = (2 * hw) / nc;
  • Network accessline 851
    const nc = 4, gap = 0.055, cw = (2 * hw) / nc;
  • Network accessline 1112
    const hw = 1.15, rowL = 1.0, nc = 4, gap = 0.055, cw = (2 * hw) / nc;

skills/vocaloid-style-mv/template/engine/scenes/meta.js

  • Executable scriptline 1
    Executable file

skills/vocaloid-style-mv/template/engine/scenes/night.js

  • Executable scriptline 1
    Executable file

skills/vocaloid-style-mv/template/engine/scenes/scenes.js

  • Executable scriptline 1
    Executable file

skills/vocaloid-style-mv/template/engine/scenes/typo.js

  • Executable scriptline 1
    Executable file

skills/vocaloid-style-mv/template/engine/timeline.js

  • Executable scriptline 1
    Executable file
  • Network accessline 171
    let lrc = '';     try { const r = await fetch(Z.ROOT + 'analysis/lyrics_mv.lrc'); if (r.ok) lrc = await r.text(); } catch (e) { /* no lyrics yet */ }
  • Network accessline 172
    try { const r = await fetch(Z.ROOT + 'analysis/lyrics_mv.lrc'); if (r.ok) lrc = await r.text(); } catch (e) { /* no lyrics yet */ }
  • Possible obfuscationline 174
    lrc = lrc.replace(/^<U+FEFF>/, '').replace(/^\[ti:.*\]\s*$/m, '');   // no [ti:]: JIZURA would add its own title card

skills/vocaloid-style-mv/template/engine/vertical.js

  • Executable scriptline 1
    Executable file

skills/vocaloid-style-mv/template/jizura/app/engine.html

  • Network accessline 7
    Used (a) headless by tools/jizura_probe.mjs and (b) as a same-origin iframe by host_iframe.html.      API: window.JZ (see jizura_adapter.js), plus window.renderAt(t, mode) -> canvas for iframe hosts. --> <link rel="preconnect" href="https:/
  • Network accessline 8
    API: window.JZ (see jizura_adapter.js), plus window.renderAt(t, mode) -> canvas for iframe hosts. --> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  • Network accessline 9
    <link rel="preconnect" href="https://fonts.googleapis.com">
  • Network accessline 10
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>

skills/vocaloid-style-mv/template/jizura/app/jizura_adapter.js

  • Executable scriptline 1
    Executable file
  • Network accessline 127
    async analyzeAudioUrl(url) {       const blob = await (await fetch(url)).blob();
  • Network accessline 128
    const blob = await (await fetch(url)).blob();

skills/vocaloid-style-mv/template/package.json

  • Executable scriptline 1
    Executable file
  • Network accessline 17
    "fonts": "python tools/fetch_fonts.py",     "browser:install": "playwright install chromium",     "jizura:clone": "node -e \"const g=a=>{const r=require('node:child_process').spawnSync('git',a,{stdio:'inherit'});if(r.status!==0)process.exit
  • Network accessline 18
    "browser:install": "playwright install chromium",     "jizura:clone": "node -e \"const g=a=>{const r=require('node:child_process').spawnSync('git',a,{stdio:'inherit'});if(r.status!==0)process.exit(r.status===null?1:r.status)};const d=proces
  • Network accessline 19
    "jizura:clone": "node -e \"const g=a=>{const r=require('node:child_process').spawnSync('git',a,{stdio:'inherit'});if(r.status!==0)process.exit(r.status===null?1:r.status)};const d=process.env.JIZURA_DIR||'vendor/JIZURA',ref=process.env.JIZU

skills/vocaloid-style-mv/template/requirements.txt

  • Network accessline 23
    # Forced alignment (tools/transcribe_align_mms.py) also needs CPU torch + torchaudio 2.8. Keep them out of the main # site-packages (large); the tool finds this folder automatically (or set TORCH_DEPS_DIR): #   python -m pip install --targe
  • Network accessline 24
    # site-packages (large); the tool finds this folder automatically (or set TORCH_DEPS_DIR): #   python -m pip install --target vendor/pydeps_torch torch==2.8.0 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cpu # GPU Whisper 
  • Network accessline 25
    #   python -m pip install --target vendor/pydeps_torch torch==2.8.0 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cpu

skills/vocaloid-style-mv/template/setup.ps1

  • Executable scriptline 1
    Executable file
  • Network accessline 63
    Write-Step "vocaloid-style-mv setup in $Root"   foreach ($tool in 'node', 'npm') {     if (-not (Get-Command $tool -ErrorAction SilentlyContinue)) { throw "$tool not found: install Node.js 20+ (https://nodejs.org) and re-run" }
  • Network accessline 64
    foreach ($tool in 'node', 'npm') {     if (-not (Get-Command $tool -ErrorAction SilentlyContinue)) { throw "$tool not found: install Node.js 20+ (https://nodejs.org) and re-run" }   }
  • Network accessline 65
    if (-not (Get-Command $tool -ErrorAction SilentlyContinue)) { throw "$tool not found: install Node.js 20+ (https://nodejs.org) and re-run" }
  • Network accessline 69
    Write-Ok "node $nodeVer"   $Py = Find-Python   if (-not $Py) { throw 'Python 3.10+ not found: install it from https://www.python.org (tick "Add to PATH") or set $env:PYTHON' }
  • Network accessline 70
    $Py = Find-Python   if (-not $Py) { throw 'Python 3.10+ not found: install it from https://www.python.org (tick "Add to PATH") or set $env:PYTHON' }   $PyExe = $Py[0]; $PyPre = @(); if ($Py.Count -gt 1) { $PyPre = $Py[1..($Py.Count - 1)] }
  • Network accessline 71
    if (-not $Py) { throw 'Python 3.10+ not found: install it from https://www.python.org (tick "Add to PATH") or set $env:PYTHON' }
  • Network accessline 154
    }   } else {     if (-not (Get-Command git -ErrorAction SilentlyContinue)) { throw 'git not found: install Git (https://git-scm.com) or clone JIZURA yourself and set $env:JIZURA_DIR' }
  • Network accessline 155
    } else {     if (-not (Get-Command git -ErrorAction SilentlyContinue)) { throw 'git not found: install Git (https://git-scm.com) or clone JIZURA yourself and set $env:JIZURA_DIR' }     New-Item -ItemType Directory -Force -Path (Split-Path -
  • Network accessline 156
    if (-not (Get-Command git -ErrorAction SilentlyContinue)) { throw 'git not found: install Git (https://git-scm.com) or clone JIZURA yourself and set $env:JIZURA_DIR' }
  • Network accessline 158
    Write-Host "   fetching https://github.com/852wa/JIZURA @ $jzRef$(if ($jzRef -eq $JzPin) { ' (tested commit)' })"
  • Network accessline 160
    Invoke-Native 'git init' 'git' @('init', '-q', $jz)     Invoke-Native 'git config' 'git' @('-C', $jz, 'config', 'remote.origin.url', 'https://github.com/852wa/JIZURA')     Invoke-Native 'git config' 'git' @('-C', $jz, 'config', 'remote.orig
  • Network accessline 161
    Invoke-Native 'git config' 'git' @('-C', $jz, 'config', 'remote.origin.url', 'https://github.com/852wa/JIZURA')     Invoke-Native 'git config' 'git' @('-C', $jz, 'config', 'remote.origin.fetch', '+refs/heads/*:refs/remotes/origin/*')     tr
  • Network accessline 178
    } else {       foreach ($tool in 'ffmpeg', 'ffprobe') {         if (Get-Command $tool -ErrorAction SilentlyContinue) { Write-Ok "$tool found" } else { Write-Note "$tool not on PATH (REQUIRED for rendering): https://ffmpeg.org" }
  • Network accessline 179
    foreach ($tool in 'ffmpeg', 'ffprobe') {         if (Get-Command $tool -ErrorAction SilentlyContinue) { Write-Ok "$tool found" } else { Write-Note "$tool not on PATH (REQUIRED for rendering): https://ffmpeg.org" }       }
  • Network accessline 180
    if (Get-Command $tool -ErrorAction SilentlyContinue) { Write-Ok "$tool found" } else { Write-Note "$tool not on PATH (REQUIRED for rendering): https://ffmpeg.org" }

skills/vocaloid-style-mv/template/setup.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 67
    step "vocaloid-style-mv setup in $ROOT" have node || die "node not found: install Node.js 20+ (https://nodejs.org)"
  • Network accessline 68
    have node || die "node not found: install Node.js 20+ (https://nodejs.org)"
  • Network accessline 69
    have npm || die "npm not found: install Node.js 20+ (https://nodejs.org)"
  • Network accessline 170
    fi else   have git || die "git not found: install Git, or clone https://github.com/852wa/JIZURA yourself and set JIZURA_DIR"
  • Network accessline 171
    else   have git || die "git not found: install Git, or clone https://github.com/852wa/JIZURA yourself and set JIZURA_DIR"   mkdir -p "$(dirname "$JZ")"
  • Network accessline 172
    have git || die "git not found: install Git, or clone https://github.com/852wa/JIZURA yourself and set JIZURA_DIR"
  • Network accessline 173
    mkdir -p "$(dirname "$JZ")"   JZ_TESTED=""; [ "$JZ_REF" = "$JZ_PIN" ] && JZ_TESTED=" (tested commit)"   echo "   fetching https://github.com/852wa/JIZURA @ $JZ_REF$JZ_TESTED"
  • Network accessline 175
    echo "   fetching https://github.com/852wa/JIZURA @ $JZ_REF$JZ_TESTED"
  • Network accessline 177
    run git init -q "$JZ"   run git -C "$JZ" config remote.origin.url https://github.com/852wa/JIZURA   run git -C "$JZ" config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'
  • Network accessline 178
    run git -C "$JZ" config remote.origin.url https://github.com/852wa/JIZURA   run git -C "$JZ" config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'   printf '%s   > git -C %s fetch --depth 1 origin %s%s\n' "$C_DIM" "$JZ" "$JZ_REF"
  • Network accessline 198
    "${PY[@]}" "${CARGS[@]}" || note "check_env reported a missing REQUIRED item (see above)"   else     for t in ffmpeg ffprobe; do if have "$t"; then ok "$t found"; else note "$t not on PATH (REQUIRED for rendering): https://ffmpeg.org"; fi; 
  • Network accessline 199
    else     for t in ffmpeg ffprobe; do if have "$t"; then ok "$t found"; else note "$t not on PATH (REQUIRED for rendering): https://ffmpeg.org"; fi; done   fi
  • Network accessline 200
    for t in ffmpeg ffprobe; do if have "$t"; then ok "$t found"; else note "$t not on PATH (REQUIRED for rendering): https://ffmpeg.org"; fi; done

skills/vocaloid-style-mv/template/tools/alpha_matte.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/vocaloid-style-mv/template/tools/analyze_audio.py

  • Executable scriptline 1
    #!/usr/bin/env python
  • Dangerous shell operationline 427
    Rm = X.T @ X

skills/vocaloid-style-mv/template/tools/blender_common.py

  • Executable scriptline 1
    Executable file
  • Network accessline 19
    Blender 5.1 API facts this module relies on (verified by probes, see examples/zanko/BLENDER_RECIPE.md in the kit repo, https://github.com/EGSECDA/vocaloid-style-mv-pipeline/tree/main/examples/zanko):
  • Network accessline 20
    https://github.com/EGSECDA/vocaloid-style-mv-pipeline/tree/main/examples/zanko):

skills/vocaloid-style-mv/template/tools/blender_run.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/vocaloid-style-mv/template/tools/build_jizura_bundle.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/vocaloid-style-mv/template/tools/fetch_fonts.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 42
    def api_list(d):     url = f"https://api.github.com/repos/google/fonts/contents/ofl/{d}"
  • Network accessline 43
    url = f"https://api.github.com/repos/google/fonts/contents/ofl/{d}"
  • Access to secretsline 44
    [Credential-related source omitted]
  • Network accessline 46
    if tok:         hdr["Authorization"] = "Bearer " + tok     with urllib.request.urlopen(urllib.request.Request(url, headers=hdr), timeout=60) as r:
  • Network accessline 47
    hdr["Authorization"] = "Bearer " + tok     with urllib.request.urlopen(urllib.request.Request(url, headers=hdr), timeout=60) as r:         return json.load(r)
  • Network accessline 48
    with urllib.request.urlopen(urllib.request.Request(url, headers=hdr), timeout=60) as r:
  • Network accessline 66
    return dst, "skip"     tmp = dst + ".part"     with urllib.request.urlopen(urllib.request.Request(url, headers=UA), timeout=600) as r, open(tmp, "wb") as f:
  • Network accessline 67
    tmp = dst + ".part"     with urllib.request.urlopen(urllib.request.Request(url, headers=UA), timeout=600) as r, open(tmp, "wb") as f:         while True:
  • Network accessline 68
    with urllib.request.urlopen(urllib.request.Request(url, headers=UA), timeout=600) as r, open(tmp, "wb") as f:

skills/vocaloid-style-mv/template/tools/gigafile_upload.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 29
    const browser = await launchBrowser({ headless: true }); const page = await browser.newPage({ viewport: { width: 1400, height: 1000 } }); await page.goto('https://gigafile.nu/', { waitUntil: 'domcontentloaded', timeout: 90000 });
  • Network accessline 30
    const page = await browser.newPage({ viewport: { width: 1400, height: 1000 } }); await page.goto('https://gigafile.nu/', { waitUntil: 'domcontentloaded', timeout: 90000 }); await page.waitForTimeout(3000);
  • Network accessline 31
    await page.goto('https://gigafile.nu/', { waitUntil: 'domcontentloaded', timeout: 90000 });

skills/vocaloid-style-mv/template/tools/imagegen.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 47
    [Credential-related source omitted]

skills/vocaloid-style-mv/template/tools/jizura_parts.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/vocaloid-style-mv/template/tools/jizura_probe.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Possible obfuscationline 36
    ? JSON.parse(fs.readFileSync(audioJson, 'utf8').replace(/^<U+FEFF>/, ''))

skills/vocaloid-style-mv/template/tools/jizura_serve.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 53
    return new Promise((ok, fail) => {     server.once('error', fail);     server.listen(port, host, () => { const a = server.address(); ok({ server, port: a.port, origin: `http://${host}:${a.port}`, close: () => new Promise(r => server.close(r
  • Network accessline 54
    server.once('error', fail);     server.listen(port, host, () => { const a = server.address(); ok({ server, port: a.port, origin: `http://${host}:${a.port}`, close: () => new Promise(r => server.close(r)) }); });   });
  • Network accessline 55
    server.listen(port, host, () => { const a = server.address(); ok({ server, port: a.port, origin: `http://${host}:${a.port}`, close: () => new Promise(r => server.close(r)) }); });

skills/vocaloid-style-mv/template/tools/jz_cuts_at.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 25
    const browser = await launchBrowser({ headless: true, args: gpuArgs() }); const page = await browser.newPage(); await page.goto(`http://127.0.0.1:${server.address().port}/${pageUrl.replace(/^\/+/, '')}`);
  • Network accessline 26
    const page = await browser.newPage(); await page.goto(`http://127.0.0.1:${server.address().port}/${pageUrl.replace(/^\/+/, '')}`); await page.evaluate(() => window.ready);
  • Network accessline 27
    await page.goto(`http://127.0.0.1:${server.address().port}/${pageUrl.replace(/^\/+/, '')}`);

skills/vocaloid-style-mv/template/tools/kit_env.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/vocaloid-style-mv/template/tools/kit_env.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 44
    [Credential-related source omitted]
  • Access to secretsline 45
    [Credential-related source omitted]
  • Access to secretsline 81
    [Credential-related source omitted]
  • Access to secretsline 92
    [Credential-related source omitted]
  • Network accessline 98
    return str(c)     if required:         raise FileNotFoundError("Codex CLI not found: install it (https://github.com/openai/codex) or set CODEX_BIN "
  • Network accessline 99
    if required:         raise FileNotFoundError("Codex CLI not found: install it (https://github.com/openai/codex) or set CODEX_BIN "                                 "to the codex executable")
  • Network accessline 100
    raise FileNotFoundError("Codex CLI not found: install it (https://github.com/openai/codex) or set CODEX_BIN "
  • Access to secretsline 119
    [Credential-related source omitted]
  • Access to secretsline 123
    [Credential-related source omitted]
  • Access to secretsline 137
    [Credential-related source omitted]
  • Access to secretsline 157
    [Credential-related source omitted]
  • Access to secretsline 163
    [Credential-related source omitted]
  • Access to secretsline 165
    [Credential-related source omitted]
  • Access to secretsline 166
    [Credential-related source omitted]
  • Access to secretsline 238
    [Credential-related source omitted]

skills/vocaloid-style-mv/template/tools/preview_style_fx.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 5
    //   node tools/preview_style_fx.mjs [--md docs/STYLE_RESEARCH.md] [--out docs/style_fx_preview.png] // The cookbook is examples/zanko/STYLE_RESEARCH.md in the kit repo (not in the installed skill folder; online: // https://raw.githubuserco
  • Network accessline 6
    // The cookbook is examples/zanko/STYLE_RESEARCH.md in the kit repo (not in the installed skill folder; online: // https://raw.githubusercontent.com/EGSECDA/vocaloid-style-mv-pipeline/main/examples/zanko/STYLE_RESEARCH.md); // copy it to do
  • Network accessline 7
    // https://raw.githubusercontent.com/EGSECDA/vocaloid-style-mv-pipeline/main/examples/zanko/STYLE_RESEARCH.md);
  • Network accessline 22
    const outPath = path.resolve(ROOT, cliArg('out', 'docs/style_fx_preview.png')); if (!fs.existsSync(mdPath)) {   console.error(`style cookbook not found: ${mdPath}\n  copy <kit repo>/examples/zanko/STYLE_RESEARCH.md to docs/ or pass --md <pa
  • Network accessline 23
    if (!fs.existsSync(mdPath)) {   console.error(`style cookbook not found: ${mdPath}\n  copy <kit repo>/examples/zanko/STYLE_RESEARCH.md to docs/ or pass --md <path>\n  (online: https://raw.githubusercontent.com/EGSECDA/vocaloid-style-mv-pipe
  • Network accessline 24
    console.error(`style cookbook not found: ${mdPath}\n  copy <kit repo>/examples/zanko/STYLE_RESEARCH.md to docs/ or pass --md <path>\n  (online: https://raw.githubusercontent.com/EGSECDA/vocaloid-style-mv-pipeline/main/examples/zanko/STYLE_R

skills/vocaloid-style-mv/template/tools/render_final.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/vocaloid-style-mv/template/tools/render_final.ps1

  • Executable scriptline 1
    Executable file

skills/vocaloid-style-mv/template/tools/render_frames.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 109
    res.setHeader('Cache-Control', 'no-store');     if (req.method === 'OPTIONS') { res.writeHead(204); return res.end(); }     const u = new URL(req.url, 'http://x');
  • Network accessline 110
    if (req.method === 'OPTIONS') { res.writeHead(204); return res.end(); }     const u = new URL(req.url, 'http://x');     if (u.pathname.startsWith('/__cap/')) {
  • Network accessline 111
    const u = new URL(req.url, 'http://x');
  • Network accessline 237
    const p = (async () => {       for (let k = 1; ; k++) {         try { const r = await fetch(url, { method: 'POST', body }); if (r.ok) return; throw new Error('HTTP ' + r.status); }
  • Network accessline 238
    for (let k = 1; ; k++) {         try { const r = await fetch(url, { method: 'POST', body }); if (r.ok) return; throw new Error('HTTP ' + r.status); }         catch (e) {
  • Network accessline 239
    try { const r = await fetch(url, { method: 'POST', body }); if (r.ok) return; throw new Error('HTTP ' + r.status); }
  • Network accessline 328
    const server = await startServer(a.root, sinks);   const port = server.address().port;   const endpoint = `http://127.0.0.1:${port}`;
  • Network accessline 329
    const port = server.address().port;   const endpoint = `http://127.0.0.1:${port}`;   let url = a.url;
  • Network accessline 330
    const endpoint = `http://127.0.0.1:${port}`;

skills/vocaloid-style-mv/template/tools/review_sheets.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/vocaloid-style-mv/template/tools/stills.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 40
    }); await new Promise(r => server.listen(0, '127.0.0.1', r)); const origin = `http://127.0.0.1:${server.address().port}`;
  • Network accessline 41
    await new Promise(r => server.listen(0, '127.0.0.1', r)); const origin = `http://127.0.0.1:${server.address().port}`; const browser = await launchBrowser({ headless: true, args: [...gpuArgs(), '--enable-gpu-rasterization'] });
  • Network accessline 42
    const origin = `http://127.0.0.1:${server.address().port}`;

skills/vocaloid-style-mv/template/tools/style_palette_sheet.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/vocaloid-style-mv/template/tools/transcribe_align_mms.py

  • Executable scriptline 1
    Executable file
  • Network accessline 7
    Requires CPU torch/torchaudio 2.8. Install them into an isolated folder (keeps the main site-packages clean):   python -m pip install --target vendor/pydeps_torch torch==2.8.0 torchaudio==2.8.0 \\          --index-url https://download.pytor
  • Network accessline 8
    python -m pip install --target vendor/pydeps_torch torch==2.8.0 torchaudio==2.8.0 \          --index-url https://download.pytorch.org/whl/cpu
  • Network accessline 9
    --index-url https://download.pytorch.org/whl/cpu
  • Access to secretsline 27
    [Credential-related source omitted]

skills/vocaloid-style-mv/template/tools/transcribe_kana.py

  • Executable scriptline 1
    Executable file

skills/vocaloid-style-mv/template/tools/transcribe_lines.py

  • Executable scriptline 1
    Executable file

skills/vocaloid-style-mv/template/tools/transcribe_onset_probe.py

  • Executable scriptline 1
    Executable file

skills/vocaloid-style-mv/template/tools/transcribe_prep.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/vocaloid-style-mv/template/tools/transcribe_reconcile.py

  • Executable scriptline 1
    Executable file

skills/vocaloid-style-mv/template/tools/transcribe_score.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 43
    [Credential-related source omitted]

skills/vocaloid-style-mv/template/tools/transcribe_separate.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/vocaloid-style-mv/template/tools/transcribe_translation.py

  • Executable scriptline 1
    Executable file

skills/vocaloid-style-mv/template/tools/transcribe_vocal_activity.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/vocaloid-style-mv/template/tools/transcribe_whisper.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/vocaloid-style-mv/template/tools/verify_style_snippets.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 6
    //   node tools/verify_style_snippets.mjs [--md docs/STYLE_RESEARCH.md] // The cookbook is examples/zanko/STYLE_RESEARCH.md in the kit repo (not in the installed skill folder; online: // https://raw.githubusercontent.com/EGSECDA/vocaloid-st
  • Network accessline 7
    // The cookbook is examples/zanko/STYLE_RESEARCH.md in the kit repo (not in the installed skill folder; online: // https://raw.githubusercontent.com/EGSECDA/vocaloid-style-mv-pipeline/main/examples/zanko/STYLE_RESEARCH.md); // copy it to do
  • Network accessline 8
    // https://raw.githubusercontent.com/EGSECDA/vocaloid-style-mv-pipeline/main/examples/zanko/STYLE_RESEARCH.md);
  • Network accessline 24
    const mdPath = path.resolve(ROOT, cliArg('md', 'docs/STYLE_RESEARCH.md')); if (!fs.existsSync(mdPath)) {   console.error(`style cookbook not found: ${mdPath}\n  copy <kit repo>/examples/zanko/STYLE_RESEARCH.md to docs/ or pass --md <path>\n
  • Network accessline 25
    if (!fs.existsSync(mdPath)) {   console.error(`style cookbook not found: ${mdPath}\n  copy <kit repo>/examples/zanko/STYLE_RESEARCH.md to docs/ or pass --md <path>\n  (online: https://raw.githubusercontent.com/EGSECDA/vocaloid-style-mv-pipe
  • Network accessline 26
    console.error(`style cookbook not found: ${mdPath}\n  copy <kit repo>/examples/zanko/STYLE_RESEARCH.md to docs/ or pass --md <path>\n  (online: https://raw.githubusercontent.com/EGSECDA/vocaloid-style-mv-pipeline/main/examples/zanko/STYLE_R

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 8 facts
Signal confidence: 279 facts

and 229 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md skills/vocaloid-style-mv/SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md skills/vocaloid-style-mv/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md skills/vocaloid-style-mv/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md skills/vocaloid-style-mv/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md skills/vocaloid-style-mv/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md skills/vocaloid-style-mv/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.