Gemini Router v1.1
Persistent Menu
Gateway Active
13 Profiles
Monitoring & Metrics
Overview Stats Live Traffic Flow Canvas Quota & Workload Analytics Live Request Logs
Account Fleet
One-Click Chrome Import Auto Active Accounts Pool 🔀 Hybrid Route Switch HYBRID 🖥️ Chrome Popup Window OFF 🔥 Pre-Warmed Pool ON Timeout Configuration 180s
AI Studio & Audio Transcribe
🎙️ Audio Transcribe Studio MP3 💬 Text Generation Studio ✨ Preview 30s Khmer Subtitles
Developer Hub
🔑 Client Keys & Billing 0 Keys 🔑 API Token & Keys sk-... Transcribe Endpoints Spec Quickstart (Python / cURL) Khmer Subtitles Dubbing Schema HTTP Status & Error Codes
Base URL:
API Token:
Shortcuts: Alt+M or Esc
Strategy:
🔀 Pool Route:
Gateway | Ready
Ready Accounts
0
0 total configured
Total Requests
0
Processed across sessions
Load Balancer
Balanced
Quota Guard: Active (95%)
API Endpoint
/v1/chat/completions
OpenAI API Protocol

⚡ One-Click Chrome Profile Import Auto-Detected

Import existing Google Gemini sessions from your local Google Chrome without typing passwords or doing 2FA.

Scanning local Chrome profiles...

Live Traffic Flow

Network Topology

Real-time connection status streaming directly from active account pool.

LIVE
✦

Gemini Router

Ready for requests

Live Request Activity Sending... • Streaming API telemetry to Gemini Web

Live Request Details

User Prompt

              
⚠️
Model Response is Non-JSON (Plain Text) 200 OK

Model responded with plain conversational text instead of structured JSON.

Model Response

              
Connection flow active • Syncing pool

Configured Account Profiles 0

Auto-refreshes every 3 seconds
0 / 0
Status:
Plan:
Quota:
#
Account ID 👁️
Gemini Plan Status Current Usage Weekly Limit Concurrency Requests Actions
Loading accounts...
Showing 1–10 of 13 accounts |
Per page:
Page 1 / 2

Manual Account Login

Interactive Chrome authentication

To add an account not present in your local Chrome, enter an ID below to launch an interactive Chrome window to log in to Google Gemini.

Google Chrome Profile Active

Google Chrome is now open on your desktop for:

Interactive Session:
1. In the opened Chrome window, sign in or verify your Gemini Web account.
2. Ensure the Gemini Web prompt chat screen is loaded.
3. Once complete, click the button below to activate the profile.
💡 If Chrome does not appear on your screen, double-click Login_Account.bat in this project folder!

Auto-Detection Completed 6 Checked

Live Gemini plan tiers synchronized

Accounts active and ready for requests

⚡ Connectivity Benchmark Results gemini-3.5-flash-lite

Chat connection ping test completed • No translation

Total Accounts
0
Passed (OK)
0
Failed
0
Avg Latency
0.0s
All test chats were automatically cleaned from Gemini Web

⏱️ Gateway Timeout Configuration

Control execution deadlines for browser automation, AI text & audio transcription

Quick Presets
180s

Maximum wait time for Gemini response generation (auto-synced with Antigravity Gateway HTTP timeout).

360s

Maximum wait time for audio/video upload processing and full transcription.

45s

Maximum wait time for loading the Gemini Web interface in Chromium.

🔀

Antigravity Gateway & Web Gemini Routing HYBRID ACTIVE

ប្តូរ Route ទៅកាន់ Pool ឬដំណើរការ Dual-Engine Smart Dispatch រវាង Web Chrome Profiles និង Antigravity Upstream។

