チャンネルの作成

Prev Next

Classic/VPC環境で利用できます。

VODストリーミングのためのチャンネルを作成します。

リクエスト

リクエスト形式を説明します。リクエスト形式は次の通りです。

メソッド URI
POST /api/v2/channels

リクエストヘッダ

VOD Station APIで共通して使用されるヘッダの詳細は、VOD Stationのリクエストヘッダをご参照ください。

リクエストボディ

リクエストボディの説明は次の通りです。

フィールド タイプ 必須の有無 説明
name String Required チャンネル名
  • 英数字、記号の「-」を使用して3~20文字以内で入力
storageBucketName String Required ストリーミング映像の保存場所バケット名
accessPrivateFiles Boolean Optional バケット内の非公開ファイルへのアクセス制限を設定するか
  • true | false (デフォルト)
    • true: 許可
    • false: 制限
  • 許可すると非公開ファイルもストリーミング可能
protocolList Array Required ストリーミングプロトコルリスト
  • HLS | DASH
  • 重複選択可能
encryptionList Array Optional チャンネルのコンテンツ保護設定: encryptionList
segmentDuration Integer Required セグメントあたりの再生時間(秒)
  • 5~20
  • セグメントの再生時間が長いほどファイルサイズは大きくなり、読み込み時間は長くなる可能性がある
  • セグメントの再生時間が短いほどファイルサイズは小さくなるが、バッファリングが発生する可能性がある
segmentDurationOption String Optional セグメント分割方法の設定
  • BASIC (デフォルト) | VARIABLE
    • BASIC: segmentDuration設定間隔で一定したセグメントを作成
    • VARIABLE: すべてのセグメントがキーフレーム(keyframe)で始まるようにセグメントを作成
  • VARIABLEオプションを選択した場合、segmentDuration値と実際に作成されたセグメント再生時間に差が生じる可能性がある
  • 安定したストリーミングサービスのために、BASICオプションの使用がお勧め
createCdn Boolean Required CDNを新規作成するか
cdn Object Conditional CDNの設定
  • createCdntrueの場合、必ず入力
  • Global Edge連携時に使用
cdn.profileId Integer Conditional プロファイル ID
cdn.regionType String Conditional Global Edgeサービス地域
  • KOREA | JAPAN | GLOBAL
    • KOREA: 韓国
    • JAPAN: 日本
    • GLOBAL: グローバル
cdn.type String Conditional CDNのタイプ
  • GLOBAL_EDGE (有効値)
drm Object Optional Multi DRMの設定
drm.siteId String Conditional サイト ID
drm.contentId String Conditional コンテンツ ID
  • 英数字、記号の「-」、「_」を使用して3~100文字以内で入力
  • Multi DRMを設定する場合、必ず入力

encryptionList

encryptionListの説明は次の通りです。

フィールド タイプ 必須の有無 説明
drmContentId String Optional DRMコンテンツ ID
  • 英数字を使用して3~100文字以内で入力
  • DRM Keyのリクエスト時にこの値を含めてリクエスト、ライセンス(License)発行時に必要
drmKeyUrl String Optional DRM Key URL
  • DRMプロバイダの CPIX API URL
  • VOD Stationは正式に Inka Pallyacon DRMの CPIX v1 APIとの連携をサポート
  • DRMパッケージングのために VOD Stationは xml bodyを含めて POSTでリクエスト
  • http(s)://を含む
  • Media Encryptionを設定する場合、不要
systemIdList Array Optional DRMシステム ID
  • DRMシステム固有 ID
  • 英数字、記号の「-」のみ使用して1~256文字以内で入力、スペースは使用できない
  • Media Encryptionを設定する場合、不要
  • DRMタイプに合わせて1~2個のシステム IDを必ず含めること
drmTypeCode Integer Optional DRMタイプ
  • 21 | 22
    • 21: FairPlay
    • 22: Widevine/PlayReady
  • Media Encryptionを設定する場合、不要
mediaEncryptTypeCode Integer Optional Media Encryption(HLS AES-128)コードの設定
  • 1 | 2 | 3
    • 1: AES-128
    • 2: Sample-AES
    • 3: CENC
  • drmTypeCode21の場合、設定できない
  • DRMを設定する場合、不要
protocol String Required プロトコル設定
  • HLS | DASH
    • HLS: FairPlay/Media Encryption
    • DASH: Widevine/PlayReady
参考

配信映像のセキュリティ設定関連フィールドは、配信映像のセキュリティ設定を参照して入力してください。

リクエスト例

