Open-source project
852wa/JIZURA avatar
852wa/JIZURA

JIZURA builds a kinetic text video from lyrics, with nothing installed

歌詞から文字PVを自動で組み立てるブラウザアプリ

2,062 stars275 forksHTMLMIT

At a glance

What is it?
JIZURA is a browser app that assembles a lyric video from typed-in words, then exports MP4, numbered PNG or transparent PNG without sending anything to a server. The randomness is the point: 860 expression parts and 27 styles reshuffled from a seed.
Who is it for?
JIZURA suits a solo creator who wants a lyric video draft in minutes and refuses to hand lyrics to a server, and the After Effects panel is what lets it join a real production pipeline. It is the wrong tool for pixel-matched brand work, for long songs exported on a phone, or for unattended batch rendering, since the README documents no command line.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 22 days ago.
What is it written in?
Mainly HTML, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The 860 parts a seed actually shuffles

JIZURA is not a text editor with a few presets. Its core is a catalogue of small expression parts, 860 of them, spread across 27 styles. The first public release accounted for 356 parts and 12 styles; a later addition contributed 351 more parts, 12 styles and 6 typefaces. Every render draws a fresh arrangement from that set, which is why pressing the automatic button repeatedly never repeats a look.

The parts are grouped, and the grouping is what gives a draw its character. Mood is the top level: glitch, calm, pop, graphic, editorial and emotional, with horror added when that checkbox is on. Mood then decides how strong the motion is, how much glitch is applied, and which layouts and entrance and exit techniques are eligible. Around that sit the typefaces for headings and the mincho-style frame, the colour scheme, and the cut arrangement seeded per draw.

Mood also gates which parts can appear at all. The horror parts, 52 of them plus three colour sets such as ruins, a late night recording and a cursed letter, appear only when the drawn mood is horror, and the README states plainly that no gore or injury imagery is included. The 51 kinetic parts move word by word, and when beats are detected the word switches snap to them.

The consequence for a user is that the randomiser is steerable without being predictable. Switching the mood theme to lyric video, kinetic, Japanese style, horror, pop or ballad constrains the draw to that direction, and global checkboxes decide whether later-added parts, Japanese-style graphics, text-only parts and kinetic parts may be picked.

Punctuation that carries structure: slash, asterisk, pipe, bang

Timing comes from the audio and the audio comes from the user, so almost all the structure of a JIZURA video has to live in the lyric field. One line is one phrase. A small set of characters does real work.

text
夜明けの色を/覚えてる
*透明*
歌詞|注釈
夜明けの色を!
[01:23.45]歌詞
[間奏 8]

A slash marks where a cut happens inside a line. Asterisks flag a word as emphasis, which makes large impact treatments more likely to be chosen for it. A pipe sends the text after it into a smaller annotation layout. A trailing exclamation adds a flash and a shake. A timestamp in square brackets is used as written, and lines with no time stay where you put them, between the surrounding timestamps.

An interlude marker holds the screen without lyric. `[間奏 8]` gives eight seconds of background, decoration and screen effect only, and shows the track name and artist small once it runs past six seconds. Leaving the number out gives four seconds, and `[interlude]`, `[间奏]` and `[간주]` work the same way, which matters for a user whose keyboard layout does not make typing kanji easy. An LRC file can be loaded straight into the lyric field through the button at its top right, replacing the current text, with an undo button to put the previous lyrics back.

Everything above is syntax. Where the words go and how they move is decided later, which is the design decision the rest of the app is built around.

Opening the app, loading a track, and letting it find the beats

There is nothing to install. The entry point is a hosted page, and the README also distributes a single prebuilt index.html that can be downloaded and opened locally. Lyrics, the track and export all run inside the browser; only Google Fonts are fetched externally, and only the typefaces the current configuration needs.

text
https://852wa.github.io/JIZURA/

The page opens in easy mode, and a switch at the top right moves between easy and advanced. On a phone the third option is a phone mode. In easy mode the prominent control is the automatic button, also bound to the keyboard key `R`, which reshuffles style, mood, motion, colour scheme and cut arrangement in one move and plays from the beginning. Arrows beside it step between the previous and next proposal, so a direction you liked can be returned to and exported. A partial button rerolls one slice of the current proposal while keeping the rest, either style, colours, mood, or the combination of layout and motion.

Loading an audio file makes the app detect BPM and beats and pull cut points onto them. The track is then saved in that browser and reloaded automatically when the page is reopened, which the README gives as the reason: so that audio does not go missing from an export. That storage is per browser, which is also why the same track is not waiting for you on another device.

When the automatic detection is wrong, tap sync is the fallback. The track plays, you press Space at the moment each line starts, and Backspace or a step-back control corrects a miss. A circle control in the line list restarts tapping from that line while keeping earlier timings. During tapping the playback speed can drop to 0.75x or 0.5x for listening, while the stored times remain the track's real times. Seconds in the line list can also be edited directly, and out-of-order values are corrected rather than accepted.

