Repository navigation
videobook 0.3.3
Added
- A TikTok-style subtitle editor in the chat composer.
/subs @video, a
video cell's Subtitles menu item, or asking chat or voice for subtitles
opens it beside the chat: a portrait preview that plays with audio and
highlights each spoken word, an editable transcript (text, timing, hidden
and inserted words, phrase splits and joins), style, size, colours,
outline, padding, language, frame and timing controls, and a draggable,
keyboard-adjustable vertical position for all phrases or one. Drafts save
as you edit, export to SRT or WebVTT, and Render creates a new subtitled
video cell below the source (later renders become versions of it). The
source video is never changed. caption_videoMCP tool withop: get | prepare | update | render.get
reads the draft and preparation status without starting work (detail: fulladds the document, face/text regions and loudness envelope);
preparestarts word-timed transcription, vocal timing, optional face
and on-screen-text placement and translation;updatesaves edits, a
replacement document or a resolution (reseed,realign,
keep_timings,discard) againstexpected_revision;rendertakes the
reviewed revision,source_hashand a stablerequest_idand returns the
same job on retries. Onlypreparespends money.- Caption analysis is keyed by content: repeated or concurrent requests reuse
one job, cached results return without provider calls, a failed refresh
keeps the last result, and results for a video that changed mid-analysis
are discarded. Subtitles render with bundled Montserrat and Anton (OFL),
load Noto Sans subsets on demand for other scripts, and handle
right-to-left text. forceontranscribe,translate_subtitles,describe_image,
detect_scenes,suggest_cuts,suggest_sfxandanalyze_jokes
(analyze_videoalready had it) to run again on unchanged inputs.- Subtitles can replace the video in place instead of adding a new cell:
choose Replace video beside the subtitle editor's export buttons. Render
burns the subtitles into the source video, keeps its earlier version in
history, and the cell shows RENDERING until the job finishes.
caption_videorender takesoutput: "new" | "replace". /postposts a clip in one step. One sheet offers three destinations:
iCloud · iPhone, Download (the clip and caption.txt download to this
computer for a manual upload) and X, now or scheduled. Applying a
destination creates the Post when needed, freezes the clip and caption and
delivers them. A clip's menu offers Post…, and a Post's menu offers Save to
iPhone and Download./filesserves an artifact file as an attachment when given
?download=<name>, so download links save instead of playing inline.- Eighteen more MachGen video models. The picker offers LTX 2.3 Pro,
MiniMax H3 Turbo, Seedance 2.0 Fast and Mini, Kling 3.0 and Kling 3.0 Omni,
Veo 3.1 and Veo 3.1 Fast, Pixverse V6 and C1, HappyHorse 1.0 and Grok
Imagine Video. Wan 2.2 A14B, Vidu Q3, Q3 Turbo, Q3 Pro, Q3 Pro Fast and Q4
Preview, which MachGen hides from its own picker or keeps private, are
available throughgenerate_videoandlist_generation_modelswith
include_hidden. Each model offers the resolutions, lengths, aspect ratios,
frames and references MachGen accepts for it and is priced from MachGen's
pricebook. Kling 3.0 Omni takes multi-shot settings:shot_type: "intelligence"lets the model plan the shots, and"customize"takes
multi_promptandshot_durations, which must add up to the duration. - MiniMax H3 2K regeneration (
machgen:MiniMax-H3/upscale, available through
generate_video): connect a 5-15 second MiniMax H3 768p video that MachGen
generated, and MachGen renders it again at 1440p from its original prompt
and inputs. It costs $0.05 per second of the source, counted twice (in and
out). Other videos and URLs are refused before anything is spent.
Changed
-
The posting MCP tools shrink from 15 to 8.
posttakesto: icloud | download | x | draftwithasset_idfor a new Post orpost_cell_idfor
an existing one.list_postsreads one Post withpost_cell_idand the
X posts waiting to publish withstatus: "scheduled".update_posttakes
urlandposted_atafter posting by hand, andcancel_scheduleto turn a
scheduled X post back into a draft.record_post_metricswithout values
fetches the current X metrics.service_statuswithservice: "icloud",
book_idandpost_cell_idreports whether a Post's files finished
uploading. -
The Actions form and a timeline track's add-clip chooser are no longer
modal dialogs. Both open as a review docked in the chat composer, like a
generation review: Apply, or Enter on/apply, runs the action or adds the
chosen clip, and Cancel, Escape or/cancelcloses it. An action that needs
confirmation shows its review and estimated cost on the first Apply and runs
on the second; read results and their links stay on the review. In the
fullscreen timeline editor the add-clip review docks at the editor's foot. -
Image models default to 2K again (or the highest resolution they offer
below 2K) instead of their highest resolution; 4K stays available to
choose. New goals plan their scene at 2K. Video models keep their highest
resolution, and a resolution a notebook remembers from a cell still applies. -
Render in the subtitle editor no longer waits for the video: it queues the
render, closes the editor and frees the chat, and the chat turn follows the
job until the subtitled copy or the updated video is ready.caption_video
render also returns the job'sjob_id,statusandoutput_artifact_id
at the top level. -
Every analysis tool is keyed by the content it reads: speech-to-text by the
transcribed audio and settings, translations by the timed transcript and
language, video analysis by the video and the transcript it used, image
descriptions by the image, scene scans by the video, cut and sound-effect
suggestions by the video, transcripts, analysis and instructions, and joke
analysis by the timed transcript. A repeat returnsstatus: "cached"
(suggestions and jokes include the earlier entries) without a provider
call, a job or a write; otherwise the tools returnqueuedorrunning
with a numericjob_id, and concurrent or forced requests join one job.
These tools no longer returnenqueued,already_analyzedor string job
ids.
Automatic transcription and analysis jobs skip the provider when their
result is current, results whose inputs changed mid-run are discarded, a
failed refresh keeps the previous result, and undoing an edit serves the
earlier analyses again. Sidecars written by earlier versions are adopted
once instead of being paid for again. -
describe_imagereturns the script asset it already wrote for an unchanged
image instead of creating a new one per call. -
Captions, keyword titles and watermark placement share one cache of face
and on-screen-text regions per video frame, so each pass only sends frames
no earlier pass analysed. -
A render with a translated
subtitle_languagefails with the reason when
the translation cannot be made, instead of burning the original language. -
Editing a video's picture or sound still deletes its video analysis and,
for sound or timing edits, its transcripts; scene scans, suggestions and
joke analyses are kept and simply stop matching the edited media. -
Thai, Lao, Khmer, Burmese, Chinese and Japanese speech is read as words.
ElevenLabs returns these scripts a letter at a time; transcripts,
subtitles, SRT exports, the transcript card, search text, suggestions and
translations now join the letters into dictionary words without spaces
between them, Thai syllables the dictionary does not know (loanwords,
colloquial particles such as เหรอ) stay whole, and a space in Thai ends a
subtitle phrase so it is never silently dropped. Subtitle phrases are
measured by visible width (Thai vowel and tone marks take none, CJK
characters take two), the seven-word cap applies only to spaced scripts,
and a clause too long for one phrase splits into the fewest even phrases.
The Impact and Highlight render styles no longer put gaps between Thai or
CJK words. Short Thai and Chinese speech now counts as dialog, so it is
transcribed automatically. Translations from Thai send whole clauses to the
translator, and translations into these languages time real words instead
of character pairs. Subtitle drafts saved by earlier versions are
discarded, and caption vocal timing is measured again once per video. -
/aliveopens the new subtitle editor. Saved Alive caption settings seed
the editor's style, a matching saved Alive analysis is reused instead of
being paid for again, stored renders that still use thealivesubtitle
style render through the new captions, and queuedanalyze_alive_captions
jobs run caption preparation. -
render_videoandrender_projectno longer accepthighlight_style: "alive"; usecaption_videofor word-timed subtitles.
Removed
- The
create_post,get_post,link_post,save_post_to_icloud,
post_icloud_sync_status,refresh_post_metricsand
upload_post_to_dropboxMCP tools and their slash commands. Usepost,
list_posts,update_post,record_post_metricsandservice_status
instead. - Dropbox delivery: the Dropbox connection in
connect_serviceand
service_status, its Settings card and the@apicity/dropboxdependency.
It needed a Dropbox app that was never configured, and Download covers
manual uploads. - The
alive_captionsandset_alive_captionsMCP tools and the
full-screen Alive captions studio. Usecaption_videoand the subtitle
editor instead.
Fixed
- A Post delivery that finishes no longer overwrites a destination chosen
while it was still running. - Settings shows the selected project's storage after switching projects
while a storage check for the previous project is still loading. - Trimming an audio asset updates its recorded duration, streams and
waveform, so the library and timeline report the trimmed length.
Security
- Dependencies move to patched releases: the MCP TypeScript SDK server and
client 2.4.0, vite 7.3.7, vitest 4.1.12, zod 4.6.7 (also inside Remotion
Studio, through an override), undici 7.30.1, hono 4.13.14, body-parser
2.4.0, follow-redirects 1.16.2, fast-uri 3.1.9 and ip-address 10.7.5.
npm auditreports no vulnerabilities.