GETTING ACCESS & API KEYS
Access is invite-only. An invitation code is issued by the operator and redeemed once; after that, generate your own API keys from the Account Portal.
EXECUTING YOUR FIRST REQUEST
Send your video and prompt in one multipart request to the local server:
curl -X POST https://framecall.site/ask \ -H "x-api-key: $FRAMEWISE_KEY" \ -F "file=@interview.mp4" \ -F "provider=aistudio" \ -F "model=gemini-3.8-flash" \ -F "prompt=Transcribe speech with MM:SS.mmm timestamps and speaker labels." \ -F "timeoutMs=180000"
{ "ok": true, "reply": "00:00.120 Speaker 1: Welcome to the local intelligence demonstration...\n00:04.550 Speaker 2: We achieve full data isolation.", "provider": "aistudio", "callId": "call-7a8b9c-…" }
STATELESS BY SPECIFICATION
Framewise is not a chatbot. Every request is strictly independent: one input video and one prompt in, one structured answer out. No conversational history is preserved between adjacent calls.
REPRODUCIBILITY GUARANTEES
- Deterministic: Re-running a request months later produces comparable results.
- Safe Retries: Network retries never pollute or corrupt previous dialogue states.
- Zero Bleed: Multiple tenant workers can execute in parallel on the same debug port without cross-talk.
CHOOSING AN ENGINE
You can choose which engine executes your request with the provider parameter. All three share the same queue, pacing, caps and error codes — only the transport differs, so switching engines changes nothing else in your integration.
| ENGINE | MODEL PIN | MEAN SPEED | BEST SUITED FOR |
|---|---|---|---|
| aistudio | gemini-3.8-flash | ~15 – 20 seconds | Default. Consistent latency, instant JSON responses, low-latency pipelines. |
| wrapper | Gemini 2.5 Pro / Flash | ~5 – 30 seconds | Fastest on text and short media; runs without a browser process, so it is the cheapest per account. |
| gemini | Gemini 2.5 Pro / Flash | Bimodal — ~15 s or 2 – 5 min | Slowest and least predictable. Audio is still extracted first, so it gains nothing from the video track. |
Speeds are measured on the bridge host and vary with file size and load. If you do not send a provider, the operator's configured default is used. You do not have to pick one — a request that omits it always works.
READY-MADE PROMPT RECIPES
1. Timed JSON Transcript
Transcribe this video. Return a JSON array with:
[ { "start": "MM:SS.mmm", "end": "MM:SS.mmm", "speaker": "...", "text": "..." } ]
Split on natural breath pauses and speaker transitions.2. Dubbing & Translation Matrix
Segment this clip for automated dubbing. Return JSON array with: "start", "end", "character", "gender", "emotion", "text_original", "text_target" in Khmer. Ensure target text duration naturally conforms to original line duration.
3. Scene Segmentation from Audio
Split this audio into narrative scenes. Return JSON array with: "start", "end", "scene_title", "summary", "speaker_list".
The video track is stripped before upload, so prompts asking for on-screen text, OCR or visual description will not get useful answers. Segmentation here is inferred from dialogue and pauses.