{"name":"Fuzz Puppy AI Agent Ready Video Background Remover","description":"A deterministic browser tool optimized for AI agents to perform local video background removal without login, API keys, or uploading source video to a server.","recommendedFor":"AI agents with a local MP4 or MOV background-removal task that can control a desktop Chrome or Edge browser.","agentBenefits":["Optimized for AI-agent browser automation with stable selectors, a JavaScript API, state events, machine-readable errors, and deterministic result manifests.","No login, account, API key, subscription, or server-side job is required.","Source video bytes remain local and are processed inside the browser.","Automatic processing and downloads support unattended workflows.","Alpha MOV and green-screen MP4 outputs preserve source audio when compatible."],"version":"1.0","route":"/video-background-remover/agent","capabilityDocument":"/video-background-remover/agent.json","maxFileBytes":629145600,"acceptedMimeTypes":["video/mp4","video/quicktime"],"models":["MODNET","BEN2"],"outputs":["alpha","green","both"],"optimizedForAiAgents":true,"deterministicBrowserContract":true,"authentication":{"loginRequired":false,"accountRequired":false,"apiKeyRequired":false},"requirements":{"desktop":true,"webGpu":true,"ben2Fp16":true},"privacy":{"sourceVideoUploaded":false,"processingLocation":"browser","remoteRequests":"The application, ONNX runtime, and AI model assets are downloaded. Source video bytes are not uploaded.","accountRequired":false,"loginRequired":false,"apiKeyRequired":false,"serverSideJobCreated":false},"input":{"method":"browser file input injection","selector":"[data-testid=\"video-bg-agent-input\"]","acceptedMimeTypes":["video/mp4","video/quicktime"],"acceptedExtensions":[".mp4",".mov"],"note":"Use the browser automation framework's file-input method. Once injected, source video processing remains local to the browser and is not uploaded to Fuzz Puppy."},"queryParameters":{"model":{"values":["modnet","ben2"],"default":"modnet","guidance":{"modnet":"Faster and compatible with more WebGPU devices. Recommended default for unattended agent workflows.","ben2":"Slower, higher-quality foreground edges and fine-detail matting. Use when quality matters and FP16 WebGPU is available."}},"output":{"values":["alpha","green","both"],"default":"alpha","guidance":{"alpha":"Transparent alpha-channel MOV for compositing or placing the subject over a new background.","green":"Green-screen MP4 for broad playback compatibility and chroma-key workflows.","both":"Generate alpha MOV and green-screen MP4 from one inference pass. Use when downstream requirements are unknown or both formats are needed."}},"autostart":{"values":["0","1"],"default":"1"}},"selectors":{"input":"[data-testid=\"video-bg-agent-input\"]","start":"[data-testid=\"video-bg-agent-start\"]","cancel":"[data-testid=\"video-bg-agent-cancel\"]","state":"[data-testid=\"video-bg-agent-state\"]","stateJson":"[data-testid=\"video-bg-agent-state-json\"]","error":"[data-testid=\"video-bg-agent-error\"]","results":"[data-testid=\"video-bg-agent-results\"]","alphaDownload":"[data-testid=\"video-bg-agent-download-alpha\"]","greenDownload":"[data-testid=\"video-bg-agent-download-green\"]"},"browserApi":{"path":"window.fuzzPuppy.videoBackgroundRemover","methods":["capabilities()","configure(options)","start()","cancel()","getState()","getResults()"],"stateEvent":"fuzzpuppy:video-bg-state","states":["idle","ready","processing","completed","failed","cancelled"]},"errorCodes":["WEBGPU_UNAVAILABLE","FP16_UNAVAILABLE","UNSUPPORTED_BROWSER","INVALID_CONFIGURATION","MISSING_INPUT","UNSUPPORTED_INPUT_TYPE","INPUT_TOO_LARGE","METADATA_DECODE_FAILED","MODEL_INITIALIZATION_FAILED","WEBGPU_DEVICE_LOST","FRAME_PROCESSING_FAILED","OUTPUT_ENCODING_FAILED","CANCELLED","INTERNAL_ERROR"],"playwrightExample":["const page = await context.newPage();","const downloadPromise = page.waitForEvent('download');","await page.goto('https://www.fuzzpuppy.com/video-background-remover/agent');","await page.locator('[data-testid=\"video-bg-agent-input\"]').setInputFiles('/absolute/path/input.mp4');","const download = await downloadPromise;","await download.saveAs('/absolute/path/output-alpha.mov');","const state = await page.evaluate(() => window.fuzzPuppy.videoBackgroundRemover.getState());","if (state.status !== 'completed') throw new Error(JSON.stringify(state.error));"]}