Export paths and the WebCodecs ceiling

Export is where browser-first design meets hard platform limits, and the README is specific about them. MP4 with audio, numbered PNG and transparent PNG are all offered, and the output can be rendered as green screen or black background so the file works as compositing material rather than a finished video. A JSON configuration that After Effects can edit can be written out alongside.

MP4 output needs WebCodecs. Chrome and Edge are the recommended browsers. Safari 16.4 and later and Firefox 130 and later also support WebCodecs, but whether H.264 can be written depends on the browser and the operating system. Where that path is unavailable, preview and numbered PNG export still work, so the failure is partial rather than total.

Phone mode changes the defaults to reduce failures. The first export resolution is 720p, and even if a higher resolution is selected, phone mode exports at 1080p; larger sizes live in advanced mode. The screen is kept awake during export, and switching to another app mid-export no longer counts as a failure. Where the browser supports it, a share-and-save path opens afterwards.

Output settings include the aspect ratios 16:9, 9:16, 4:3, 3:4, 1:1, 4:5 and 21:9, resolutions from 720p to 4K, and 24, 30 or 60 fps. By default the output uses the diagram's natural dimensions, and explicit width and height can be forced when a specific pixel size is needed.

The After Effects panel is the real integration surface

A browser page is not a production tool on its own, and the author knows it. Two After Effects builds ship alongside the web app: a script panel as `JIZURA_AE.jsx`, which you obtain by right clicking the link and saving the target, and a CEP panel as `JIZURA_CEP.zip`, which you unpack and run an install file. The CEP build is the one that reuses the browser interface as-is inside After Effects, which keeps the familiar layout rather than reimplementing it as an AE panel.

For editing after the fact, per-row controls matter as much as the random draw. A row can be locked, and a locked row keeps its layout, motion, decoration, colours and cut split when other rows are rerolled, when the shuffle control runs, and when the automatic button fires. A row can be split into a chosen number of cuts, from automatic to one through six. The advanced mode exposes a per-cut start time field: entering a number pins it, clearing it returns to automatic. A timeline ruler above the lines can be dragged to move a line start, snapping to beats unless Shift is held for free placement, with plus, minus and the wheel to zoom and Shift plus wheel to pan. Lyric and timing edits are undoable with Ctrl+Z.

The README documents no command line, headless mode or batch export.

A 0.x project with no releases, and what the licence covers

The version is v0.9.0 with a change record in `CHANGELOG.md`, and the repository publishes no GitHub releases, so there is no tag history to pin a build against. The last push was on 2026-10-01, so the code is moving, but a pre-1.0 line with the homepage, the AE panel and the expression catalogue all changing together means the interface you build a habit around can shift between versions.

Licensing separates output from tool in a way that matters here. The README states that rights in the videos and images the tool produces belong to the person who made them, free for commercial and non-commercial use. Rights in the lyrics and the music remain with their own holders, so a video built from someone else's song carries that song's terms regardless of what this tool does. The tool itself is MIT licensed.

There is a third party notices file in the repository root, which is the place to look when the question is what ships with the browser build beyond the author's own code.

Editorial conclusion

JIZURA suits a solo creator who wants a lyric video draft in minutes and refuses to hand lyrics to a server, and the After Effects panel is what lets it join a real production pipeline. It is the wrong tool for pixel-matched brand work, for long songs exported on a phone, or for unattended batch rendering, since the README documents no command line. Verify first by exporting one of your own songs at 720p in easy mode, then opening the resulting MP4 and the exported JSON together, because the README documents no output stability policy across versions.

Frequently asked questions

Does JIZURA send my lyrics or audio to a server?

No. The README states that lyrics, the track and export are processed inside the browser and are never sent to a server. The only external resource is Google Fonts, and only the typefaces the current configuration uses are loaded.

How do I install JIZURA?

You do not have to. The app runs from the hosted page at https://852wa.github.io/JIZURA/, and the built index.html can be downloaded and opened locally. Separate After Effects builds exist as a script panel, JIZURA_AE.jsx, and a CEP panel, JIZURA_CEP.zip, which you unpack and install.

What does the R key do in JIZURA?

It is the shortcut for the automatic button, which rerolls style, mood, motion, colours and cut arrangement together and then plays from the start. The same style is not repeated twice in a row, and the mood list covers glitch, calm, pop, graphic, editorial and emotional, with horror available when its checkbox is on.

Which browsers can export MP4 from JIZURA?

MP4 export needs WebCodecs support. Chrome and Edge are recommended; Safari 16.4 and later and Firefox 130 and later also support WebCodecs, but whether H.264 can be written depends on the browser and the operating system. Preview and numbered PNG export work even where MP4 is unavailable.

Official sources

  1. 852wa/JIZURA on GitHub
  2. Issues
  3. License: MIT
  4. Project website
  5. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/852wa-jizura.svg)](https://hysenlabs.com/projects/852wa-jizura)

Was this useful?