canonical: https://jentic.com/apis/amazonaws.com/mediapackage-vod

# AWS Elemental MediaPackage VOD

Jentic publishes the only available OpenAPI specification for AWS Elemental MediaPackage VOD, keeping it validated and agent-ready. MediaPackage VOD prepares video on demand assets stored in Amazon S3 for delivery in HLS, DASH, CMAF, and Microsoft Smooth Streaming formats. Packaging configurations describe the output streams, packaging groups bundle related configurations, and assets reference the source content to be packaged. The service runs just-in-time, so no transcoded copies sit in storage between requests, and it integrates with AWS Certificate Manager and SPEKE for DRM.

## For AI agents

Just-in-time package S3-stored video assets into HLS, DASH, CMAF, and Smooth Streaming outputs with optional DRM through SPEKE.

## Scope

Does not handle live streaming, transcoding, ad insertion, or video upload - use for just-in-time VOD packaging of S3-resident assets only.

## Capabilities

- Create packaging groups that organize related streaming output configurations
- Configure HLS, DASH, CMAF, and Microsoft Smooth packaging with bitrate, segment, and DRM options
- Register assets pointing to source content in Amazon S3 with associated ARNs
- Generate just-in-time HLS, DASH, CMAF, and Smooth playback URLs without pre-packaging
- Integrate with SPEKE-compliant key servers for DRM-protected streams
- Configure egress access logs and CloudWatch logging on packaging groups
- Tag assets, packaging groups, and packaging configurations for cost allocation

## Use cases

### Multi-Format VOD Streaming Library

Streaming services package on-demand titles into HLS for iOS, DASH for Android and web, CMAF for unified adaptive playback, and Smooth for legacy Microsoft clients. MediaPackage VOD does the packaging just-in-time at request, so the storage cost is the source asset alone in S3 and the service generates each manifest on demand. Setup is one packaging group per profile (e.g. 'movies-h264-aac') with one configuration per output format.

Example prompt: Create a packaging group named 'movies-h264-aac', then add an HLS packaging configuration with SegmentDurationSeconds=6 and a DASH configuration with PeriodTriggers=[ADS]

### DRM-Protected Premium Content

Studios and OTT services protect premium VOD assets with DRM by attaching a SPEKE key provider configuration to packaging configurations. MediaPackage VOD requests content keys at packaging time, applies AES-128 or sample-AES encryption, and emits DRM-protected manifests for Widevine, PlayReady, or FairPlay. Source assets in S3 stay unencrypted; the encryption is applied at the moment of request.

Example prompt: Create an HLS packaging configuration with HlsPackage.Encryption.SpekeKeyProvider configured against your provider URL and SystemIds for FairPlay and Widevine

### Episodic Content Catalog Onboarding

Workflow services that onboard new episodes call CreateAsset for each new file as it lands in S3, register it under a packaging group, and immediately get back manifest URLs ready for the client app. The asset references the SourceArn of the S3 object so MediaPackage VOD can read it on request. No pre-transcoding or pre-packaging step is required - the asset is queryable as soon as the API returns 201.

Example prompt: Call CreateAsset with Id='ep-s01e01', SourceArn='arn:aws:s3:::content/show/ep-s01e01.mp4', and PackagingGroupId='show-h264-aac', then return the EgressEndpoints array of playback URLs

### AI Agent Media Operations

Operations agents call MediaPackage VOD through Jentic to register newly uploaded assets, audit packaging configurations, and surface playback URLs to downstream catalogs. Jentic isolates the AWS access keys and exposes the asset, packaging group, and packaging configuration operations as discoverable tools, so the agent can react to S3 upload events without learning the AWS SDK.

Example prompt: Search Jentic for 'register a vod asset', load the CreateAsset operation, and execute it with the new SourceArn and target PackagingGroupId from the upload event

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /packaging_groups | Create a packaging group |
| GET | /packaging_groups | List all packaging groups |
| POST | /packaging_configurations | Create a packaging configuration |
| POST | /assets | Register a new VOD asset |
| GET | /assets/{id} | Describe a VOD asset and its egress endpoints |
| PUT | /packaging_groups/{id}/configure_logs | Configure egress access logs on a packaging group |
| DELETE | /packaging_configurations/{id} | Delete a packaging configuration |

