> ## Documentation Index
> Fetch the complete documentation index at: https://docs.agentcdn.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Play in your own player

> Choose where your videos play, start your player at the cited second, and stream from your own HLS hosts.

For a catalog account, AgentTV never re-hosts your video for playback. A video plays either in your own web player, or in the AgentTV player from your own HLS stream.

## The Playback setting

In the console, open **Settings**, then **Profile**, then **Playback**. "Play videos in" has two options:

| Option | Value | What it does |
| - | - | - |
| Source player | `source` | Each video plays where it came from: YouTube, or your own web player. Where an app cannot run that player, the video plays in the AgentTV player with your name and a link to your page. |
| AgentTV player | `agentcdn` | Videos play in the AgentTV player. |

The setting is stored per account as `playback_player`. Today you change it only in the console. The account API and the account MCP do not offer it.

## Where your own player can run

Your web player runs in a frame only on pages that can frame an outside player:

| Surface | Your own player | YouTube | Link to your page |
| - | - | - | - |
| AgentTV console video page | Yes | Yes | Yes |
| AgentTV watch page | No | Yes | Yes |
| Ask box | No | Yes | Yes |
| ChatGPT and Claude widgets | No | No | Yes |

Everywhere your player cannot run, the AgentTV player plays the video from your stream, with a credit link to your page.

### What your player needs

AgentTV frames your player only when all of these hold:

* Your Playback setting is **Source player**.
* Your video sitemap gives the video a `video:player_loc` on https. The [catalog import](https://docs.agentcdn.com/guides/import-catalog.md) stores it.
* The video is public in your catalog.
* Your rights allow playback and the source embed, and they have not expired.
* The play is not members-only or a preview.

> [!WARNING]
>
> Your player runs inside another site's iframe. It must play there without a consent banner. A cross-site frame drops cookies marked `SameSite=Lax` or `Strict`, so a player that reads consent from such a cookie shows its banner again, or a blank frame, and the moment never plays. Fix it one of two ways: serve an embed that plays without a consent step, or mark the consent cookies `SameSite=None; Secure`. The second works in Chrome only, because Safari and Firefox block third-party cookies.

If your player cannot run in a frame, AgentTV can play your own HLS stream in its player instead, on the console video page, at the moment. Your player stays the fallback. We turn this on per catalog source, with your written OK.

The source embed right is off by default for a catalog account. AgentTV turns it on only with your written OK.

The frame runs with `sandbox="allow-scripts allow-same-origin allow-presentation"`.

## Start at the moment

AgentTV starts YouTube embeds and `player.vimeo.com` players at the cited second with no setup.

Your own player starts at a second through query parameters you name. Send us:

* **The time parameter** (required). The query parameter that takes the start time, in whole seconds.
* **The id parameter** (optional). The query parameter that takes the media id, taken from the last path segment of the player URL. Name it only if your player needs the id to start at a time.

Each name is 1 to 64 letters, digits, `.`, `_` or `-`. There is no console control for this yet. AgentTV sets it for your catalog source.

With a time parameter `t` and an id parameter `media`, a moment at 95 seconds on `https://player.example.com/embed/abc123` opens:

```text theme={null}
https://player.example.com/embed/abc123?t=95&media=abc123
```

Without a start rule, your player plays the full video, and the page names the moment's time, for example "Full video. The moment starts at 1:35."

A change to the start rule shows on the next page load. Nothing needs to import again.

## Stream from your own HLS hosts

When the AgentTV player plays your video, it reads the stream from your own hosts through AgentTV's stream proxy. The proxy reads only from the hosts on your account's allow list. See [Your stream hosts](https://docs.agentcdn.com/guides/import-catalog.md#4-your-stream-hosts).

Nothing in search, discovery or the page block carries a raw stream URL. A stream URL comes only from a playback call that checked your rights first. The URL AgentTV hands out points at its proxy, never at your host, and it is short-lived.

Each play reads its segments from your CDN, so your CDN serves the bytes and counts the traffic. AgentTV keeps no playback copy of your video.

## In AI apps

* **Claude** plays HLS. Your stream plays inline in Claude, from the cited second.
* **ChatGPT** plays MP4 only today. For a video you stream only as HLS, the ChatGPT card cannot play the file. It keeps the link that opens the moment.

The player in both apps is the AgentTV player. AI apps do not run outside players in their cards, so your own player, and the analytics tags in it, do not load in the chat. See [Play a moment in an AI app](https://docs.agentcdn.com/guides/play-in-chat.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.