> **Experimental**
>
> `@aws-cdk/aws-mediapackagev2-alpha` is an [**experimental**](/stability) (alpha) package: its API may change in any release, without a major version bump.
# TextFilterKey

Text manifest filter keys for free-form string values.

Use with `ManifestFilter.text()` and `ManifestFilter.textList()`.

For keys with fixed accepted values, use the dedicated methods on `ManifestFilter` instead:
- Audio codec: `ManifestFilter.audioCodec()` / `ManifestFilter.audioCodecList()`
- Video codec: `ManifestFilter.videoCodec()` / `ManifestFilter.videoCodecList()`
- Video dynamic range: `ManifestFilter.videoDynamicRange()` / `ManifestFilter.videoDynamicRangeList()`
- Trickplay type: `ManifestFilter.trickplayType()` / `ManifestFilter.trickplayTypeList()`

- Stability: [Experimental](/cdk/api/stability.html)
- Source: [`lib/endpoint.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0-alpha.0/packages/@aws-cdk/aws-mediapackagev2-alpha/lib/endpoint.ts#L147)

## Example

```ts
declare const channel: Channel;

new OriginEndpoint(this, 'Endpoint', {
  channel,
  segment: Segment.cmaf(),
  manifests: [
    Manifest.hls({
      manifestName: 'index',
      filterConfiguration: {
        manifestFilter: [
          ManifestFilter.bitrateRange(BitrateFilterKey.VIDEO_BITRATE, Bitrate.mbps(1), Bitrate.mbps(5)),
          ManifestFilter.numericRange(NumericFilterKey.VIDEO_HEIGHT, 720, 1080),
          ManifestFilter.videoCodecList([VideoCodec.H264, VideoCodec.H265]),
          ManifestFilter.numeric(NumericFilterKey.AUDIO_CHANNELS, 2),
          ManifestFilter.textList(TextFilterKey.AUDIO_LANGUAGE, ['en-US', 'fr']),
        ],
        timeDelay: Duration.seconds(30),
      },
    }),
  ],
});
```

## Members

| Member | Description |
| --- | --- |
| `AUDIO_LANGUAGE` | Audio languages or functional codes derived from encoder passthrough. |
| `SUBTITLE_LANGUAGE` | The subtitle language or functional codes derived from encoder passthrough. |
