> For the complete documentation index, see [llms.txt](https://platform.docs.3q.video/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://platform.docs.3q.video/interface/projekte/projekteinstellungen/contentabsicherung.md).

# Contentabsicherung

Mit der "Contentabsicherung durch Projektschlüssel" kann die Auslieferung von Live-und On-Demand-Inhalten über den 3Q Player, direkte Streaming URLs oder Download URLs geschützt werden. Es sollte zusätzlich die Playerprotection aktiviert werden um den Schutz zu erweitern, da mit dem ungeschützten Player auch gültige Token, für den Abruf Ihrer Inhalte, erzeugt werden können.

{% hint style="info" %}
Wenn Sie diese Option aktivieren und unseren Player in eine Webseite einbetten, wird die Schlüsselerzeugung für diese Absicherung automatisch geregelt. Zusätzlich sollte möglichst die Playerprotection aktiviert werden. Wenn Sie unseren Player nicht verwenden, z.B. bei progressive Download oder bei Verwendung eines alternativen Player, von einem Drittanbieter, müssen Sie die Schlüssel selbstständig erzeugen.
{% endhint %}

Sie aktivieren die Contentabsicherung im Side Sheet "Projekteinstellungen" per Häkchen in der Checkbox "Contentabsicherung durch Projektschlüssel aktivieren".&#x20;

Sie können hier den Projektschlüssel über die Icons:

1. kopieren
2. bearbeiten
3. neu erzeugen

*Abbildung: Side Sheet "Projekteinstellungen", Allgemein*

<figure><img src="/files/GVaCpQNbcXIZrqSTVRPn" alt=""><figcaption></figcaption></figure>

## Schlüssel mit Hilfe von PHP oder einer anderen Programmiersprache erzeugen <a href="#page_beispiel_schlusselerzeugung" id="page_beispiel_schlusselerzeugung"></a>

Für die Nutzung der direkten Streaming- und Download-URLs **ohne den 3Q Player** ist es, bei aktiver Contentabsicherung, notwendig, für jeden Abruf eines Inhaltes einen Schlüssel zu generieren.&#x20;

```
// token.php
function generateToken() {

$expires = time() + 600; // Gültigkeit des Schlüssels, aktuelle Zeit zzgl. 10 Minuten
$_user_agent = ''; // User Agent
$project_key = ''; // Your private project key
$md5 = md5($expires.$project_key.$_user_agent, false);

return $md5.'/'.$expires;
}
```

Link generieren:

```
https://sdn-global-streaming-cache.3qsdn.com/s/{generateToken()}/3144/files/17/11/766971/3144-F98zkwncqTR7BMg2.ism/manifest.m3u8?format=hls&mime=mp4&source=html5
```

{% hint style="danger" %}
Es ist essentiell, dass für jeden Aufruf ein eigener Schlüssel generiert wird.
{% endhint %}


---

# 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://platform.docs.3q.video/interface/projekte/projekteinstellungen/contentabsicherung.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.
