media-pipeline prod operational

Transcode queue and asset delivery

Accepts source media, produces a rendition ladder, serves the results over HTTP. Used by internal tooling and by the publishing frontends. Not a public endpoint.

Access requires a service token. Requests without one are rejected at the edge.

Rendition ladder

ProfileResolutionCodecTarget bitrate
2160p3840×2160AV1 / HEVC12 Mbps
1080p1920×1080H.264 high4.5 Mbps
720p1280×720H.264 main2.2 Mbps
480p854×480H.264 main900 kbps

Endpoints

POST /api/jobs
Submit a source URL and a ladder. Returns a job id.
GET /api/jobs/{id}
Job state: queued, running, done, failed.
GET /video/download/…
Streams a finished rendition. Long-lived, chunked, not cacheable. Retention is seven days.
GET /health
Liveness probe. Returns {"status":"ok"}.

Example

# submit
POST /api/jobs
{
  "source": "s3://ingest/raw/clip.mov",
  "ladder": ["1080p", "720p"],
  "crf": 23
}

# 202 Accepted
{ "id": "j_8f21c4", "state": "queued" }

# fetch a rendition
GET /video/download/j_8f21c4/1080p

Notes

Downloads are streamed directly from the worker node rather than staged, so a single response can stay open for the length of the transfer. Clients should not set a read timeout below 900 seconds.

Responses on /video/download/ carry Cache-Control: no-store. Do not place a caching layer in front of this path.