QuokkaPix Video for browser agents
Video, audio and transcript processing runs locally in the browser. There is no server processing endpoint. Upload source media through the stable browser inputs.
This is the Video surface of the shared QuokkaPix service. The shared service contract preserves the Image API and discovers this Video runtime.
For resize, background, watermark, metadata, PDF and batch image workflows, use the Image Editor, its manifest and agent guide. Local quokkapix-mcp 0.5.0+ supports both surfaces; unified paid and remote processing requires 0.7.0+.
Agent payment flow
Upload first and call getPaymentQuote(). Editing is free through 5 minutes, then costs 0.01 / 0.02 / 0.03 USDC for over 5–15 / over 15–30 / over 30 minutes. Transcription is free through 5 minutes, then costs 0.02 / 0.04 / 0.06 through the 45-minute limit. Transcription plus subtitle burn is charged once.
Pay the quoted product endpoint, set unlockToken, and retry unchanged. The browser rechecks duration and consumes the token immediately before processing. WebMCP and Bridge add no fee.
Discovery
- Video surface manifest
- Recipe catalog
- Sourced Video rules
- Contract diagnostic
- Browser compatibility
- Reproducible benchmark
- Complete Markdown guide
- AI catalog
Ready-to-upload URL
const url = QuokkaPixVideoAgent.buildUrl({
tool: "crop",
crop: { preset: "custom", width: 1080, height: 1920, fit: "cover" }
});
The returned URL contains UTF-8 base64url JSON in settings. It can restore every field accepted by applySettings(), including Cut segments and speed curves, Crop transforms, compression, audio mixing, transcripts and subtitle styling. Only local file selection remains.
Simple example: /#agent=1&tool=compress&quality=medium&resolution=720&target-mb=25.
Stable browser flow
await page.goto("https://video.quokkapix.com/#agent=1");
await page.evaluate(() => QuokkaPixVideoAgent.applyRecipe("vertical_9_16"));
await page.locator('[data-agent="file-picker"]').setInputFiles(file);
await page.locator('.page-shell[data-agent-status="ready"]').waitFor();
await page.evaluate(() => QuokkaPixVideoAgent.start());
await page.locator('.page-shell[data-agent-status="done"], .page-shell[data-agent-status="error"], .page-shell[data-agent-status="cancelled"]').waitFor();
const result = await page.evaluate(() => QuokkaPixVideoAgent.getResultManifest());
if (!result.qa?.ok) throw new Error(result.qa?.summary || result.error);
Coverage
applySettings(), encoded URLs and WebMCP cover Cut, Crop/Resize, Convert, Compress, Audio and Transcribe. Cut supports non-destructive segments[], speed curves and linked audio. Crop supports geometry and transforms. Audio supports source gain, extraction and local music mixing/replacement. Transcribe supports TXT/SRT/VTT and burned subtitle styling.
Experimental browser-native tools use the quokkapix.video.* namespace. If WebMCP is unavailable, use window.QuokkaPixVideoAgent and stable data-agent selectors.
Automation must prefer stable data-agent, data-agent-action, data-agent-setting, data-agent-output and status attributes. Visible labels and CSS classes may change with localization or presentation.
Always inspect getState().capabilities and the terminal getResultManifest().qa. Media files cannot be supplied through URL parameters.