## Key resources

- **PackagingGroups** — Group related streaming configurations and configure egress logs
- **PackagingConfigurations** — Define HLS, DASH, CMAF, or Smooth output options including DRM
- **Assets** — Register VOD source content from S3 for just-in-time packaging
- **Tags** — Apply cost allocation tags across MediaPackage VOD resources

## Why Jentic

- **Setup:** Wiring AWS Elemental MediaPackage VOD by hand means implementing Signature Version 4 signing, resolving the regional mediapackage-vod host, and assembling the SPEKE encryption shape yourself. Through Jentic you install once, import MediaPackage VOD from the API Directory, store the AWS keys once, and your agent calls it.
- **Permission scoping:** MediaPackage VOD puts the packaging group and asset id in the URL path (/packaging_groups/{id}, /assets/{id}), so a rule can pin your agent to one packaging group: it can configure and read that group and nothing else. You choose the operations it may call, so destructive ones like asset or packaging-group deletion are not included unless you add them.
- **Credential handling:** Your AWS access keys are stored once, encrypted, by your own Jentic One instance and each request is signed with Signature Version 4 at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'register a vod asset' or 'create a packaging configuration', and Jentic returns the matching MediaPackage VOD operation with its input schema, including the SPEKE configuration shape required for DRM, so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Mux** — Mux is a managed video API; MediaPackage VOD is a just-in-time packager only
- **Cloudflare** — Cloudflare Stream is an end-to-end alternative; MediaPackage VOD focuses on packaging only
- **AWS MediaTailor** — MediaTailor inserts targeted ads into streams MediaPackage VOD packages

## FAQ

### Why is there no official OpenAPI spec for AWS Elemental MediaPackage VOD?

AWS does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call AWS Elemental MediaPackage VOD via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the MediaPackage VOD API use?

The API uses AWS Signature Version 4 (HMAC) with an access key ID and secret access key. IAM policies must allow mediapackage-vod actions and s3:GetObject on the source bucket so the service can read VOD content for packaging. Through Jentic, the keys live in the encrypted vault and Jentic signs each request server-side.

### Can I configure DRM with the MediaPackage VOD API?

Yes. When creating an HLS, DASH, CMAF, or Smooth packaging configuration, set the Encryption.SpekeKeyProvider object with your SPEKE-compliant key server URL, the RoleArn that can call it, and the SystemIds for the DRM systems you support (Widevine, PlayReady, FairPlay).

### What are the rate limits for the MediaPackage VOD API?

AWS does not document explicit per-second limits for control-plane operations in this spec. Soft quotas apply to the number of packaging groups, configurations per group, and assets per account - see the AWS service quotas console for current values in your region.

### How do I register a new VOD asset through Jentic?

Search Jentic for 'register a vod asset' to surface POST /assets. Load the schema with the Jentic SDK (pip install jentic), then execute it with the Id, SourceArn pointing at your S3 object, SourceRoleArn that grants read access, and the target PackagingGroupId. The response contains EgressEndpoints with playback URLs.

### Is AWS Elemental MediaPackage VOD free?

No. MediaPackage VOD charges per GB processed for packaging and per GB egressed to viewers, with separate rates for HLS, DASH, and other formats. Standard CloudFront and S3 charges apply to the rest of the delivery path. See the AWS Elemental MediaPackage pricing page for current rates.

### Can I limit what my agent is allowed to do with the AWS Elemental MediaPackage VOD API?

Yes. Because you run Jentic One yourself, your own rules decide which MediaPackage VOD operations and credentials the agent may use. Since the packaging group and asset id sit in the URL path (/packaging_groups/{id}, /assets/{id}), you can pin the agent to a single packaging group so it configures and reads only that group and its assets. You choose the operations it may call, so destructive ones like DELETE /packaging_configurations/{id} or packaging-group deletion are excluded unless you add them.