ជ្រើសរើស Routing Mode សកម្ម
⚠️ ការណែនាំ និងការកត់សម្គាល់ហានិភ័យ (Antigravity Gateway Notice) សំខាន់
  • ការពឹងផ្អែកលើ Upstream (Upstream Dependency): Antigravity Gateway តម្រូវឱ្យសេវាកម្ម Upstream (Port 5551) កំពុងដំណើរការ។ ប្រសិនបើ Upstream បិទ ហើយ Auto-Fallback ត្រូវបានបិទនោះ Request នឹងឆ្លើយតប Error 502 Bad Gateway។
  • កម្រិតគណនី និង Quota (Tier & Quota): Models កម្រិតខ្ពស់ (ដូចជា gemini-4-argon) ទាមទារគម្រោងបង់ប្រាក់ Gemini Pro/Ultra Plan។ ការប្រើប្រាស់ហួសកម្រិតអាចបណ្ដាលឱ្យជាប់ Rate Limits ឬអស់ Quota ជាបណ្ដោះអាសន្ន។
  • សុពលភាព Session (Session Expiry): Token ឬ Session Cookie អាចនឹងផុតកំណត់នៅពេល Google ធ្វើបច្ចុប្បន្នភាពសុវត្ថិភាព។ សូមធ្វើការ Link Profile ឡើងវិញ ឬ Refresh Token បើមានបញ្ហា។
  • សុវត្ថិភាព Web Gemini Pool: គណនី Web Gemini Pool ទាំង ១២ នៅតែមានសុវត្ថិភាព និងឯករាជ្យ 100%។ យើងសូមណែនាំឱ្យបើក Auto-Fallback: ON ជានិច្ចដើម្បីធានាការងារមិនរអាក់រអួល។
🔐 Google Account OAuth 2.0 Authentication
NOT CONNECTED
G
user@gmail.com Authorized
Token valid for: --
⚡ Method 1: Multi-Profile Chrome Fleet (Round-Robin Support)
MULTI-ACCOUNT

Link 1 ឬ Multiple Accounts ពីក្នុងតារាងទៅកាន់ Antigravity Gateway ដើម្បីបង្វិល Round-Robin និងការពារ Rate Limits ដោយស្វ័យប្រវត្តិ។

Currently Linked Profiles (0): ● Round-Robin Active
No profiles linked yet.
វិធីទី២៖ ចូលតាមរយៈ Google Cloud OAuth 2.0
Custom OAuth Client ID & Secret (Google Cloud Console)
Callback URI: http://localhost:5550/oauth/callback
Or Paste OAuth Bearer Token Directly
🛡️
Smart Quota Guard (Antigravity Gateway Fleet) PROTECTED (85%)
ដក Accounts ដែលជិតដល់កម្រិតកំណត់ជាបណ្ដោះអាសន្ន ដើម្បីជៀសវាងបញ្ហាអស់ Quota (429)។
កម្រិតកំណត់សុវត្ថិភាព (Safe Threshold):
85%
ការកំណត់ Antigravity Upstream (Port 5551)
Probing...
Models ដែលបញ្ជូនទៅ Antigravity ពេលប្រើ Hybrid Mode:
gemini-3.5-flash-lite-medium gemini-3.5-flash-lite gemini-3.8-flash-medium gemini-4-argon gemini-3.8-flash-high claude-3-5-sonnet gemini-3.8-flash gemini-2.5-pro
ការផ្លាស់ប្តូរមានប្រសិទ្ធភាពភ្លាមៗ

➕ បង្កើត API Key ថ្មីជូនអតិថិជន

Generate a unique Bearer key with customized token quota

✨ API Key បង្កើតបានជោគជ័យ!
សូម Copy កូនសោខាងក្រោមនេះជូនអតិថិជន
អតិថិជន: --
កញ្ចប់ Token ដំបូង: --
💡 របៀបប្រើប្រាស់ក្នុងកម្មវិធីអតិថិជន (MatlyDubber / Python):
Header: Authorization: Bearer sk-live-...
Base URL: http://<IP>:5550/v1

💰 បញ្ចូល Token (Top-up)

បញ្ចូលសមតុល្យ Token បន្ថែមជូនអតិថិជន

អតិថិជន
--
Current Balance: 0 tokens

