Playground
connecting…

Playground

Fire a single video or a batch of up to 20 and watch clips land in real time. Each job streams its log over SSE; the grid fills as workers finish.

0
videos this session
0
videos / last min
0
jobs in flight

Generate

720p is the base render; 1080p/4K add an upscale step. Batch (count>1) is text-to-video only.

Live jobs

Rendered clips

Generated videos will appear here.

Accounts

The Google account pool. One account is bound per worker (ban-safe); the pool rotates the least-busy healthy account and degrades any that error.

Total
Healthy
Active jobs

Pool

EmailStatusActiveUses403sProxySession
loading…

Add account

cookie export or password

Import from VeoUnlimited

source: both

Analytics

Live metrics polled every 5s, plus a GitHub-style hourly heatmap of generation volume. History accumulates client-side from metric samples (and uses /analytics/heatmap if the server exposes it).

Queue depth

now 0 · peak 0

Accounts by status

proxy:

Generation heatmap

source: local samples (accumulating) Less More

API Reference

VeoForge is a direct-to-Google-Flow generation control plane: a concurrent worker pool (one Google account per worker, ban-safe), per-account residential proxy support, and API-level batch coalescing (N prompts in one call). Every endpoint except static UI assets requires Authorization: Bearer <token>.

System Architecture

How a prompt becomes an mp4 — the request lifecycle, session establishment, the worker/account topology, and the concurrency model.

1 · Request lifecycle

A generate call is persisted to a SQLite JobStore with an atomic claim, then picked up by a free worker. The worker drives a stealth Chrome tab authenticated to labs.google, mints a fresh reCAPTCHA v3 token in-page, submits to the aisandbox batch endpoint, polls, downloads the fifeUrl, optionally upscales, transcodes, and exposes the result.

Why in-page fetch beats reconstructing headers. The generation request is issued from inside the real browser tab, so the cookies, User-Agent, client hints and the reCAPTCHA token are all the browser's genuine values. Reconstructing those headers from Python is exactly what Google's anti-abuse stack is built to catch — issuing the call in-page sidesteps the whole class of 403s.

2 · Session establishment

Auth is cookie-first: inject the __Secure-next-auth.session-token into the labs.google origin, let NextAuth exchange it for a session, and lift the ya29 bearer. From then on every request rides the in-page fetch path.

Why datacenter IPs get 403 and residential proxies fix it. reCAPTCHA v3 scores the whole request context; a Hetzner/GCP egress IP tanks the score and the mint is rejected. Binding each account to a clean residential proxy restores a human-plausible score, so the token validates.

3 · Worker & account topology

The WorkerPool owns N workers. Each worker holds exactly one Google account and its own browser session, guarded by a per-worker CircuitBreaker that trips on repeated 403s and backs off. The AccountPool hands out the least-busy healthy account and degrades any that error; every account binds its own residential proxy.

Why one-account-per-worker is ban-safe. No account is ever driven by two browsers at once, and no browser ever juggles two accounts. Each identity keeps a single, consistent session/UA/IP fingerprint — the pattern a real user produces — so nothing looks like credential-stuffing or session sharing.

4 · Concurrency & throughput

Effective parallelism is min(VF_WORKERS, healthy accounts). On top of raw parallelism, the queue coalesces up to N prompts of the same tier/aspect into a single batchAsyncGenerateVideoText call, so one API round-trip yields many videos. Measured steady-state is around 16 concurrent generations.

720p base + separate upscale. Every render is produced at 720p for speed and reliability; 1080p and 4K are a distinct upscale pass applied after the base clip lands. Keeping them separate means the base throughput number is honest and the upscale cost is opt-in per request.