Repository navigation
web-v0.3.0
·
11 commits
to main
since this release
Added
- Five more templates: Enzo, Hugo, Sara, Lewis and Pastor. Thirty-six in the gallery now. Pastor is the first template that asks for its captions to sit behind the speaker.
- The template gallery is grouped into families: Modern, Key moments, Viral, Classic and Lab. Two of them show a short clip playing over real footage instead of a still swatch, because their look either composes against the video or lives in what it does with the words over time.
- Colour presets on most templates. The Preset field in the Style tab used to appear on four templates and now appears on twenty-four. The first preset is the look the template already ships with, so nothing you picked before looks different until you choose another.
- Add a Hook or a Peak sheet from the "+" beside the sheet chips. Each one is offered only when your transcript holds words that belong on it, so the button never creates an empty sheet.
- Reset a whole sheet to its template default, from the sheet chip's menu. One step reseeds every tab at once, typography, style, layout, effects, motion and your own CSS, and clears the edits you made on individual words and scenes under that sheet.
- Captions that sit behind the speaker are measured while you work, with no dialog to wait behind. The measurement covers only the stretches captions occupy, runs a piece at a time starting from where you are, and fills in a stretch it had never looked at when you move a caption there. Playback pauses only when it reaches one of those, and a finished pass reports how many scenes it will lift.
- The language list in the start dialog is ordered by what you are likely to want: the ones you pick most, the one you picked last, the ones your browser and your timezone suggest, then a popular set, then the rest alphabetically.
- A warning before a long video is transcribed in the browser, past ten minutes on a computer and past two on a phone. Speed and accuracy there depend on the device, and a long video on a weak one is a long wait.
- The projects list takes a video dropped anywhere on it, and each card carries the video's length and a menu for renaming and deleting.
- A Support panel behind the heart button in the toolbar, listing the ways to help the project: share it, star the repository, leave a review, send feedback, or donate.
Changed
- Captions break at the width they really render at. The arithmetic behind the line breaks counted a space between every pair of words that captions never have, spent letter spacing everywhere except after the last letter, and read a single typeface for every word whatever size the template gave it. Measured against the same words laid out by a browser, it was running eight to eleven percent over. A line now holds about a tenth more, and every template's width was retuned against the corrected number. The default width is narrower as well, so a full line stays clear of the action rail that the short-form players draw down the right edge.
- Changing a template clears every hand edit under that sheet. Edits on words and decorations used to survive, keyed to values the new template knows nothing about, so they rendered as nothing at all or as noise you could not find and undo. Returning one scene to the automatic decision about sitting behind the speaker is part of that same step now, and the scene menu keeps one switch rather than two that read as two ways to do the same thing.
- Preparing the preview stops once it is no longer worth the wait. How long a video takes to prepare depends on the machine and on how the video was recorded, and the old limit tried to predict that from the file alone. It turned away long videos that would have been quick, and it kept you waiting on short ones that were not. The preparation is now timed while it runs and stopped when it passes what the video earns: around twenty seconds for a one minute video, rising to ninety for ten minutes or longer. One that is clearly going to run over is dropped in the first few seconds instead of at the end. When it stops, your video plays right away, and you can ask for the precise preview whenever you want from the timeline.
- Opening a saved project no longer prepares its preview again. A project you had opened without one used to repeat the whole preparation every single time.
- Exports redraw the captions only when they change. Three things stood in the way. Any style that draws its outline with an SVG filter was redrawn from scratch on every frame, including the long stretches where nothing on screen moves. The drawing was done in fixed chunks of frames, so the same caption came back around to be drawn again a few frames later even when nothing about it had changed. And the styles that read the video's own pixels, the frosted ones and the ones that blend, were redrawn once per frame no matter what. A caption that holds still is now drawn once and reused for as long as it holds still, which is where the saving is largest: exports at high resolution, where each drawing is the expensive part, and phones, where one of those pixel-reading styles took 160 seconds and now takes 59. Styles whose effect genuinely changes every frame, like the one that flickers, redraw exactly as before.
- Exporting no longer waits for the project to be saved. The save ran before anything appeared on screen, so over a slow connection that was twenty seconds of nothing at all. It runs alongside the render now, and it is skipped when nothing has changed since the last one.
- The Highlight tag is now called Peak. Fourteen templates already use "highlight" for the word being spoken right now, and the tag means something else: the closed phrases a video is built around. A template styling
.highlightfor the tag needs.peak, and kel'stag-bg-colorcontrol is nowpeak-bg-color. Projects saved before this are converted when you open them.
Fixed
- Safari opens videos that have sound. Safari before version 26 ships only the video half of the toolkit the app checks for, so every video with an audio track was refused a moment after you dropped it. The check now asks for the audio half only on the paths that actually decode audio, and transcription falls back to the browser's older audio decoder where the newer one is missing. That fallback also handles long videos: it used to read the whole soundtrack at once, which ran a phone out of memory on anything past a few minutes, and now works through it a minute at a time.
- A video the browser genuinely cannot open no longer suggests converting a file that is already MP4. When both attempts at reading the audio failed, only the first was reported, so the advice named the wrong problem.
- A caption whose movement lives in a decoration is no longer exported as a still image. The export decided whether a caption was moving by reading the caption itself, which cannot see an animation attached to a shape drawn beside it. Pepper's growing pill is the one that showed it: it played in the preview and was a still image in the exported file.
- Typing your first caption into an empty transcript paints it on the video. A video with no speech opens with nothing in the transcript, and the first scene added to it landed under no style sheet at all, so the words read back correctly in the transcript panel while the video stayed bare.
- A full disk no longer costs you the project. Reading a project was also writing a timestamp, and a browser with no room left refuses every write, so opening any project failed with no message and sent you back to the list. Alongside that: a video you re-select is attached even when it cannot be kept, and a full disk now reports once instead of twice with two notices that said nearly the same thing.
- A preset survives a template change. Twenty-four of the thirty-six templates ship presets and the rest ship none, so passing through one of those collapsed your choice permanently, with no error and no way back.
- A control a template gained after you saved a project reaches that project. The value was missing rather than set to its default, so the control did nothing at all. Fonts are where it showed: the exported video fell back to a system typeface while the preview looked right.
- Fixing a typo no longer removes the gap-free padding from the scene.
- Sentences and clauses break correctly in Arabic, Persian, Urdu, Chinese, Japanese and Korean. The splitter looked only for the punctuation Latin scripts write.
- A Hook or Peak sheet reads in the project's own direction. Both arrived left to right inside a right-to-left project, which puts the closing full stop at the wrong end of the line.
- Cancelling the prepare-video dialog takes the template back. It used to leave the sheet on a template that needs captions behind the speaker with no measurement to support it, so the effect you picked never appeared. And hiding one scene behind the speaker by hand no longer removes the offer to measure the whole video, which it did permanently, reloads included.
- Captions in Russian, Ukrainian, Serbian, Greek or Hindi land on a typeface the style chose. Most of the heavy display faces caption work starts from carry no letters for those alphabets, so those captions were drawn in whatever your device happened to supply, which differs from one machine to the next and matches nothing the style intended. Each style now names a stand in for them that carries its own voice, the way the Arabic and Hebrew ones already did.
- The fast preview notice claimed everything worked without a prepared preview. Styles that place captions behind the speaker cannot play until it is ready, and the notice says so now.
- Transcription in the Docker image runs on every core instead of one. The image was serving the app without the two headers a browser wants before it will hand a page shared memory, and the speech model falls back to a single thread without them. On one machine that was 20 seconds of inference on a video that takes 13. Chrome and Firefox pick this up; Safari does not implement the header it rests on, and stays as it was.