Classic/VPC環境で利用できます。
VODストリーミングのためのチャンネルを作成します。
リクエスト
リクエスト形式を説明します。リクエスト形式は次の通りです。
| メソッド | URI |
|---|---|
| POST | /api/v2/channels |
リクエストヘッダ
VOD Station APIで共通して使用されるヘッダの詳細は、VOD Stationのリクエストヘッダをご参照ください。
リクエストボディ
リクエストボディの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
name |
String | Required | チャンネル名
|
storageBucketName |
String | Required | ストリーミング映像の保存場所バケット名 |
accessPrivateFiles |
Boolean | Optional | バケット内の非公開ファイルへのアクセス制限を設定するか
|
protocolList |
Array | Required | ストリーミングプロトコルリスト
|
encryptionList |
Array | Optional | チャンネルのコンテンツ保護設定: encryptionList |
segmentDuration |
Integer | Required | セグメントあたりの再生時間(秒)
|
segmentDurationOption |
String | Optional | セグメント分割方法の設定
|
createCdn |
Boolean | Required | CDNを新規作成するか
|
cdn |
Object | Conditional | CDNの設定
|
cdn.profileId |
Integer | Conditional | プロファイル ID
|
cdn.regionType |
String | Conditional | Global Edgeサービス地域
|
cdn.type |
String | Conditional | CDNのタイプ
|
drm |
Object | Optional | Multi DRMの設定 |
drm.siteId |
String | Conditional | サイト ID
|
drm.contentId |
String | Conditional | コンテンツ ID
|
encryptionList
encryptionListの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
drmContentId |
String | Optional | DRMコンテンツ ID
|
drmKeyUrl |
String | Optional | DRM Key URL
|
systemIdList |
Array | Optional | DRMシステム ID
|
drmTypeCode |
Integer | Optional | DRMタイプ
|
mediaEncryptTypeCode |
Integer | Optional | Media Encryption(HLS AES-128)コードの設定
|
protocol |
String | Required | プロトコル設定
|
配信映像のセキュリティ設定関連フィールドは、配信映像のセキュリティ設定を参照して入力してください。
リクエスト例
リクエストのサンプルコードは次の通りです。
- メディア暗号化(MediaEncryption; AES-128)適用時
curl --location --request POST 'https://vodstation.apigw.ntruss.com/api/v2/channels' \ --header 'x-ncp-apigw-timestamp: {Timestamp}' \ --header 'x-ncp-iam-access-key: {Access Key}' \ --header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \ --data '{ "name": "ch-media-encrypt", "storageBucketName": "station-000", "accessPrivateFiles": true, "protocolList": ["HLS"], "encryptionList": [ { "protocol": "HLS", "mediaEncryptTypeCode": 1 } ], "segmentDuration": 10, "segmentDurationOption": "BASIC", "createCdn": true, "cdn": { "profileId": ****, "regionType": "KOREA", "type": "GLOBAL_EDGE" } }'
レスポンス
レスポンス形式を説明します。
レスポンスボディ
レスポンスボディの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
content |
Object | - | レスポンス結果 |
content.disabled |
Boolean | - | Sub Accountは無効化するか
|
content.id |
String | - | チャンネル ID |
content.name |
String | - | チャンネル名 |
content.channelStatus |
String | - | チャンネルの状態
|
content.storageBucketName |
String | - | チャンネルがストリーミングする映像が保存されているバケット名 |
content.segmentDuration |
Integer | - | セグメントあたりの再生時間(秒) |
content.protocolList |
Array | - | ストリーミングプロトコルリスト
|
content.createTime |
Integer | - | チャンネル作成開始日時(秒)
|
content.cdnCreatedTime |
Integer | - | チャンネルと連携して自動作成された CDNの作成日時(秒)
|
content.playUrl |
String | - | CDNによる再生 URLテンプレート |
content.cdnStatus |
String | - | チャンネルと連携された CDNの状態
|
content.cdnDomain |
String | - | 自動作成された Global Edgeのドメイン |
content.cdnServiceName |
String | - | 自動作成された Global Edgeのサービス名 |
content.storageBucketStatus |
String | - | チャンネルと連携された Object Storageバケットの状態 |
content.originPath |
String | - | 作成したチャンネルのオリジンパス
|
content.encryptList |
Array | - | チャンネルのコンテンツ保護設定情報: encryptList |
content.accessPrivateFiles |
Boolean | - | バケット内の非公開ファイルへのアクセス制限を設定するか
|
content.encryptedBucketName |
String | - | チャンネルと連携されたバケットの暗号化された名前
|
content.segmentDurationOption |
String | - | セグメント分割方法の設定
|
content.cdn |
Object | - | 自動作成された CDN(Global Edge)情報 |
content.cdn.cdnType |
String | - | CDNのタイプ
|
content.cdn.cdnDomain |
String | - | 自動作成された Global Edgeのドメイン |
content.cdn.cdnServiceName |
String | - | 自動作成された Global Edgeのサービス名 |
content.cdn.profileId |
Integer | - | 自動作成された Global Edgeのプロファイル ID |
content.cdn.regionType |
String | - | 自動作成された Global Edgeのサービス地域 |
content.cdn.cdnInstanceNo |
Integer | - | 自動作成された Global Edgeのインスタンス ID |
encryptList
encryptListの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
drmContentId |
String | - | DRMコンテンツ ID
|
drmKeyUrl |
String | - | DRM Key URL
|
systemIdList |
Array | - | DRMシステム ID
|
drmTypeCode |
Integer | - | DRMタイプ
|
drmTypeName |
String | - | DRMタイプ名 |
protocol |
String | - | 設定されたプロトコル
|
mediaEncryptTypeCode |
Integer | - | 設定された Media Encryption(HLS AES-128)コード設定
|
mediaEncryptionTypeName |
String | - | 設定された Media Encryption(HLS AES-128)タイプ名
|
レスポンスステータスコード
VOD Station APIで共通して使用されるレスポンスステータスコードの詳細は、VOD Stationのレスポンスステータスコードをご参照ください。
レスポンス例
レスポンスのサンプルコードは次の通りです。
{
"content": {
"disabled": false,
"id": "vs-20250821095732-*******",
"name": "ch-media-encrypt",
"channelStatus": "CREATING",
"storageBucketName": "station-000",
"segmentDuration": 10,
"protocolList": [
"HLS"
],
"createTime": 1755737852,
"cdnCreatedTime": 1755737852,
"playUrl": "https://cpzplvi******.edge.naverncp.com/[protocol]/[Object Storage Bucket(encryption name)]/[path]/[video filename]/[manifest]",
"cdnStatus": "CREATING",
"cdnDomain": "cpzplvi******.edge.naverncp.com",
"cdnServiceName": "edge-vs-20250821095732-*******",
"storageBucketStatus": "RUNNING",
"originPath": "vs2-k1.video.media.ntruss.com/2706412/vs-20250821095732-*******",
"encryptList": [
{
"protocol": "HLS",
"mediaEncryptTypeCode": 1
}
],
"accessPrivateFiles": true,
"encryptedBucketName": "*****VzPmKvIthkozoufHw__",
"segmentDurationOption": "BASIC",
"cdn": {
"cdnType": "GLOBAL_EDGE",
"cdnDomain": "cpzplvi******.edge.naverncp.com",
"cdnServiceName": "edge-vs-20250821095732-*******",
"profileId": ****,
"regionType": "KOREA",
"cdnInstanceNo": *****
}
}
}
配信映像のセキュリティ設定
作成したチャンネルで配信する映像コンテンツのセキュリティのために、さまざまな設定をサポートします。
コンテンツアクセス制御
Global Edgeサービスと連携すると Global Edgeのコンテンツ認証制御により、配信映像コンテンツのアクセスを制限することができます。コンテンツ認証制御方式には、Signed URL、JSON Web Tokenがあります。各方式の使用方法は、Global Edgeご利用ガイドのSigned URL、JSON Web Tokenをご参照ください。
- 認証トークンの発行時、Signed URL方式は ACLに、JSON Web Token方式は pathにワイルドカードパスを入力します。
- 単一ビットレートの再生: /[protocol]/[encryptedBucketName]/[path]/[video filename]/*
- <例>
- HLS: https://example.edge.navercorp.com/hls/guide/vod-5100k.mp4/index.m3u8
- wildcard path : /hls/guide/vod-5100k.mp4/*
- DASH: https://example.edge.navercorp.com/dash/guide/vod-5100k.mp4/index.m3u8
- wildcard path: /dash/guide/vod-5100k.mp4/*
- HLS: https://example.edge.navercorp.com/hls/guide/vod-5100k.mp4/index.m3u8
- <例>
- Adaptiveビットレートの再生: /[protocol]/[encryptedBucketName]/[path]/[prefix],[video filenames],[suffix].smil/*
- <例>
- HLS再生アドレス: https://example.edge.navercorp.com/hls/guide/abr/vod-,5400,2400,1200,0900,0600,0300,k.mp4.smil/master.m3u8
- wildcard path: /hls/guide/abr/vod-,5400,2400,1200,0900,0600,0300,k.mp4.smil/*
- DASH再生アドレス: https://example.edge.navercorp.com/dash/guide/abr/vod-,5400,2400,1200,0900,0600,0300,k.mp4.smil/manifest.mpd
- wildcard path: /dash/guide/abr/vod-,5400,2400,1200,0900,0600,0300,k.mp4.smil/*
- HLS再生アドレス: https://example.edge.navercorp.com/hls/guide/abr/vod-,5400,2400,1200,0900,0600,0300,k.mp4.smil/master.m3u8
- <例>
- 単一ビットレートの再生: /[protocol]/[encryptedBucketName]/[path]/[video filename]/*
- Global Edgeのキャッシュ設定の際は、Edge Authを作成したチャンネルの Output Protocolに合わせて設定します。設定方法の詳細は、Global Edge APIガイドをご参照ください。
- 認証除外拡張子
- .ts, .mp4, .m4s, .vtt, .key
- 認証トークンをオリジンに伝達する拡張子
- .m3u8, .mpd
- 認証除外拡張子
コンテンツ保護
One Click Multi DRMサービスと連携して、Multi DRMを通じて映像コンテンツを暗号化した後に配信し、違法コピーや流通を防止することができます。チャンネル作成の際は、drmオブジェクトを介して簡単に DRM機能を設定でき、選択した Output Protocolに応じて Multi DRMが適用されます。DRM技術別暗号化方式、対応端末、プラットフォーム、バージョンなどの詳細は、VOD Stationご利用ガイドとDoveRunner(旧 PallyCon)ガイドをご参照ください。
| 暗号化方式 | プロトコル | DRMタイプ | 暗号化アルゴリズム | 対応端末 |
|---|---|---|---|---|
| HLS AES-128 | HLS | - | AES-128 | MS Edge, IE11, Chrome, Firefox, Opera HLS HTML5 |
| DRM | HLS |
|
SAMPLE-AES | Mac/iOS Safariブラウザ、iOS/iPadOS/tvOSアプリ、HLS HTML5 |
| DRM | DASH |
|
CENC (Common Encryption) | MS Edge, IE11, Chrome, Firefox, Opera DASH HTML5 |