# 재생 세션 만들기

DRM-X 인증, 신뢰할 수있는 Content IDs와 Universal Playback Session Contract를 요청하고 사용 권한.

재생이 승인되는 과정

백엔드가 시청 가능한 사용자를 결정합니다. DRM-X는 재생 승인 정보를 제공하며, 플레이어는 이를 사용해 DRM 라이선스를 요청합니다.

- 01**시청자**

서비스에 로그인하고 동영상 재생을 요청합니다.

- 02**고객 백엔드**

사용자의 구매 내역, 구독 상태 또는 기타 시청 권한을 확인합니다.

- 03**DRM-X**

선택한 재생 규칙을 적용하고 재생 설정과 승인 정보를 반환합니다.

- 04**플레이어**

반환된 승인 정보를 사용해 재생에 필요한 DRM 라이선스를 요청합니다.

귀하의 백엔드가 접근을 결정합니다. DRM-X는 서명 된 정책을 시행합니다. 암호화 된 미디어 및 DRM 라이센스는 별도의 배송 경로를 따릅니다.

API 

## Universal Playback Session[#](#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"
  }
}
```



성공적인 계약 v1 응답에는 권위있는 표식, 유효한 표식, DRM-specific license URL, 짧은 라이브 DRM License Token 또는 고객 프록시 허가, 릴리스 경로, 라이센스 최대 높이 및 허용 트랙이 포함됩니다. `Cache-Control: no-store`로 반환하십시오.



각 실제 재생 시도에 대해 하나의 예측 가능한 세션 ID을 사용하십시오. 장치에서 ID를 재사용하면 동시 흐름 계산을 물리 칩니다.





## 인증 및 신뢰할 수 있는 요청 필드[#](#authentication-and-trusted-request-fields)

이 름 API 프로젝트와 함께 API 클라이언트는 `license-tokens:create`. 환경을 사용하십시오 UUID 이름 * `siteId`. 당신의 정통적인 구경꾼은 당신의 내점이라고 부릅니다; 당신의 내점은 아래에 믿을 수 있는 분야를 공급합니다.

| (주)에이치 | 이름 * | 통합 규칙 | 
| --- | --- | --- |

| `contentId` | 출판된 내용 참고 | 제목 확인 후 신뢰할 수있는 카탈로그에서 해결합니다. | 

| `subject` | 안정적인 뷰어 식별자 | 정통 세션에서, 클라이언트 공급 사용자 ID가 아닙니다. | 

| `drmSystem` | `widevine`, `playready`, `fairplay`, 또는 `wiseplay` | 선택된 DRM에 플레이어 기능 일치. | 

| `sessionId` | 이 재생 시도의 신원 | 각 시도에 대한 신선한 예측할 수없는 가치를 생성하십시오. | 

| `contentType` | `vod` 또는 `live` | 콘텐츠에 등록한 입력을 사용합니다. | 

| `playbackMode` | `streaming` 계약 v1 | Offline 재생은 나중에 계약 확장을 요구합니다. | 

| `licensePolicyTemplate` / `licensePolicy` | 이름 정책 또는 사용자 정의 정책 | 서버 선택; 둘 다 공급하지 마십시오. [policy 규칙](https://docs.drm-x.com/ko/license-service/policies)을 참조하십시오. | 

| `platformCapabilities` | 플랫폼, DRM 시스템, 표시 유형 및 장치 힌트 | 새로운 통합으로 명시된 기능을 전송합니다. 그들은 클라이언트를 설명합니다. 그들은 라이센스 정책을 무시하지 않습니다. | 



## 응답 descriptors[#](#consume-the-response-descriptors)에 대하여

배열된 계약 v1 descriptors를 사용하십시오. 추측에서 라이센스 URL을 구성하거나 플레이어 입력으로 등록 된 URL을 대체하지 마십시오.

| 응답 분야 | 그것을 사용하는 방법 | 
| --- | --- |

| `contractVersion` | 반환된 계약 버전이 통합에 의해 지원된다는 것을 확인합니다. | 

| `manifestUrl` / `manifestUrls` | 선택된 표 또는 반환된 호환성 변종을 로드합니다. | 

| `expiresAt` | 이 경계 된 허가의 만료. | 

| `drm` | `system`, `licenseServerUrl`, `drmLicenseToken`, `tokenType` 및 옵션 `fairPlayCertificateUrl`을 읽으십시오. 고객 토큰 프록시는 자체 경계 세션과 브라우저 기반 권한화를 대체 할 수 있습니다. | 

| `release` | `url`, `method` 및 `authorizationScheme`을 사용하여 재생 종료시 세션을 릴리스합니다. | 

| `policy` | Honor `maximumHeight` 및 `allowedTrackTypes`. 공급자는 여전히 서명 된 정책을 시행합니다. | 

| `tracks` | 오디오 / 자막 언어 선택 기능 및 언어 태그 표준을 읽으십시오. | 

`Cache-Control: no-store`과 플레이어 응답을 반환합니다. 브라우저에 Access Key 프로젝트를 전달하지 마십시오. 반환된 라이센스 및 인증서 경로에 권한 부여 헤더를 제한합니다.



## 처리 오류 및 해제 예약[#](#handle-errors-and-release-reservations)

검사하기 HTTP 상태와 기계 읽기 쉬운 `code`. 유지 `requestId` 문제 해결 및 존중 `retryable`; denied entitlement 또는 잘못된 정책은 수정 된 결정, 구호 루프가 필요하지 않습니다. 참조 [playback 세션 오류 참조](https://docs.drm-x.com/ko/api-reference/errors).

중지, 재생 교체, 터미널 오류 및 응용 프로그램 종료에 예약을 해제합니다. 신선한 재생 시도는 새로운 세션을 가져옵니다 ID.

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