リクエストのサンプルコードは次の通りです。

  • メディア暗号化(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は無効化するか
  • true | false
    • true: 無効化
    • false: 有効化
content.id String - チャンネル ID
content.name String - チャンネル名
content.channelStatus String - チャンネルの状態
  • CREATING | READY | STOPPING | STOPPED | TERMINATING | TERMINATED | FORCE_STOPPING | FORCE_STOPPED | FORCETERMINATING | FORCETERMINATED
    • CREATING: 作成中
    • READY: 運用中
    • STOPPING: 停止中
    • STOPPED: 停止完了
    • TERMINATING: 削除中
    • TERMINATED: 削除完了
    • FORCE_STOPPING: 強制停止中
    • FORCE_STOPPED: 強制停止完了
    • FORCETERMINATING: 強制削除中
    • FORCETERMINATED: 強制削除完了
content.storageBucketName String - チャンネルがストリーミングする映像が保存されているバケット名
content.segmentDuration Integer - セグメントあたりの再生時間(秒)
content.protocolList Array - ストリーミングプロトコルリスト
  • HLS | DASH
content.createTime Integer - チャンネル作成開始日時(秒)
  • Unix Timestamp形式
content.cdnCreatedTime Integer - チャンネルと連携して自動作成された CDNの作成日時(秒)
  • Unix Timestamp形式
content.playUrl String - CDNによる再生 URLテンプレート
content.cdnStatus String - チャンネルと連携された CDNの状態
  • 自動作成しない場合、NOT_FOUNDと表示
content.cdnDomain String - 自動作成された Global Edgeのドメイン
content.cdnServiceName String - 自動作成された Global Edgeのサービス名
content.storageBucketStatus String - チャンネルと連携された Object Storageバケットの状態
content.originPath String - 作成したチャンネルのオリジンパス
  • 別途 CDNの作成時に使用
content.encryptList Array - チャンネルのコンテンツ保護設定情報: encryptList
content.accessPrivateFiles Boolean - バケット内の非公開ファイルへのアクセス制限を設定するか
  • true | false
    • true: 制限
    • false: 許可
  • 許可すると非公開ファイルもストリーミング可能
content.encryptedBucketName String - チャンネルと連携されたバケットの暗号化された名前
  • 再生 URL作成時に使用
content.segmentDurationOption String - セグメント分割方法の設定
  • BASIC | VARIABLE
    • BASIC: segmentDuration 設定間隔で一定したセグメントを作成
    • VARIABLE: すべてのセグメントがキーフレーム(keyframe)で始まるようにセグメントを作成
  • VARIABLEオプションを選択した場合、segmentDuration値と実際に作成されたセグメント再生時間に差が生じる可能性がある
content.cdn Object - 自動作成された CDN(Global Edge)情報
content.cdn.cdnType String - CDNのタイプ
  • GLOBAL_EDGE (有効値)
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
  • DRM Keyのリクエスト時にこの値を含めてリクエスト、ライセンス(License)発行時に必要
drmKeyUrl String - DRM Key URL
  • DRMプロバイダの CPIX API URL
  • VOD Stationは正式に Inka Pallyacon DRMの CPIX v1 APIとの連携をサポート
systemIdList Array - DRMシステム ID
  • DRMシステムの固有 ID
drmTypeCode Integer - DRMタイプ
  • 21 | 22
    • 21: FairPlay
    • 22: Widevine/PlayReady
drmTypeName String - DRMタイプ名
protocol String - 設定されたプロトコル
  • HLS | DASH
    • HLS: FairPlay/Media Encryption
    • DASH: Widevine/PlayReady
mediaEncryptTypeCode Integer - 設定された Media Encryption(HLS AES-128)コード設定
  • 1 | 2 | 3
    • 1: AES-128
    • 2: Sample-AES
    • 3: CENC
mediaEncryptionTypeName String - 設定された Media Encryption(HLS AES-128)タイプ名
  • AES-128 | Sample-AES | CENC

レスポンスステータスコード

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 URLJSON 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/*
    • 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/*
  • 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
  • FairPlay: Applegaが提供する DRM技術規格で、それぞれの HLSセグメントを AES-CBC方式で暗号化
SAMPLE-AES Mac/iOS Safariブラウザ、iOS/iPadOS/tvOSアプリ、HLS HTML5
DRM DASH
  • PlayReady: Microsoftが提供する DRM技術規格で、Common Encryption規格に基づき、AES-128方式で暗号化
  • Widevine: Googleが提供する DRM技術規格で、Common Encryption規格に基づいて AES-128方式で暗号化
CENC (Common Encryption) MS Edge, IE11, Chrome, Firefox, Opera DASH HTML5