# 再生セッションを作成

Request and consume the DRM-X Universal Playback Session Contract with authentication, trusted Content IDs, and bounded authorization.

再生が許可されるまでの流れ

視聴できるユーザーは、お客様のバックエンドが判断します。DRM-X は再生の認可情報を返し、プレーヤーはその情報を使って DRM ライセンスをリクエストします。

- 01**視聴者**

お客様のサービスにログインし、動画の再生をリクエストします。

- 02**お客様のバックエンド**

購入履歴、サブスクリプション、その他の視聴権限を確認します。

- 03**DRM-X**

選択した再生ルールを適用し、再生設定と認可情報を返します。

- 04**プレーヤー**

受け取った認可情報を使い、再生に必要な DRM ライセンスをリクエストします。

バックエンドはアクセスを決定します。DRM-Xは署名されたポリシーを強制します。暗号化されたメディアとDRMのライセンスは、別の配送パスに従います。

API 

## ユニバーサル・プレイバック・セッション[#](#create-a-universal-playback-session) を作成する



```
POST https://api6.drm-x.com/api/v1/playback/environments/{siteId}/sessions
Accept: application/json
Content-Type: application/json
X-DRMX-Client-Id: {siteKey}
X-DRMX-Client-Secret: {accessKey}
```



```
{
  "contentId": "course-12-lesson-4",
  "contentType": "vod",
  "drmSystem": "widevine",
  "subject": "customer-user-1001",
  "sessionId": "new-unpredictable-id-per-playback",
  "playbackMode": "streaming",
  "licensePolicyTemplate": "multi-tier-standard",
  "useEnvironmentDefaults": true,
  "applicationId": "customer-web",
  "platformCapabilities": {
    "clientPlatform": "web",
    "drmSystems": ["widevine"],
    "manifestTypes": ["dash"],
    "maximumHeight": 2160,
    "persistentState": false,
    "sdkVersion": "1.2.0-preview.6"
  }
}
```



成功したContract v1応答には、正規のマニフェスト、利用可能なマニフェストのバリアント、DRM-固有のライセンスURL、短命 DRM License Token、または顧客のプロキシの承認、リリースルート、ライセンスされた最大高さ、および許可されたトラックが含まれます。 `Cache-Control: no-store`でそれを返します。



1つの予測不可能なセッション ID を使用して、実際の再生の試みを行います。デバイス全体で ID を再利用することで、同時ストリームカウントが失われます。





## 認証と信頼できるリクエストフィールド[#](#authentication-and-trusted-request-fields)

`license-tokens:create` を持つプロジェクト API クライアントでこの API を呼び出します。 `siteId` として環境 UUID を使用します。 認証されたビューアはエンドポイントを呼び出します。エンドポイントは信頼できるフィールドを提供します。

| フィールド | 意味する | 統合ルール | 
| --- | --- | --- |

| `contentId` | 公開されたコンテンツ参照 | 資格チェック後、信頼できるカタログから解決します。 | 

| `subject` | 安定したビューア識別子 | 認証されたセッションから派生し、クライアントが認めたユーザーIDではなく。 | 

| `drmSystem` | `widevine`、`playready`、`fairplay`、または`wiseplay` | 選択した DRM を プレーヤー 関数にマッチさせます。 | 

| `sessionId` | この再生の試みのアイデンティティ | 試みごとに新しい予測不可能な値を生成します。 | 

| `contentType` | `vod` または `live` | コンテンツに登録されたタイプを使用してください。 | 

| `playbackMode` | 契約v1の`streaming` | オフライン再生では、後続の契約延長が必要です。 | 

| `licensePolicyTemplate` / `licensePolicy` | 名前付きポリシーまたはカスタムポリシー | サーバで選択してください。 どちらも供給しないでください。 [ のポリシー ](https://docs.drm-x.com/ja/license-service/policies) を参照してください。 | 

| `platformCapabilities` | プラットフォーム、DRM システム、マニフェストタイプ、デバイスヒント | 新しいインテグレーションで明示的な機能を送信します。 クライアントを記述します。 ライセンスポリシーを上書きしません。 | 



## 応答の記述子を消費して下さい[#](#consume-the-response-descriptors)

ネストされたコントラクトv1記述子を使用してください。 ライセンスURLを推測から構築したり、登録されたマニフェストURLをプレーヤー入力に置き換えたりしないでください。

| 応答分野 | 使い方 | 
| --- | --- |

| `contractVersion` | 返された契約バージョンが統合によってサポートされることを確認します。 | 

| `manifestUrl` / `manifestUrls` | 選択されたマニフェストまたは返された互換性のあるバリアントをロードします。 | 

| `expiresAt` | この拘束された許可の有効期限。 | 

| `drm` | `system`、`licenseServerUrl`、`drmLicenseToken`、`tokenType`、およびオプション`fairPlayCertificateUrl`を読みます。 顧客トークンプロキシは、ブラウザのフェーシング権限を独自のバウンディングセッションに置き換えることができます。 | 

| `release` | `url`、`method`、`authorizationScheme` を使用して、再生終了時にセッションを解放します。 | 

| `policy` | 名誉`maximumHeight`と`allowedTrackTypes`。 プロバイダは署名されたポリシーを強制します。 | 

| `tracks` | 音声/字幕の言語選択機能と言語タグ標準を読みます。 | 

`Cache-Control: no-store` で プレーヤー 応答を返します。プロジェクト Access Key をブラウザに転送しないでください。 返されたライセンスと証明書のルートに権限ヘッダーを制限します。



## ハンドルエラーとリリース予約[#](#handle-errors-and-release-reservations)

HTTP のステータスと機械で読みやすい `code` を調べます。トラブルシューティングの `requestId` を保持し、`retryable` を尊重します。拒否されたエンタイトルまたは無効なポリシーは、再試行ループではなく、正しい決定を必要とします。 [playback session error reference](https://docs.drm-x.com/ja/api-reference/errors) を参照してください。

ストップ、再生交換、ターミナルエラー、アプリケーションシャットダウンで予約を解除します。新しい再生の試みは、新しいセッション ID を取得します。

<!-- Canonical: https://docs.drm-x.com/ja/api-reference/playback-sessions -->
<!-- Language: ja -->
