Creating Video Manifests with the Bitmovin API

What Are Manifests and Why Do You Need Them?

After encoding your video content into a streamable format, you need a manifest file to enable adaptive bitrate (ABR) streaming. Think of a manifest as a "playlist" or "index" that tells video players:

  • What video and audio quality options are available
  • Where to find each video segment
  • How to switch between qualities based on network conditions

This allows players to automatically adjust video quality in real-time, providing smooth playback regardless of the viewer's internet speed.

Understanding Your Options

Bitmovin offers flexible manifest creation with four key decisions to make:

key decisionoptions
Manifest TypeDASH / HLS / Smooth Streaming
Generation Timingduring encoding vs post-encoding
Configuration Methodcustom vs default
Generator VersionV2 vs LEGACY (deprecated)

Manifest Type: Choose Your Streaming Standard

Different devices and players require different manifest formats:

  • DASH (Dynamic Adaptive Streaming over HTTP): The most widely supported open standard, works across most devices and browsers
  • HLS (HTTP Live Streaming): Required for Apple devices (iPhone, iPad, Apple TV) and Safari browser, de-facto standard on all Apple devices
  • Smooth Streaming: Used for Microsoft platforms and legacy Windows applications

Best Practice: Create both DASH and HLS manifests to support the broadest range of viewers. Bitmovin makes this easy with a single configuration.

Generation Timing: When Do You Create the Manifest?

This is about triggering the process of building the actual manifest text file(s), based on the manifest API resource that you configured beforehand.

During Encoding Generation

How it works: Manifests are created during the encoding process on the same server instance.

Best for:

  • Publishing content as quickly as possible
  • Live streaming (this is your only option for live content)
  • Standard video-on-demand workflows

API Implementation: To enable during-encoding-manifests, add your manifest IDs to these properties of the Start Encoding or Start Live Encoding request when starting an encoding:

  • DASH: vodDashManifests
  • HLS: vodHlsManifests
  • Smooth Streaming: vodSmoothManifests (VOD only)

Preview Manifests (Special Feature): For time-critical applications, you can create preview manifests that allow viewers to start watching while the encoding is still in progress. Add your manifest IDs to these properties:

  • DASH: previewDashManifests
  • HLS: previewHlsManifests

Post-encoding Generation (Live-to-VOD, VOD)

How it works: Manifests are created after encoding completes, using separate API calls.

Best for:

API Implementation: Trigger manifest creation with separate start calls:

Important: Ensure all referenced encodings have the FINISHED status before generating manifests.

Configuration Method: How Much Control Do You Need?

Default Manifests (Recommended for Most Users)

  • When to use: Simple workflows, getting started quickly, or standard streaming needs
  • What it does: Automatically configures your manifest based on your encoded content
  • Includes: All video/audio renditions, basic settings optimized for general use

Custom Manifests (For Advanced Use Cases)

  • When to use: Complex workflows requiring specific manifest structure
  • Examples: Custom ad break insertion, specific subtitle configurations, advanced DRM setups
  • Trade-off: More control but requires deeper understanding of manifest specifications

Also refer to Default vs custom manifests for further details.

Generator Version: Using the Latest Technology

Bitmovin has two manifest generator versions:

  • V2 (current): Latest features, improvements, and bug fixes
  • Legacy (deprecated): Older version, deprecated for new users

If your organization was created after June 1, 2023: You automatically use V2 (no action needed)

If your organization was created before June 1, 2023: You may be using the legacy version. Consider migrating to Manifest Generator V2 for better performance and features.