# Doomersion > Doomersion is a language-learning app built around short-form video immersion. Users learn by watching YouTube Shorts with interactive, clickable subtitles that provide word-level explanations, translations, and grammar breakdowns. ## API The Doomersion API processes YouTube videos at scale: download, transcribe (with speaker diarization and word-level timing via ElevenLabs Scribe v2), and upload results to **your** S3-compatible bucket. - [API Documentation](https://doomersion.com/api) - [OpenAPI Spec](https://api.doomlingo.ai/openapi.json) ### Quick Reference Authentication: `X-API-Key` header on every request. Every `POST /jobs` call must include a `bucket` object with your S3-compatible credentials: - `name`, `endpoint`, `access_key`, `secret_key`, `region` - Token must allow `PutObject`. Works with AWS S3, Cloudflare R2, MinIO, etc. - Credentials are used only for that upload; not stored after the job. Endpoints: - `POST /jobs` — Submit YouTube URLs + bucket credentials (up to 10,000 URLs per job) - `GET /jobs/{job_id}` — Poll job status (queued → processing → completed) - `GET /jobs/{job_id}/results` — Get per-video results with S3 paths - `GET /health` — Health check Output per video (in your bucket): - `{job_id}/{video_id}.mp4` — downloaded video - `{job_id}/{video_id}.json` — transcript with segments, speaker IDs, and word-level millisecond timestamps ### Integration Flow 1. POST /jobs with YouTube URLs and bucket object → get job_id 2. Poll GET /jobs/{id} every 10-30 seconds → wait for "completed" 3. GET /jobs/{id}/results → get S3 paths 4. Download .mp4 and .json from your bucket Processing time: 30-90 seconds per video. Contact: hello@doomlingo.ai