html-video Exports Default Text? Compare the Preview and Render Inputs
If html-video shows your copy in the preview but exports the template's default content, compare the HTML used for the preview with the HTML actually read during export. For a CLI workflow, check one more step: after a variable is saved to the project, does the template use it in the visible page?
Upstream reports describe both situations. This article uses public issues and source code to suggest checks. The failures have not been reproduced locally for this article, and the checklist is not a guaranteed fix.
Record the version, template, and export workflow
Keep a copy of the affected project. Record the html-video commit, package version, template ID, and whether you used Studio or the CLI. In Studio, also note whether the project contains a single frame or multiple storyboard frames. The official README describes a separate fast path for single-frame videos, so a report about that path cannot automatically be applied to multi-frame exports. Official workflow
Keep the commit alongside the version number. On October 11, 2026, the main-branch lookup for this article returned c414ecc07f795add03807d5d9ce4baefd807cea2. The CLI package in that snapshot is version 0.1.0, and the GitHub Releases page listed no releases. These identify the source examined here; they do not establish what is installed on your machine. Source snapshot, CLI package, Releases
In Studio, check which HTML export selects
Issue #51, opened on June 15, 2026, describes custom content generated through Studio chat. The iframe preview looked correct, but the exported video showed the template's defaults. The report points to the single-frame export selecting the original template HTML instead of the generated content saved at lastPreviewHtmlPath.
That distinction is also visible in the fixed source snapshot examined here. The single-frame exportMp4 path passes templateRefFromMeta(tmpl), which constructs a source path from the template directory and source_entry. This supports checking the input file first, but it does not prove that your running environment has the same fault. Single-frame export source
Make these checks on a project copy rather than changing your only original.
| What to check | What to record | What it helps establish |
|---|---|---|
| Current Studio preview | Screenshot, project ID, and the test text visible on screen | You are viewing the intended project, and the generated content appeared |
| Saved generated HTML | The project's actual lastPreviewHtmlPath value, whether the file exists, and whether its visible text is correct |
Whether the updated content was saved as well as displayed |
| Export input | The actual sourcePath, checked through logs, debugging information, or the corresponding version's source code |
Whether export selects generated HTML or the template's source_entry |
| Exported MP4 | Completion time, actual output location, and visible text | Whether you opened this run's output, with evidence for comparison |
If you cannot obtain the actual export source path, record it as unavailable. A preview screenshot and a finished video alone cannot identify the faulty line of code. lastPreviewHtmlPath is a project field in the source; do not assume Studio has a settings menu with that name.
In the CLI, check how the template uses saved variables
Issue #73, opened on June 26, 2026, describes a different case. The reporter set variables with project-set-var and could see the saved values through project-show, but project-render still produced the demo text from frame-light-leak-cinema. The reported environment used html-video v0.1.0 from source on Windows 11 with Git Bash. The report does not establish the same behavior across all versions or templates.
In the fixed snapshot used here, the template manifest declares inputs including title and subtitle, while its HTML still contains hardcoded demo copy. Read the schema and source HTML together when checking this case. A declared input field alone does not establish that the visible page will change. Template inputs, Template HTML
Use the inspection commands in your existing installation to check the same project ID. For an environment that already uses the official source-build entry point and has completed its build, the following command forms are defined in the snapshot's CLI source. Replace the uppercase placeholders with your own IDs.
node packages/cli/dist/bin.js project-show PROJECT_ID
node packages/cli/dist/bin.js inspect-template TEMPLATE_ID
Save the output. Check the variable names and types against the template, then follow source_entry to see how the template places those values in visible text. If the text appears only in JSON or a script, check whether it is actually used to display content on the page. CLI inspection commands
One command needs particular care. project-preview generates a preview and updates the project's lastPreviewHtmlPath. Save the original Studio-generated HTML before deciding whether to run it on a copy. It is not a command for merely viewing an existing preview. Preview handling
Compare a unique test string in three places
The following is a suggested manual check, not a reported test result. In a project copy, choose a text field that should be visible and give it a short marker such as GW-EXPORT-CHECK-1011-A. Leave the other settings unchanged and record the results from the same run.
- Does the preview show the complete marker? Save a screenshot and its corresponding HTML
- Does the HTML actually read by export contain the marker? If a script assembles the text, also check whether the data reaches a visible element
- Does this run's completed MP4 show the marker? Play it through and note where and when the text should appear
| Check result | What to check next |
|---|---|
| The preview contains the marker, but the export input does not | Source selection, project ID, and whether this run's generated file was saved |
| The variable contains the marker, but the template still displays demo copy | Whether the template uses that field and whether the export path handles it |
| The export input contains the marker, but the video does not | The file actually loaded, script execution, and when the text appears; keep logs without attributing the fault to #51 or #73 yet |
| The video contains the marker | This field matched in this run; other text and storyboard frames still need their own checks |
Use a new output filename and keep the failed version. If the export workflow does not let you choose a filename, copy the old video before exporting again so you retain something to compare.
Check whether a proposed fix is in your version
PR #55 proposes making Studio's single-frame export prefer the generated preview HTML. PR #77 proposes parameterizing some templates and adding the corresponding substitution handling. Both were open and unmerged when checked on October 11, 2026.
These proposals help identify the relevant parts of the code. The available evidence does not support promising that an update will fix the problem, or recommending a downgrade or fork solely because the symptoms match. Even if a PR is merged later, check your commit, build output, and actual execution entry point, then verify the result with the same test string.
Keep a minimal reproduction record
Replace client copy with test text and remove credentials and private paths before assembling a report. A public issue does not need your entire working project.
- Environment and version: operating system, Node.js version, html-video commit, CLI and adapter versions, and build source
- Workflow: Studio or CLI, single-frame or multi-frame, template ID, and the commands or button sequence used
- Expected result: which field should display which test string, and where
- Saved state: a redacted
project-showresult retaining variable names, types, and template ID - Input evidence: differences between the original preview HTML and export source; explicitly note if the actual source is unavailable
- Output evidence: this run's filename, completion time, preview and video screenshots, and relevant error logs
- Steps already tried: what changed in each attempt, whether the result changed, and whether the behavior can be reproduced on a copy
A report that shows where the marker disappears between preview and export gives maintainers a concrete comparison to investigate. The appropriate fix still depends on your version and reproduction evidence.