📜 ប្រវត្តិ Token & ការកាត់ប្រាក់ Client

Recent top-ups, consumption deductions, and balance adjustments

Date / Time Type Tokens Balance After Description
✨ Client API Keys & Token Billing: បង្កើត Key សម្រាប់លក់ឱ្យភ្ញៀវ ឬកាត់ Token ស្វ័យប្រវត្តិ

🔑 OpenAI API Token & Gateway Keys

Manage Bearer authorization token and endpoint security for your client apps

OpenAI Compatible Base URL
http://localhost:5550/v1
Active Key

Pass this in the HTTP header as Authorization: Bearer <token>

Enforce API Token Authentication Optional (Open)

When enabled, requests to /v1/* without a valid Bearer token will be rejected with HTTP 401 Unauthorized.

Client Integration Snippets

              
            
Saved permanently in settings.json

Notification

Gemini Web API Call Router

Permanently Delete Profile?

Are you sure you want to permanently delete this profile? This action cannot be undone.

🔑 Client API Keys & Token Billing

លក់ Token & គ្រប់គ្រងអតិថិជន

គ្រប់គ្រង API Key អតិថិជន, កាត់កងសមតុល្យ Token ស្វ័យប្រវត្តិ, និងបញ្ចូល Token (Top-up) សម្រាប់ MatlyDubber និង OpenAI Client នានា

Active Clients / Keys
0 / 0
Total Tokens Sold
0
Tokens Consumed
0
Remaining Balance
0
Showing 0 keys
អតិថិជន (Client) API Key សមតុល្យ Token (Balance) ប្រើប្រាស់សរុប ស្ថានភាព សកម្មភាព (Actions)
Loading API Keys & Billing Data...

Live Request Logs

Real-time Telemetry 💾 SQLite DB (Persistent) 0 in DB

Audit trace of all calls routed through OpenAI /v1/chat/completions and internal test routes saved permanently in database.

# Time Req ID Endpoint Pool
Routed Account 👁️
Model Status
Tokens (in / out)
Latency Action
No request activity recorded yet. Send a test chat or API request to stream telemetry.
Showing 0 of 0 logs |
Per page:
Page 1 / 1

Request Telemetry Inspector

User Prompt

          
⚠️
Format Mismatch: Model Response is Plain Text (Non-JSON) Status: 200 OK

The prompt requested strict JSON schema output, and Gemini Web returned HTTP 200 OK. However, the model outputted raw conversational text instead of valid JSON. Any client application expecting a JSON payload will fail to parse this response.

Model Response

          

Gemini Web Chat History

Live conversations detected from this account's persistent Google Gemini session.

Interactive Analytics & Pool Telemetry

● Live Telemetry 📅 Today's Report 💾 SQLite DB

Real-time throughput • Model & Account Matrix • Diagnostics • Daily, Weekly, Monthly & Custom Reports saved permanently in SQLite.

From To
Strategy:
Total Requests ⚡ Volume
0 requests
0 requests (Daily Report)
Avg Response Speed ⏱️ Latency
0.00s turnaround
Cluster-wide average
Success Rate 🎯 Health
100.0% reliability
0 errors • 0 cancelled
Commercial Cost Saved 💰 Savings
$0.000 USD est.
0 tokens generated

24-Hour Throughput Flow (Hourly Buckets)

Hourly Buckets

Average Response Latency by Model (Seconds)

Model Speeds

Account Quota & Workload Balance (%)

Weekly Limit %

Request Outcome & Error Diagnostics

Status Codes

Interactive Studio

Round-Robin Live

Multi-Account Gemini Gateway with Realtime Subtitles Studio & Audio Processing

180s limit
sec
Audio Attachment (MP3, WAV, M4A) 第001集.mp3
Your browser does not support audio playback.
Quick Samples:
Presets:
Presets:
Zero Gemini footprint
Model Response Studio 200 OK
Quick Preview:
⚡ Ready
Click "Start Audio Transcription" or choose "🎙️ Transcribe MP3" above to preview response.
No response data yet.
No JSON completion object generated yet.

Developer Guide & API Reference

OpenAI v1 Spec 🎙️ Whisper Audio

Complete API reference for Chat Completions, Whisper-Compatible Transcriptions, Audio Attachments, and Subtitles Dubbing

Endpoints: POST /v1/audio/transcriptions POST /v1/chat/completions POST /accounts/test-transcribe
Audio Transcribe Endpoint (POST /v1/audio/transcriptions) Whisper Compatible • Supports MP3, WAV, M4A, FLAC, OGG
Python (openai SDK)
from openai import OpenAI

client = OpenAI(base_url="http://localhost:5550/v1", api_key="local")

with open("第001集.mp3", "rb") as audio_file:
    transcription = client.audio.transcriptions.create(
        model="gemini-3.5-flash-lite",
        file=audio_file,
        prompt="Transcribe verbatim with timestamps and speaker tags into strict JSON."
    )
print(transcription)
cURL (Multipart Upload)
curl -X POST http://localhost:5550/v1/audio/transcriptions \
  -F "file=@第001集.mp3" \
  -F "model=gemini-3.5-flash-lite" \
  -F "prompt=Transcribe and translate into Khmer subtitles JSON" \
  -F "response_format=json"
Chat Completion Endpoint (POST /v1/chat/completions) Standard OpenAI Text / Vision Specification
Python (openai SDK)
from openai import OpenAI

client = OpenAI(base_url="http://localhost:5550/v1", api_key="local")

response = client.chat.completions.create(
    model="gemini-4-hydrogen",
    messages=[{"role": "user", "content": "Explain quantum computing in 2 sentences."}]
)
print(response.choices[0].message.content)
cURL (JSON Payload)
curl -X POST http://localhost:5550/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-4-hydrogen",
    "messages": [{"role": "user", "content": "Hello Gemini!"}]
  }'
Audio & Transcribe API Endpoints Directory
Method & Route Type Content-Type Description
POST /v1/audio/transcriptions OpenAI Spec multipart/form-data OpenAI Whisper compatible endpoint. Accepts audio file binary + prompt + model.
POST /accounts/test-transcribe Direct Router application/json Server audio path transcribe testing with optional target account and auto-delete.
POST /accounts/upload-audio Storage API multipart/form-data Uploads an audio file into gateway storage (./uploads/) and returns file path.
GET /accounts/sample-audios Discovery API application/json Scans workspace root and uploads folder for available MP3/WAV audio files.
GET /accounts/audio-file?path=... Stream API audio/mpeg, audio/wav Streams local audio file directly to browser for HTML5 audio player preview.
GET /sample-response?type=transcribe Fast Mock application/json Returns pre-calculated 30s drama Khmer subtitle segments for UI testing.
POST /v1/audio/transcriptions (Form Fields)
  • file (required): Binary file data (MP3, WAV, M4A, FLAC, OGG, AAC, WEBM).
  • model (optional): Model ID (defaults to gemini-3.5-flash-lite).
  • prompt (optional): Custom instructions (e.g. verbatim, Khmer dubbing schema).
  • response_format (optional): json, verbose_json, or text.
  • temperature (optional): Float between 0.0 and 1.0.
POST /accounts/test-transcribe (JSON Schema)
{
  "account_id": "",           // Specific account or "" for round-robin
  "model": "gemini-3.5-flash-lite",
  "audio_path": "第001集.mp3", // Server filename or absolute path
  "prompt": "Transcribe with timestamps...",
  "auto_delete": true        // Automatically delete chat from Gemini
}
JavaScript / Node.js (Fetch + FormData)
const formData = new FormData();
formData.append('file', audioBlob, 'audio.mp3');
formData.append('model', 'gemini-3.5-flash-lite');
formData.append('prompt', 'Transcribe to Khmer drama subtitles JSON');

const res = await fetch('http://localhost:5550/v1/audio/transcriptions', {
  method: 'POST',
  body: formData
});
const data = await res.json();
console.log(data);
Python (Direct Router /test-transcribe)
import requests

payload = {
    "account_id": "",  # Auto round-robin
    "model": "gemini-3.5-flash-lite",
    "audio_path": "第001集.mp3",
    "prompt": "Transcribe verbatim with timestamps into strict JSON",
    "auto_delete": True
}

res = requests.post("http://localhost:5550/accounts/test-transcribe", json=payload)
data = res.json()
print("Latency:", data["latency_seconds"], "s")
print(data["response"])
Expected Khmer Subtitle Output Structure:
{
  "summary": "Short scene dialogue summary",
  "segments": [
    {
      "speaker": "Speaker 1",
      "gender": "female",
      "emotion": "excited",
      "start_seconds": 1.76,
      "end_seconds": 4.18,
      "content": "轻点姐 疼",
      "khmer": "ថ្នមៗផងឈឺណាស់",
      "echo": 0
    },
    {
      "speaker": "Speaker 2",
      "gender": "male",
      "emotion": "serious",
      "start_seconds": 4.18,
      "end_seconds": 6.20,
      "content": "忍着点 牙都烂了",
      "khmer": "ទ្រាំបន្តិចទៅធ្មេញពុកអស់ហើយ",
      "echo": 0
    }
  ]
}
How Our System Translates Subtitles:
Requests send dialogue segments with timing (targetSec), length limits (maxChars), and speaker personas. Gemini Web generates natural spoken Khmer (km-KH) formatted specifically for voiceover dubbing.
Python: Parse & Extract Subtitle Segments
import json
from openai import OpenAI

client = OpenAI(base_url="http://localhost:5550/v1", api_key="local")

response = client.chat.completions.create(
    model="gemini-3.5-flash-lite",
    messages=[{"role": "user", "content": "Translate segments JSON into Khmer..."}]
)

raw_content = response.choices[0].message.content
data = json.loads(raw_content)

for seg in data["segments"]:
    print(f"Segment #{seg['id']} [{seg['targetSec']}s] ({seg['speaker']}): {seg['khmer']}")
    # Output: #0 [2.5s] (男主角): ថ្ងៃនេះម៉េចក៏អូនមកយឺតម្ល៉េះ
Preview pre-generated JSON responses directly via HTTP GET without triggering automated browser clicks:
Transcribe MP3 Sample

GET /sample-response?type=transcribe

Subtitles Sample (50 Segs)

GET /sample-response?type=subtitles

Conversational Text Sample

GET /sample-response?type=chat

Expected OpenAI Response Format:
{
  "id": "chatcmpl-9f8a2b...",
  "object": "chat.completion",
  "created": 1730040800,
  "model": "gemini-3.5-flash-lite",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 120,
    "completion_tokens": 340,
    "total_tokens": 460
  }
}
Gateway Flow & Load Balancing Pipeline
  1. Client Request: Your script sends standard OpenAI POST to /v1/chat/completions or /v1/audio/transcriptions.
  2. Round-Robin Selector: The gateway locks an available ready Google Account session via async queue.
  3. Playwright Web Automation: Enters prompt or attaches audio into Google Gemini Web UI within an isolated Chromium profile (./profiles/{acc}).
  4. Streaming & Completion Extraction: Waits for generation to finalize, extracts response text cleanly, and releases the profile concurrency lock.
  5. OpenAI Response: Returns compliant JSON or chunks via SSE stream.
# Code Status Meaning & Cause
1 200 OK Request succeeded. Returns standard JSON completion or SSE event stream.
2 400 Bad Request Empty messages list or missing user prompt.
3 404 Not Found Target profile ID or local avatar PNG not found.
4 422 Unprocessable Pydantic validation failure (malformed JSON payload).
5 500 Server Error Playwright execution crash or browser automation failure.
6 503 Unavailable No active/authenticated Google accounts ready in pool.
7 504 Timeout Gemini Web UI took longer than max_wait (180s) to finish responding.
Gemini Web API Call Router & Gateway • Production-Ready FastAPI & Playwright Automation