Unified API Platform

Video Transcription & Multiplayer Game Services

All Services Operational · API v1.0

Video Transcriber

AI-powered subtitle generation using OpenAI Whisper & NVIDIA Riva

  • Multi-language support (57+ languages)
  • Real-time transcription progress
  • SRT subtitle export
  • Whisper + NVIDIA Riva engines
Open App

Guess the Imposter

Real-time multiplayer deception game with AI topics

  • AI topic generation
  • Real-time synchronization
  • Voting mechanics
  • Live player tracking
Play Game

Authentication

Secure user auth with email/password and Google OAuth2

  • JWT cookie-based sessions
  • Google OAuth2 sign-in
  • Email/password registration
  • Secure HttpOnly cookies

Model Registry

Browse and download AI model files via authenticated API

  • Model metadata & checksums
  • Streaming file downloads
  • API key authentication
  • Auto-scanned model directory
Backend
FastAPI
Database
MongoDB
AI Models
Whisper
Speech
Riva
Topics
Gemini
Auth
OAuth2

Video Transcriber API

Convert videos to timestamped subtitles with AI transcription

Core Endpoints

Create Transcription Job

POST /api/jobs

Upload a video file and start transcription

Get Job Status

GET /api/jobs/{job_id}

Check status and progress of a transcription job

Download Subtitles

GET /api/jobs/{job_id}/subtitles

Download the generated SRT subtitle file

List All Jobs

GET /api/jobs

Retrieve a list of all transcription jobs

Delete Job

DELETE /api/jobs/{job_id}

Delete a transcription job and its files

Supported Models

tiny — Fastest, lowest accuracy (~40 MB)

base — Balanced speed/accuracy (~140 MB)

small — Good accuracy (~500 MB)

medium — High accuracy (~1.5 GB)

large-v3 — Highest accuracy (~3 GB)

Supported Languages

57+ languages including English, Spanish, French, German, Chinese, Japanese, Arabic, Hindi, and more.

Request Parameters

file — Video file to transcribe (required)

language — Language code (e.g. en, es) — auto-detect if omitted

translateon or off — translate to English

modeltiny, base, small, medium, large-v3 (default: medium)

NVIDIA Riva Endpoint

Create Riva Transcription Job

POST /api/riva/jobs

Upload a video/audio file and queue transcription via NVIDIA Riva. Supports large files with automatic chunking.

file — Video or audio file to transcribe (required)

language — Source language code (default: ja)

translateon or off — translate to English (default: on)

Status, download, list, and delete reuse the standard /api/jobs endpoints above.

Guess the Imposter API

Real-time multiplayer game where players guess who has a different topic

Game Features
  • AI-generated topic pairs using Gemini
  • Random imposter assignment
  • 10-minute discussion phase
  • 2-minute voting phase
  • Real-time player synchronization
  • Support for 3–8 players per game
  • 8+ game categories with AI variations
Core Endpoints

Create Game

POST/api/game/create

Create a new game session with a category

Join Game

POST/api/game/{session_id}/join

Join an existing game with session code

Start Game

POST/api/game/{session_id}/start

Start the game and assign imposter (minimum 3 players)

Get Game State

GET/api/game/{session_id}?player_id={id}

Get current game state — shows different topic based on role

Submit Vote

POST/api/game/{session_id}/vote

Vote for suspected imposter during voting phase

Transition to Voting

POST/api/game/{session_id}/transition-voting

End discussion and start voting phase

End Voting & Get Results

POST/api/game/{session_id}/end-voting

End voting and determine game results

Get Game Result

GET/api/game/{session_id}/result

Retrieve reveal/result after voting

List Available Games

GET/api/games/available

Get list of all games waiting for players

Start New Round

POST/api/game/{session_id}/new-round

Start a fresh round for the same players

Player Heartbeat

POST/api/game/{session_id}/heartbeat

Keep a player marked active in a session

Admin Endpoints

Cleanup Inactive Players

POST/api/games/cleanup-inactive

Remove inactive players from waiting games

Cleanup Old Games

POST/api/games/cleanup

Delete old/waiting game sessions

Delete Game

DELETE/api/game/{session_id}

Delete a game session and all its data

Game Categories
🦁 Animals 👨‍💼 Professions 🌍 Countries 🍎 Fruits ⚽ Sports 🎬 Movies 🦸 Superheroes 🍕 Foods
Game Phases

Waiting — Players can join the game

Discussion — 10 minutes — players discuss the topic

Voting — 1 minute — players vote for suspected imposter

Result — Reveal and scores shown

Play Game Now →

Authentication API

Secure user authentication with email/password and Google OAuth2

How It Works

Authentication uses JWT tokens stored in HttpOnly cookies. After login, a secure cookie is set automatically—no need to manage tokens manually.

Two flows are supported: email/password registration & login, and Google OAuth2 single sign-on.

Password Authentication

Register

POST /auth/register

Create a new account with email and password. Uses OAuth2 form encoding.

Login

POST /auth/token

Authenticate with email/password. Returns a JWT in a secure HttpOnly cookie.

Google OAuth2

Start Google Login

GET /auth/google/login

Redirects to the Google OAuth2 consent screen

Google Callback

GET /auth/google/callback

Handles the OAuth2 callback, creates/updates user, sets JWT cookie, and redirects to the frontend

Session Management

Get Current User

GET /auth/me

Return the profile of the currently authenticated user

Logout

POST /auth/logout

Clear the HttpOnly authentication cookie and end the session

Request Format

Register & Login use OAuth2 form data (application/x-www-form-urlencoded):

  username — User's email address

  password — User's password

Auth Cookie Details

Cookie name: access_token

HttpOnly: Yes — not accessible via JavaScript

Secure: Yes — HTTPS only

SameSite: None — cross-origin supported

Models API

Browse and download AI model files from the server

Authentication

All model endpoints require a valid X-Api-Key header. Contact the administrator to obtain an API key.

Endpoints

List All Models

GET /api/models

Return metadata for every available model file

Download Model

GET /api/models/download/{model_id}

Stream a model file as a binary download

Response Schema

Each model object includes:

id — Stable, URL-safe short ID (SHA-256 derived)

name — Human-readable model name

fileName — Original file name on disk

downloadUrl — Direct download path

sizeBytes — File size in bytes

lastModified — ISO 8601 timestamp (UTC)

checksum — SHA-256 hex digest for verification

Example Request
curl -H "X-Api-Key: YOUR_KEY" https://api.ayush.ltd/api/models
Rate Limits

List models: 2 requests / minute

Download model: 5 requests / hour