> For the complete documentation index, see [llms.txt](https://docs.cstplus.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cstplus.org/documentation/feature-reference/distribution-and-syndication.md).

# Distribution and Syndication

Distribution lets you expose your entire channel lineup to FAST aggregators and third-party platforms with a single set of feed URLs. One toggle, three URLs, done.

***

### How it works

When syndication is enabled, CST+ generates three token-gated public feed URLs on the stream edge:

| Feed          | Format  | What it contains                                             |
| ------------- | ------- | ------------------------------------------------------------ |
| M3U playlist  | `.m3u8` | All channels with stream URLs and EPG reference              |
| XMLTV guide   | `.xml`  | Full EPG for all channels                                    |
| Channels JSON | `.json` | Channel list in a simple JSON format for custom integrations |

These URLs are read-only. They expose your channels to whoever has the token, but cannot be used to change anything on your server.

***

### Setting up syndication

Go to **Channels > Distribution** in the sidebar.

**Step 1: Enable syndication**

Toggle **Public syndication feeds** on.

**Step 2: Pick a dedicated line**

Choose a line from the dropdown to route aggregator traffic through. Stream URLs in the M3U feed authenticate using that line's credentials.

{% hint style="warning" %}
Create a **dedicated line** for syndication. Aggregators may pull your channels frequently and in parallel, consuming connection slots. A dedicated line prevents aggregator traffic from affecting your real viewers' connection limits.
{% endhint %}

**Step 3: Copy the feed URLs**

Three URLs appear once a line is selected:

* **M3U playlist** - submit to aggregators that take a playlist URL
* **XMLTV** - submit to aggregators that take a separate EPG URL
* **channels.json** - for platforms that use a JSON lineup format

**Step 4: Submit to aggregators**

Each aggregator has its own onboarding form. Most ask for an M3U URL and an optional XMLTV URL. Paste them in and the aggregator will start pulling your channels.

***

### Token security

All three feed URLs contain a token that authenticates the request. Without the token, the URLs return 403.

{% hint style="success" %}
If the token is ever shared or compromised, click **Regenerate token** on the Distribution page. The old token stops working immediately and a new set of URLs is generated. Update the URLs at your aggregators after regenerating.
{% endhint %}

***

### Supported platforms

CST+ feed format is compatible with the standard M3U + XMLTV pair that most FAST aggregators and platforms accept:

| Platform        | Feed type            |
| --------------- | -------------------- |
| Samsung TV Plus | M3U + XMLTV          |
| LG Channels     | M3U + XMLTV          |
| Roku            | M3U + XMLTV          |
| Pluto TV        | M3U + XMLTV          |
| Amazon Freevee  | Channels JSON or M3U |
| Plex            | M3U + XMLTV          |

{% hint style="info" %}
Each aggregator has its own review and approval process. Submitting the feed URLs starts the process, but your channel may take days or weeks to appear on the platform depending on the aggregator's editorial review.
{% endhint %}

***

### Monitoring syndication traffic

Aggregator connections appear in **Analytics** and the **Dashboard** connections panel under the dedicated syndication line. You can see how often each platform is pulling your stream and how much traffic it is consuming.

If an aggregator is pulling streams from every channel simultaneously 24/7 and consuming a large share of your bandwidth, consider putting the syndication line behind a separate edge node.

***

### Xtream Codes output

In addition to the public syndication feeds, CST+ speaks the Xtream Codes API natively. Any app or platform that supports Xtream can use your server directly:

```
Server:   http://YOUR_SERVER_IP:8080
Username: line username
Password: line password
```

Endpoints available:

| Endpoint                             | What it serves                                     |
| ------------------------------------ | -------------------------------------------------- |
| `/get.php`                           | M3U playlist with all channels the line can access |
| `/xmltv.php`                         | XMLTV EPG                                          |
| `/live/:user/:pass/:slug/index.m3u8` | HLS stream for a specific channel                  |
| `/live/:user/:pass/:slug.ts`         | Continuous TS stream for a specific channel        |


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.cstplus.org/documentation/feature-reference/distribution-and-syndication.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
