---
url: >-
  https://adk.nht.io/api/@nhtio/adk/batteries/media/functions/createMediaPipeline.md
---

# Function: createMediaPipeline()

```ts
function createMediaPipeline(
  config?: MediaPipelineConfig,
): Promise<MediaPipeline>;
```

Defined in: [src/batteries/media/index.ts:304](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/media/index.ts#L304)

Create a media pipeline.

## Parameters

| Parameter | Type                                                          | Description                                                               |
| --------- | ------------------------------------------------------------- | ------------------------------------------------------------------------- |
| `config`  | [`MediaPipelineConfig`](../interfaces/MediaPipelineConfig.md) | Engines, selection stages, step interceptors, and the media-ref resolver. |

## Returns

`Promise`<[`MediaPipeline`](../interfaces/MediaPipeline.md)>

The callable [MediaPipeline](../interfaces/MediaPipeline.md).

## Remarks

Config is validated eagerly, and so are the engines: every resolver in the array runs at
construction (capability declarations drive verb narrowing, so they must be known up
front), each result is contract-checked, and failures throw
`E_INVALID_MEDIA_PIPELINE_CONFIG` naming the offending index. Construction stays cheap —
bundled engine modules import their heavy peer dependencies lazily inside capability
methods, on first actual use.
