> For the complete documentation index, see [llms.txt](https://play.docs.nexx.cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://play.docs.nexx.cloud/other-integration-options/cover-service.md).

# Cover Service

In nearly every Scenario, nexxOMNIA produces the necessary Image Files for all Covers and other Image Contexts of every Media Item backendwise in all necessary Sizes and Formats for optimal Delivery.

Nevertheless, in certain Situations, there may be the need for a special Cover in a specific Size or with a specific Overlay. You can use the Image Gateway Cover Service for this.

## General Usage

You generate a Service URL with the following Template:

**`https://images.nexx.cloud/:streamtype/:mediaid/:operation/:sizing.:format`**

{% hint style="info" %}
The **:streamtype** and **:mediaid** Parameters define the target Media Object as usual
{% endhint %}

{% hint style="info" %}
&#x20;The **:operation** Parameter defines the Behaviour of the URL after the Image Creation:

* **redirect** does not return anything but redirects the Browser via 302 HTTP Response to the CDN Location of the Cover of this Media Object
* **direct** will return the CDN Image directly (slower than **redirect**)
* **transform** will return the Image directly, but adds Transforms to it.
* **cachedtransform** behaves like **transform**, but will store the result permanently on the Asset CDN
  {% endhint %}

{% hint style="info" %}
The **:sizing** Parameter refers to the desired Image Resolution or Image Context
{% endhint %}

{% hint style="info" %}
The **:format** Parameter defines the Image Format. Supported Formats are **jpg**, **png**, **webp** and **avif.** If omitted, the original File Extension will be used.
{% endhint %}

## Optional Query Parameters

| Parameter         | Description                                                                                                                                      |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| **addPlayButton** | if set to 1, the Image will show a PlayButton on Top                                                                                             |
| **theme**         | if set to "dark" and an Error Image will be returned, it will be optimized for a Darkmode-suitable Environment                                   |
| **language**      | if a MultiLanguage Cover is requested with a non-default Language Version, query for this Version using the corresponding 2-Letter-Language Code |

## Image Sizing and Context

| Action                | Description                                  |
| --------------------- | -------------------------------------------- |
| **default**           | returns the Default Cover                    |
| **x2**                | if available, a 720p Cover will be returned  |
| **x3**                | if avaialble, a 1080p Cover will be returned |
| **max**               | the maximal Cover will be returned           |
| **actionshot**        | returns the ActionShot Cover, if available   |
| **quadcover**         | returns the Quad Cover, if available         |
| **abtestalternative** | returns the A/B Test Cover, if available     |
| **alternativecover**  | returns the alternative Cover, if available  |
| **banner**            | returns the Banner, if available             |

## Available Transform Operations

The Image Transform Operations are a powerfull Way to instantly recreate the given Images. Please notice though, that the more Operations are added, the slower the Result will be.

Generally, the URL Pattern for a given Transform is "/transform:ACTIONS:PARAMETERS" where Actions will be defined below and Parameters are optional. Both URL Parts are technically Comma seperated Lists of Values, but it is strongly advised to only use one Operation, if possible.

### Resizing

| Action            | Description                                                                                                                                                                                 | Parameters          |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- |
| **resizeexact**   | forces an exact Resizing, without applying Aspect Ratio                                                                                                                                     | WIDTHxHEIGHT        |
| **resizetothumb** | forces an exact Resizing, but internally applies the Aspect Ratio. The final Image will have the desired Dimensions, but it has been cut from the Middle of the Image, so its not distorted | WIDTHxHEIGHT        |
| **resizewithcut** | behaves exactly like resizetothumb, but the internal Rearrangement can be defined with the optional OFFSET Parameter                                                                        | WIDTHxHEIGHTxOFFSET |
| **resizetomax**   | delivers an Image, as big as possible with respecting the Aspect Ratio and the given Parameters                                                                                             | WIDTHxHEIGHT        |
| **resizewidth**   | scales the Image to the given Width and respects the Aspect Ratio                                                                                                                           | WIDTH               |
| **resizeheight**  | scales the Image to the given Height and respects the Aspect Ratio                                                                                                                          | HEIGHT              |

### Composition

| Action        | Description                                                     | Parameters       |
| ------------- | --------------------------------------------------------------- | ---------------- |
| **flipx**     | flips the Image on the X Axis                                   |                  |
| **flipy**     | flips the Image on the Y Axis                                   |                  |
| **flipxy**    | flips the Image on both Axis                                    |                  |
| **rotate90**  | rotates the Image on 90°                                        |                  |
| **rotate180** | rotates the Image on 180°                                       |                  |
| **rotate270** | rotates the Image on 270°                                       |                  |
| **border**    | renders a Border in the given Color and Sizing around the Image | HEX-COLORxSIZING |

### Quality

| Action        | Description                                                            | Parameters           |
| ------------- | ---------------------------------------------------------------------- | -------------------- |
| **lowq**      | reduces the Quality to the given Percentage (only on Image Format JPG) | QUALITY (in Percent) |
| **optimize**  | applies an internal Optimization Algorithm                             |                      |
| **sharpen**   | applies an internal Sharpening Algorithm                               |                      |
| **deskew**    | applies an internal Deskew Algorithm                                   |                      |
| **despeckle** | applies an internal Despeckle Algorithm                                |                      |

### Effects

| Action         | Description                  | Parameters            |
| -------------- | ---------------------------- | --------------------- |
| **blur**       | applies a Blur Filter        | STRENGTH (in Percent) |
| **motionblur** | applies a Motion Blur Filter | STRENGTH (in Percent) |
| **radialblur** | applies a Radial Blur Filter | STRENGTH (in Percent) |
| **negate**     | applies a Negation Filter    |                       |
| **sepia**      | applies a Sepia Filter       | STRENGTH (in Percent) |
| **gray**       | applies a Grayscale Filter   |                       |
| **charcoal**   | applies a Charcoal Filter    | STRENGTH (in Percent) |
| **oilpaint**   | applies an Oilpaint Filter   | STRENGTH (in Percent) |
| **sketch**     | applies a Sketch Filter      | STRENGTH (in Percent) |
| **swirl**      | applies a Swirl Filter       | STRENGTH (in Percent) |

## Examples

All Examples will be used on a Sample Video with ID 1580785.

You only want the Cover:

**`https://images.nexx.cloud/video/1580785`**

The same Cover, but in maximal Resolution and in WEBP Format

**`https://images.nexx.cloud/video/1580785/direct/max.webp`**

The same Cover, but now with a PlayButton on Top

**`https://images.nexx.cloud/video/1580785/direct/max.webp?addPlayButton=1`**

The same Cover, but with some Effects applies to it and the PlayButton on Top

**`https://images.nexx.cloud/video/1580785/transform:flipx,swirl:0,80?addPlayButton=1`**


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://play.docs.nexx.cloud/other-integration-options/cover-service.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
