These pages describe the Training API on
dev, where authenticated creation, editing, downloads, revert, and website brand lookup have been tested live.
Production availability is not confirmed. Your API service and worker must both run the updated code.
See Testing and availability.Availability
Development check on September 7, 2026
Live development verification used a real Knowlify API key againsthttps://web-dev-0acd.up.railway.app. The API service and worker were updated together.
Verified behavior:
- Training creation completed, including a locked color palette, and returned downloadable MP4s.
- A title edit progressed through processing and applying to complete. Worker logs confirmed the Remotion/Hera editor and renderer.
- Revert restored a downloaded file byte-for-byte identical to the original.
- Website brand lookup returned live context.dev data after
CONTEXT_DEV_API_KEYwas configured on the API service. - Missing authentication, invalid inputs, unsupported aspect-ratio changes, and idempotency conflicts returned the expected errors.
CONTEXT_DEV_API_KEY for website brand lookup. This provider credential is separate from the Knowlify key used by clients.
Two Python urllib catalog requests received Cloudflare 403 responses before API authentication. The same key succeeded with curl. These checks did not cover invalid API keys, rate exhaustion, edits, brand lookup, Marketing routes, or every creation field.
Marketing and Claude verification
Development tests on September 9, 2026 also verified Marketing catalogs, website branding, private image import, creation, edit/revert, cancellation, narration replacement, and Spanish translation. Downloaded media confirmed translated speech and source preservation. Unsupported native-audio translation and missing-source reformat requests are rejected before work starts. In Claude, one Knowlify connector discovered all 26 tools. A single three-video Marketing batch displayed three players, which automatically progressed through rendering to Ready to play without manual refresh or another chat message. These browser results apply to a compatible MCP Apps client with the player visible. A later check using the same connection successfully returned Training status and Marketing branding, but Claude initially failed to load a newly requested Training player with “Unable to reach Knowlify.” On September 11, the same saved chat loaded its player. Testing exposed expired saved media links; MCP 0.6.2 adds automatic link recovery. The saved Training video subsequently played to 9 seconds of its 10-second duration without clicking Refresh status. A successful tool response alone still does not prove that a particular client displayed its player.Client verification on September 11, 2026
- Codex CLI: real OAuth approval and four authenticated read-only calls succeeded: Training and Marketing styles (17 each), plus completed Training and Marketing video status.
- ChatGPT web: OAuth approval, the same four read-only calls, and a native Marketing player succeeded with CSP enforcement enabled. A single three-video Marketing batch displayed three cards and advanced automatically from 35% rendering to Ready to play without manual refresh or a follow-up chat message.
- Claude Code: OAuth sign-in to Knowlify succeeded and the client health check reported Connected. Model-driven testing was blocked by an expired Claude login and the signed-in account’s Free plan; this is separate from the Knowlify connection.
- Cursor: real OAuth approval discovered all 26 tools, and the same four read-only calls succeeded. Native players rendered. Testing identified a Marketing refresh-routing issue because Cursor omits result metadata; MCP 0.6.5 now includes category in structured status results. A subsequent visual check confirmed the Marketing player played through all 15 seconds without clicking Refresh status.
Local regression tests
With Git and uv installed:Live smoke test
After deploying the updated API and worker to a test environment, store your test key in a private file outside the repository, then run from the backend checkout:KNOWLIFY_API_KEY from the environment instead of --key-file.
The runner checks invalid input and website brand lookup, creates a short Training video, waits for confirmed rendering, submits a title edit, checks video_synced, and requests revert. It writes a JSON report without saving the key. Generation consumes the test account’s normal resources.
Without --write, it only checks validation and brand lookup; the lookup still calls the external provider. The default brand domain is stripe.com; change it with --brand-domain. The default polling timeout is 900 seconds per job; change it with --timeout.
Visual verification
Use the report’s video identifier to find the test video in the development dashboard. For a manual run, inspect the initial render, then the edited render before reverting: the title should change while narration and timing remain unchanged. Inspect the restored result after revert. The smoke runner checks API state; it does not watch the media or wait for a rebuilt combined file after revert.Exact text and edit publication follow-up
The tested Standard animated generator deliberately excludes readable text from model-generated footage. A follow-up Marketing edit added the exact words “Brief”, “Create” and “Share” as post-production overlays. Downloaded frames confirmed the text. The edited output contained audio and video and measured about 10.17 seconds at 720 × 1280. That live edit exposed a separate completion bug: edit status returned complete with a null result link before final assembly had published the file. Planner PR #266, merged into development, waits for publication before reporting a rendered edit complete. Thirty-eight targeted regression tests passed. The development worker rollout completed successfully. A new live edit was observed at 95% assembling withis_complete: false, then completed with video_synced: true and a nonempty result.link. That returned link downloaded successfully, and extracted frames confirmed Brief, Create and Share.
Codex end-to-end verification
On September 11, Codex CLI used its existing Knowlify OAuth connection to create one 10-second Standard animated Marketing video, poll it to completion, submit one post-production text edit, and poll the edit until complete withvideo_synced: true and a result link. The run made one generation call, seven video-status calls, one edit call and eight edit-status calls. No duplicate mutation was submitted.
An independent download of the edited result contained audio and video, measured 10.165 seconds at 720 × 1280, and showed the requested CODEX TEST overlay in sampled frames throughout the clip.
The initial noninteractive attempt was blocked before submission because Codex’s approval policy was never. The successful run used --approve-for-me so authorized mutations went through Codex’s approval reviewer. No sandbox or approval bypass was used. Codex desktop embedded playback remains unverified: the computer-use tool blocks control of that app in this environment.
