--- title: "라이선스 발급(FairPlay)" slug: "fairplay-streaming-license-request" updated: 2026-09-17T09:16:50Z published: 2026-09-17T09:16:50Z canonical: "api.ncloud-docs.com/fairplay-streaming-license-request" --- > ## Documentation Index > Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # 라이선스 발급(FairPlay) Classic/VPC 환경에서 이용 가능합니다. FairPlay Streaming 타입의 DRM 라이선스를 발급합니다. 라이선스를 발급하려면 DRM 사이트가 활성화되고 FairPlay Streaming 인증 정보가 등록되어 있어야 합니다. API 호출 시 응답은 바이너리(ORIGINAL), JSON 두 가지 형식을 지원하므로 선택하여 구현할 수 있습니다. 라이선스를 발급하려면 다음 단계를 차례대로 진행해 주십시오. [1. 라이선스 발급 요청](/docs/fairplay-streaming-license-request#1%EB%9D%BC%EC%9D%B4%EC%84%A0%EC%8A%A4%EB%B0%9C%EA%B8%89%EC%9A%94%EC%B2%AD)(`POST /api/v1/license`) [2. FPS 인증서 발급 요청](/docs/fairplay-streaming-license-request#2FPS%EC%9D%B8%EC%A6%9D%EC%84%9C%EB%B0%9C%EA%B8%89%EC%9A%94%EC%B2%AD)(`GET /api/v1/license/fairPlay`) 참고 - 인증 정보를 아직 등록하지 않은 경우, [사이트 수정](/docs/site-update)을 통해 등록할 수 있습니다. - 모든 라이선스 요청은 DRM 콘텐츠를 재생할 단말 기기 정보와 플레이어 구현을 통해 요청해야 합니다. - Video Player Enhancement 서비스 연동 방법은 [VPE 콘텐츠 인증](https://guide.ncloud-docs.com/docs/vpe-example-auth#one-click-multi-drm)을 참조해 주십시오. 주의 - One Click Multi DRM 서비스는 FairPlay Streaming 신규 인증서 발급을 지원하지 않습니다. FPS 인증서는 Apple에서 직접 발급받아야 하며, 자세한 내용은 [FairPlay Streaming 인증서 등록](https://doverunner.com/docs/ko/content-security/multi-drm/license/fps-cert-tutorial/)을 참조해 주십시오. - One Click Multi DRM 서비스에 업로드한 FairPlay Streaming 인증서는 유효성 검증을 지원하지 않습니다. ## 1. 라이선스 발급 요청 라이선스 발급을 요청하는 방법을 설명합니다. ### 요청 요청 형식을 설명합니다. 요청 형식은 다음과 같습니다. | 메서드 | URI | | --- | --- | | POST | /api/v1/license | #### 요청 헤더 One Click Multi DRM API에서 공통으로 사용하는 헤더에 대한 정보는 [One Click Multi DRM 요청 헤더](/docs/one-click-multi-drm-api-overview#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94)를 참조해 주십시오. **`X-DRM-TOKEN` 헤더 생성** One Click Multi DRM 서비스에서 API로 라이선스를 발급하려면 `X-DRM-TOKEN` 헤더가 필요합니다. 이 헤더는 요청 사용자의 권한을 검증하고, 선택한 사이트의 보안 정책을 기반으로 DRM 라이선스를 발급하는 데 사용됩니다. 헤더 값이 유효하지 않으면 라이선스가 발급되지 않습니다. `X-DRM-TOKEN` 헤더를 생성하는 방법은 다음과 같습니다. 1. `siteId`, `contentId`, `drmType`, `responseFormat`, `userId`에 대한 JSON 데이터를 입력해 주십시오. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `siteId` | String | Required | 라이선스 발행을 위한 사이트 아이디 - [사이트 목록 조회](/docs/site-list) 참조 | | `contentId` | String | Required | 재생하려는 콘텐츠의 고유 식별자 - 영문자, 숫자, 특수 문자 '-', '_'를 조합하여 3~100자 이내로 입력 - Live/VOD Station 서비스에서 채널에 설정한 Multi DRM Content ID 값 입력 | | `drmType` | String | Required | 라이선스를 요청하는 DRM 타입 - `WIDEVINE` \| `PLAYREADY` \| `FAIRPLAY` | | `responseFormat` | String | Required | 응답 데이터의 형식 - `ORIGINAL` (기본값) \| `JSON` - `ORIGINAL`: 요청한 바이너리 데이터로 응답. 일반적인 멀티 DRM 연동 클라이언트(HTML5, Video.js, Shaka)의 지원 형식 - `JSON`: 라이선스 데이터와 추가 정보(클라이언트 기기 아이디 등)를 포함한 JSON으로 응답. 토큰 프록시 또는 클라이언트 SDK를 사용하는 경우에만 적용 가능 | | `userId` | String | Required | 콘텐츠를 재생하려는 사용자의 고유 아이디 - 서비스 사이트에서 관리하는 사용자 아이디 또는 DRM 콘텐츠를 재생할 사용자 계정 | - 입력 예시 ``` {"siteId":"{사이트 아이디}","contentId":"{콘텐츠 아이디}","drmType":"{DRM 타입}","responseFormat":"{응답 형식}","userId":"{사용자 고유 ID}"} ``` 2. JSON 데이터를 Base64 문자열로 변환해 주십시오. - 변환 예시 ``` eyJzaXRlSWQiOiJkcm0tMjAyMzExMTUxNDIzMjYtbkh5TnciLCJjb250ZW50SW...dXNlcklkIjoiZDQxZDhjZDk4ZjAwYjIwNGU5ODAwOTk4ZWNmODQyN2UifQ== ``` 참고 JSON 데이터 입력 시 불필요한 공백이나 개행이 포함되지 않도록 주의해 주십시오. #### 요청 예시 요청 예시는 다음과 같습니다. ``` curl --location --request POST 'https://multi-drm.apigw.ntruss.com/api/v1/license' \ --header 'x-ncp-apigw-timestamp: {Timestamp}' \ --header 'x-ncp-iam-access-key: {Access Key}' \ --header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \ --header 'Content-Type: application/json' \ --header 'x-ncp-region_code: KR' \ --header 'x-drm-token: {X-DRM-TOKEN}' ``` ### 응답 응답 형식을 설명합니다. 참고 ORIGINAL 타입 요청은 바이너리 데이터 응답이 반환되며, 이 가이드에서는 JSON 타입 응답을 기준으로 안내합니다. #### 응답 바디 응답 바디에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `license` | String | - | 라이선스 JSON 데이터 | | `licenseCreatedTime` | Integer | - | 라이선스 발급 일시(밀리초) - Unix Timestamp 형식 | | `tokenCreatedTime` | Integer | - | 헤더 토큰 생성 일시(밀리초) - Unix Timestamp 형식 | | `tokenExpireTime` | Integer | - | 헤더 토큰 만료 일시(밀리초) - Unix Timestamp 형식 | #### 응답 상태 코드 One Click Multi DRM API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 [One Click Multi DRM 응답 상태 코드](/docs/one-click-multi-drm-api-overview#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)를 참조해 주십시오. #### 응답 예시 응답 예시는 다음과 같습니다. ``` { "license": "080512BF050AB9020803121044E0A85CB19D0441AC6C66B3D6ABBCC218E39FC48D06228E023082010A0282010100B2FB0D937113004C0F805C6C57DE7B266E2B5E2FE12241FF1421ED55DE2C3F73F62891D7587A8ED153F4009D9522C3609A5DC3C4E43891F8F2D7B448B36E8B77AD96DC795795706D4289F8E61FBDF564AB57E5A5EDDB64FC4EA68...D2A0F9B8E352FA91B52EC19593F215BCEB2E8401CCC9757C48793C9AB4904B93C7D326BFFBB5E24CDBF297599FB22724C95C9D40D44455586B188A6D10658BEBE5F6CE812FABB8CA58282B5D28176D5DFF3B358692CC4FC6895A06C0B90A192D65F69AE07415DCEF6E54A677D5C769BA6E9CC24E2B968BC3E6E4D4E099E446D9F7E38740DBB708023E6D35D99F1B10", "licenseCreatedTime": 1700476438204, "tokenCreatedTime": 1700476438107, "tokenExpireTime": 1700477038107 } ``` ## 2. FPS 인증서 발급 요청 FPS 인증서의 발급을 요청하는 방법을 설명합니다. ### 요청 요청 형식을 설명합니다. 요청 형식은 다음과 같습니다. | 메서드 | URI | | --- | --- | | GET | /api/v1/license/fairPlay (JSON 타입 인증서 요청) | | GET | /api/v1/license/fairPlayBinary (바이너리 타입 인증서 요청) | #### 요청 헤더 One Click Multi DRM API에서 공통으로 사용하는 헤더에 대한 정보는 [One Click Multi DRM 요청 헤더](/docs/one-click-multi-drm-api-overview#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94)를 참조해 주십시오. - 필수 헤더인 `X-DRM-TOKEN` 생성 방법은 [X-DRM-TOKEN 헤더 생성](/docs/fairplay-streaming-license-request#XDRMTOKEN%ED%97%A4%EB%8D%94%EC%83%9D%EC%84%B1)을 참조해 주십시오. #### 요청 예시 요청 예시는 다음과 같습니다. ``` curl --location --request GET 'https://multi-drm.apigw.ntruss.com/api/v1/license/fairPlay' \ --header 'x-ncp-apigw-timestamp: {Timestamp}' \ --header 'x-ncp-iam-access-key: {Access Key}' \ --header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \ --header 'Content-Type: application/json' \ --header 'x-ncp-region_code: KR' \ --header 'x-drm-token: {X-DRM-TOKEN}' ``` ### 응답 응답 형식을 설명합니다. 참고 ORIGINAL 타입 요청은 바이너리 데이터 응답이 반환되며, 이 가이드에서는 JSON 타입 응답을 기준으로 안내합니다. #### 응답 바디 응답 바디에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `license` | String | - | 라이선스 JSON 데이터 | | `licenseCreatedTime` | Integer | - | 라이선스 발급 일시(밀리초) - Unix Timestamp 형식 | | `tokenCreatedTime` | Integer | - | 헤더 토큰 생성 일시(밀리초) - Unix Timestamp 형식 | | `tokenExpireTime` | Integer | - | 헤더 토큰 만료 일시(밀리초) - Unix Timestamp 형식 | #### 응답 상태 코드 One Click Multi DRM API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 [One Click Multi DRM 응답 상태 코드](/docs/one-click-multi-drm-api-overview#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)를 참조해 주십시오. #### 응답 예시 응답 예시는 다음과 같습니다. ``` { "license": "080512BF050AB9020803121044E0A85CB19D0441AC6C66B3D6ABBCC218E39FC48D06228E023082010A0282010100B2FB0D937113004C0F805C6C57DE7B266E2B5E2FE12241FF1421ED55DE2C3F73F62891D7587A8ED153F4009D9522C3609A5DC3C4E43891F8F2D7B448B36E8B77AD96DC795795706D4289F8E61FBDF564AB57E5A5EDDB64FC4EA6891C793B...0F9B8E352FA91B52EC19593F215BCEB2E8401CCC9757C48793C9AB4904B93C7D326BFFBB5E24CDBF297599FB22724C95C9D40D44455586B188A6D10658BEBE5F6CE812FABB8CA58282B5D28176D5DFF3B358692CC4FC6895A06C0B90A192D65F69AE07415DCEF6E54A677D5C769BA6E9CC24E2B968BC3E6E4D4E099E446D9F7E38740DBB708023E6D35D99F1B10", "licenseCreatedTime": 1700476438204, "tokenCreatedTime": 1700476438107, "tokenExpireTime": 1700477038107 } ```