# Media Processing The Media Processing API exposes the Transform service — a managed job queue for converting, resizing, transcoding, and analyzing media files. Each organization has its own isolated priority queue, ensuring processing workloads remain independent across tenants. Workers execute in Docker containers on AWS Lambda (migrating to Spot Fargate) and support a wide range of operations: | Operation | Examples | |---|---| | **Image processing** | Resize, crop, format conversion (JPEG, PNG, WebP, AVIF), resolution scaling, thumbnail generation | | **Video transcoding** | Format conversion, bitrate adjustment, preview clip generation | | **Document conversion** | Office/PDF to image preview, page extraction | | **AI enrichment** | Image hash generation, visual feature extraction, content classification, captioning (via AWS Bedrock) | **Job operations:** - `submit` — enqueue a new transform job, specifying the input content reference, operation type, and output parameters; returns a job ID for status tracking - `status` — poll the current state of a job (`queued`, `running`, `completed`, `failed`) and retrieve the output content location when complete - `cancel` — remove a queued job before execution begins; jobs already running cannot be cancelled mid-execution ## Submit transform job - [POST /api/v1/transform/submit](https://api.tenovos.com/openapi/content-intelligence/media-processing/tenovos.transform.transformservice.submit.md): Submits one or more media transformation jobs for asynchronous processing. Request: jobs - List of Job definitions to submit. Each Job includes: contentSource - The input media, specified as either a url or a contentId. name - Human-readable name for the job. tasks - Ordered list of Task operations to execute. Each Task specifies: inputContentLabel - Optional label to chain output from a prior task as input. outputContentLabel - Optional label to reference this task's output in later tasks. details - Specifies the operation to perform. One of: Delivery - Defines where to store the transformed output (platform content storage or an external S3 location). Include one Delivery task as the final step of every job. ImageTransform - Resize, crop, change format (JPEG, PNG, WebP, AVIF), or convert the color space of an image. VideoTranscoding - Transcode video to a different codec, bitrate, or resolution. Optionally generate a poster image, extract a transcription, or produce a keyframe montage. DocumentTransform - Extract a poster image or text content from a document (PDF, Office formats). notification - Optional webhook URL to notify when the job completes. correlationId - Optional caller-supplied ID for correlating jobs with external systems. Response: jobs - List of JobStatusResponse objects, one per submitted job, each containing the assigned job id and initial status (QUEUED or PENDING). ## Get transform status - [POST /api/v1/transform/status](https://api.tenovos.com/openapi/content-intelligence/media-processing/tenovos.transform.transformservice.status.md): Retrieves the current status and results of one or more transform jobs by their IDs. Request: ids - List of job IDs to check status for. Response: jobs - List of JobStatusResponse objects, each containing: id - Job ID. status - Current status (QUEUED, PENDING, INPROGRESS, COMPLETED_OK, COMPLETED_ERROR, or COMPLETED_CANCELLED). message - Optional status or error message. correlationId - The caller-supplied correlation ID, if provided at submission. results - List of output files produced by the job, each including the filename, download URL, MIME type, size, and type-specific properties (dimensions for images, duration for video, page count for documents). ## Cancel transform job - [POST /api/v1/transform/cancel](https://api.tenovos.com/openapi/content-intelligence/media-processing/tenovos.transform.transformservice.cancel.md): Cancels one or more in-progress or queued transform jobs. Request: ids - List of job IDs to cancel. Response: (empty)