MENU
      チャンネルの作成
        • PDF

        チャンネルの作成

        • PDF

        記事の要約

        VOD Stationはチャンネルを作成するための APIを提供します。また、作成したチャンネルの照会のためのチャンネルリスト照会 APIチャンネル情報照会 APIを提供します。

        参考

        VOD Stationと連携された Global Edgeのコンテンツ認証(Signed URL/JWT)制御使用時の注意事項は次の通りです。

        • Global Edgeのキャッシュ設定の際は、Edge Authを以下のように設定します。Global Edge Edge Auth設定の変更方法の詳細は、APIガイドをご参照ください。
          • 認証除外拡張子
            • .ts, .mp4, .m4s, .vtt, .key
          • 認証トークンをソースに伝達する拡張子
            • .m3u8, .mpd
        • 認証トークン発行の際は、SignedURLに acl入力フィールド、JWTに path入力フィールドがあり、それぞれに wildcard 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/*'

        リクエスト

        POST https://vodstation.apigw.ntruss.com/api/v2/channels
        HTTP

        リクエストヘッダ

        ヘッダ名説明
        x-ncp-region_codeNAVERクラウドプラットフォームの region code
        x-ncp_region_code:{Region Code}
        x-ncp-apigw-timestamp1970年1月1日 00:00:00 協定世界時(UTC)からの経過時間をミリ秒(Millisecond)で表し、API Gatewayサーバとの時間差が5分以上の場合は無効なリクエストとみなす
        x-ncp-apigw-timestamp:{Timestamp}
        x-ncp-iam-access-keyNAVERクラウドプラットフォームポータルから発行された Access Key ID
        x-ncp-iam-access-key:{Sub Account Access Key}
        x-ncp-apigw-signature-v2Access Key IDと Secret Keyで暗号化した署名
        x-ncp-apigw-signature-v2:{API Gateway Signature}
        Content-TypeRequest body content typeは application/jsonに指定
        Content-Type: application/json

        リクエストボディ

        APIリクエスト時はフィールド名の大文字、小文字の区別が必要です。

        | フィールド名 | 必須の有無 | タイプ | 制限事項 | デフォルト値 | 説明 |
        |--- |--- |--- |--- |--- |--- |
        | name | Yes | String | | | 作成するチャンネルの名前 |
        | storageBucketName | Yes | String | | | チャンネルと連携する NAVERクラウドプラットフォームの Object Storageバケット名 |
        | accessPrivateFiles | No | Boolean | | | 連携対象 Object Storageのバケット内非公開ファイルに対する VOD Stationからのアクセス制限を設定
        許可する場合、ファイルを公開処理しなくても Streamingが可能 |
        | protocolList[] | Yes | Array(String) | HLS, DASH | | チャンネルのストリーミングプロトコル
        HLSと DASHをサポートし、重複選択できる |
        | encryptionList[] | No | Array | | | チャンネルのメディア保護設定
        Media Encryption機能と DRM(FairPlay、Widevine/PlayReady)連携インターフェースを提供 |
        | encryptionList[].drmContentId | Optional | String | 英数字で1-200文字
        Media Encryption設定時は不要 | | DRM Content ID
        DRM Keyのリクエスト時にこの値を含めてリクエスト、License発行時に必要 |
        | encryptionList[].drmKeyUrl | Optional | String | http(s)://を含む URL
        Media Encryption設定時は不要 | | DRMプロバイダの CPIX API URL
        VOD Stationは公式的に Inka Pallyacon DRMの CPIX v1 APIとの連携をサポート
        DRMパッケージングのために VOD Stationは xml bodyを含めて POSTリクエスト |
        | encryptionList[].systemIdList | Optional | Array(String) | スペースは使用できず、「-」は使用可能、256文字以内
        Media Encryption設定時は不要 | | DRM Type別 SystemID
        設定したい Typeに合った値を入力 |
        | encryptionList[].drmTypeCode | Optional | Integer | FairPlay: 21
        Widevine/PlayReady: 22
        Media Encryption設定時は不要 | | DRM Typeの設定が必要 |
        | encryptionList[].mediaEncryptionTypeCode | Optional | Integer | AES-128: 1
        DRM設定時は不要 | | HLS AES-128を設定
        FairPlayは一緒に設定できない |
        | encryptionList[].protocol | Yes | String | HLS, DASH | | DRMまたは Media Encryptionに合った protocolを設定
        Widevine/PlayReady: DASH
        FairPlay: HLS
        MediaEncryption: HLS |
        | segmentDuration | Yes | Integer | 5~20の範囲の整数 | | Segmentごとの再生時間
        再生時間が長くなるほど Segmentのサイズが大きくなり、Clientネットワーク状態によってロード時間が長くなる場合がある
        一方、Segment時間が短くなるほど Segmentのサイズは小さくなり、短く設定しすぎると Clientネットワーク状態によってバッファリングが発生することがある
        (単位: 秒) |
        | segmentDurationOption | No | String | BASIC, VARIABLE | BASIC | すべての Segmentが keyframeで始まるように Segmentを作成
        VARIABLEオプションを選択すると設定した segmentDurationと実際に作成された Segmentの間に Durationのような差が発生することがあり、Segment Durationが一定しない場合がある |
        | createCdn | Yes | Boolean | true, false | | VOD Stationは CDN連携が必須
        チャンネルを作成する際に一緒に作成するか、別途作成して使用することができる |
        | cdn | Optional | Object | Global Edgeを自動作成する場合、リクエストは必須です。 | ||
        | cdn.profileId | Optional | Integer | 新規作成する Global Edgeのプロファイル ID | |Global Edgeを作成するプロファイル ID |
        |cdn.regionType | Optional | String | Global Edgeを連携する場合に利用します。 | KOREA, JAPAN, GLOBAL |Global Edgeのサービス地域|
        | cdn.type | Optional | String | Global Edgeを連携する場合に利用します。 |GLOBAL_EDGE |Global Edgeの新規作成のためのタイプ|
        | drm | No | Object | One Click Multi DRM選択時、必ず入力 | | |
        | drm.siteId | No | String | One Click Multi DRM選択時、必ず入力 | | |
        | drm.contentId | No | String | One Click Multi DRM選択時、必ず入力 | contentIdは再生しようとするコンテンツの固有 IDで、DRMパッケージング時に使用。英数字、記号の「-」(ハイフン)、「_」(アンダースコア)のみ使用して3~100文字以内で入力可能 | |

        レスポンス

        | フィールド名 | タイプ | 説明 | 備考 |
        |--- |--- |--- |--- |
        | content | Object | VOD Station OPEN APIレスポンスオブジェクト | |
        | content.id | String | 作成されたチャンネルの ID | |
        | content.name | Object | チャンネル名 | |
        | content.channelStatus | Integer | チャンネルの現在の状態 | CREATING, READY, STOPPING, STOPPED, TERMINATING, TERMINATED, FORCE_STOPPING, FORCE_STOPPED, FORCETERMINATING, FORCETERMINATED |
        | content.storageBucketName | String | チャンネルと連携された Object Storageバケット名 | |
        | content.encryptedBucketName | String | チャンネルと連携された Object Storageバケットの暗号化された名前で、再生 URL作成時に使用 | |
        | content.accessPrivateFiles | Boolean | バケット内の非公開ファイルに対する VOD Stationからのアクセス制限を設定 | |
        | content.segmentDuration | Integer | チャンネルの segment再生の長さ(単位: 秒) | |
        | content.segmentDurationOption | String | チャンネルの segment keyframeソートオプション | |
        | content.protocolList[] | Array(String) | チャンネルのストリーミングプロトコルリスト | |
        | content.createTime | Integer | チャンネルの作成開始時間 | |
        | content.readyTime | Integer | チャンネルの作成完了時間 | |
        | content.cdnCreatedTime | Integer | チャンネルと連携して自動作成された CDNの作成時間 | |
        | content.playUrl | String | CDNを通じた再生 URL Template | |
        | content.cdnStatus | String | チャンネルと連携された CDNの状態
        自動作成しない場合、NOT_FOUNDが表示 | |
        | content.cdnDomain | String | 自動作成された Global Edgeのドメイン | |
        | content.cdnServiceName | String | 自動作成された Global Edgeのサービス名 | |
        | content.cdn | Object | 自動作成された Global Edge情報 | |
        | content.cdn.cdnType | String | 自動作成された CDNのタイプ | |
        | content.cdn.cdnDomain | String | 自動作成された Global Edgeのドメイン | |
        | content.cdn.cdnServiceName | String | 自動作成された Global Edgeのサービス名 | |
        | content.cdn.profileId | String | 自動作成された Global Edgeのプロファイル ID | |
        | content.cdn.regionType | String | 自動作成された Global Edgeのサービス地域 | |
        | content.cdn.cdnInstanceNo | Integer | 自動作成された Global Edgeのインスタンス情報 | |
        | content.storageBucketStatus | String | チャンネルと連携された Object Storageバケットの状態 | |
        | content.originPath | String | 作成したチャンネルのソースパスで、別途 CDNを作成する際に参照 | |
        | content.encryptionList[] | Array | チャンネルのメディアセキュリティ設定 | |
        | content.encryptionList[].protocol | String | メディアセキュリティ対象のプロトコル | |
        | content.encryptionList[].mediaEncryptionTypeCode | Integer | メディアセキュリティ設定の暗号化タイプ
        1: AES-128
        2: Sample-AES
        3: CENC | |
        | content.encryptionList[].drmTypeCode | Intenger | メディアセキュリティ設定の DRMタイプ
        21: FairPlay
        22: Widevine/PlayReady | |
        | content.encryptionList[].drmTypeName | String | メディアセキュリティ設定の DRMタイプ名 | |
        | content.encryptionList[].drmContentId | String | VOD Stationでパッケージングする際にリクエストする Content ID | |
        | content.encryptionList[].systemIdList | Array(String) | VOD Stationでパッケージングする時にリクエストする DRM System ID | |
        | content.encryptionList[].drmKeyUrl | String | VOD Stationでパッケージングする時にリクエストする DRM CPIX API URL | |
        | content.drm | Object | VOD Stationを利用した DRM Encryption設定 | |
        | content.drm.siteId | String | One Click Multi DRMサービスで作成した site ID | |
        | content.drm.contentId | String | DRM Encryption適用対象コンテンツの固有 ID
        DRMパッケージングに使用され、英数字、記号の「-」(ハイフン)、「_」(アンダースコア)のみ使用して3~100文字以内で入力できます。| |
        | error | Object | エラーレスポンスコードとメッセージ | |
        | error.errorCode | String | エラーレスポンスコード | |
        | error.message | String | エラーレスポンスメッセージ | |
        | error.details | String | error messageの詳細説明
        api gatewayエラー発生時のレスポンス | |

        リクエスト例

        POST https://vodstation.apigw.ntruss.com/api/v2/channels
        
        POST /api/v2/channels
        HOST: vodstation.apigw.ntruss.com
        Content-Type: application/json
        x-ncp-region_code:KR
        x-ncp-apigw-timestamp:1521787414578
        x-ncp-iam-access-key:6uxz1nKkcYwUjWRG5Q1V7NsW0i5jErlu2NjBXXgy
        x-ncp-apigw-signature-v2:iJFK773KH0WwQ79PasqJ+ZGixtpDQ/abS57WGQdld2M=
        
        Request body (Global Edge)
        {
          "accessPrivateFiles": false,
          "cdn": {
            "profileId": 681,
            "regionType": "KOREA",
            "type": "GLOBAL_EDGE"
          },
          "createCdn": true,
          "name": "ey-api-gedge-0628",
          "protocolList": [
            "HLS","DASH"
          ],
          "segmentDuration": 5,
          "segmentDurationOption": "BASIC",
          "storageBucketName": "eytestbucket"
        }
        
        Reqeust body (non DRM)
        {
           "cdn": {
             "profileId": 681,
             "regionType": "KOREA",
             "type": "GLOBAL_EDGE"
           },
           "createCdn": true,
          "name": "api-guide",
          "protocolList": [
            "HLS", "DASH"
          ],
          "segmentDuration": 5,
          "storageBucketName": "vodstation-bucket"
        }
        
        Request body (One Click Multi DRM using MediaEncryption and Widevine/PlayReady)
        {
          "createCdn": true,
          "name": "api-guide-drm",
          "protocolList": [
            "HLS", "DASH"
          ],
          "segmentDuration": 5,
          "segmentDurationOption": "BASIC",
          "accessPrivateFiles": true,
          "storageBucketName": "vodstaton-test",
          "drm" : {
               "siteId" : "ABCD",
               "contentId" : "abc-2344-dfd"
            }
        }
        
        Request body (DRM using MediaEncryption and Widevine/PlayReady)
        {
          "cdn": {
            "profileId": 681,
            "regionType": "KOREA",
            "type": "GLOBAL_EDGE"
          },
          "createCdn": true,
          "encryptionList": [
            {
              "drmContentId": "openapi",
              "drmKeyUrl": "https://kms.example.com/cpix/token",
              "systemIdList": [
              	"9A04F079-9840-4286-AB92-E65BE0885F95",
              	"EDEF8BA9-79D6-4ACE-A3C8-27DCD51D21ED"
              ],
              "drmTypeCode": 22,
              "protocol": "DASH"
            },
            {
              "mediaEncryptTypeCode": 1,
              "protocol":"HLS"
            }
          ],
          "name": "api-guide-drm",
          "protocolList": [
            "HLS", "DASH"
          ],
          "segmentDuration": 5,
          "segmentDurationOption": "BASIC",
          "accessPrivateFiles": true,
          "storageBucketName": "vodstaton-test"
        }
        
        Request body (DRM using FairPlay and Widevine/PlayReady)
        {
          "cdn": {
            "profileId": 681,
            "regionType": "KOREA",
            "type": "GLOBAL_EDGE"
          },
          "createCdn": true,
          "encryptionList": [
            {
              "drmContentId": "openapi",
              "drmKeyUrl": "https://kms.example.com/cpix/token",
              "systemIdList": [
              	"9A04F079-9840-4286-AB92-E65BE0885F95",
              	"EDEF8BA9-79D6-4ACE-A3C8-27DCD51D21ED"
              ],
              "drmTypeCode": 22,
              "protocol": "DASH"
            },
            {
              "drmContentId": "openapi",
              "drmKeyUrl": "https://kms.example.com/cpix/token",
              "systemIdList": [
              	"94CE86FB-07FF-4F43-ADB8-93D2FA968CA2"
              ],
              "drmTypeCode": 21,
              "protocol": "HLS"
            },
          ],
          "name": "api-guide-drm",
          "protocolList": [
            "HLS", "DASH"
          ],
          "segmentDuration": 5,
          "accessPrivateFiles": true,
          "storageBucketName": "vodstaton-test"
        }
        
        Request body (DRM using Widevine)
        {
          "cdn": {
            "profileId": 681,
            "regionType": "KOREA",
            "type": "GLOBAL_EDGE"
          },
          "createCdn": true,
          "encryptionList": [
            {
              "drmContentId": "openapi",
              "drmKeyUrl": "https://kms.example.com/cpix/token",
              "systemIdList": [
              	"EDEF8BA9-79D6-4ACE-A3C8-27DCD51D21ED"
              ],
              "drmTypeCode": 22,
              "protocol": "DASH"
            },
          ],
          "name": "api-guide-drm",
          "protocolList": [
            "HLS", "DASH"
          ],
          "segmentDuration": 5,
          "accessPrivateFiles": true,
          "storageBucketName": "vodstaton-test"
        }
        
        Request body (using MediaEncryption Only)
        {
          "cdn": {
            "profileId": 681,
            "regionType": "KOREA",
            "type": "GLOBAL_EDGE"
          },
          "createCdn": true,
          "encryptionList": [
            {
              "mediaEncryptTypeCode": 1,
              "protocol":"HLS"
            }
          ],
          "name": "api-guide-drm",
          "protocolList": [
            "HLS", "DASH"
          ],
          "segmentDuration": 5,
          "accessPrivateFiles": true,
          "storageBucketName": "vodstaton-test"
        }
        HTTP

        レスポンス例

        HTTP/1.1 200 OK
        Server: nginx
        Date: Wed, 12 Sep 2018 09:53:32 GMT
        Content-Type: application/json;charset=utf-8
        Connection: keep-alive
        Access-Control-Allow-Origin: *
        x-ncp-trace-id: 36c9k60om4p3238cpmc9gm4cj4
        
        {
          "content": {
            "disabled": false,
            "id": "vs-20230628104743-IhwvCgd",
            "name": "ey-api-gedge-0628",
            "channelStatus": "CREATING",
            "storageBucketName": "gjtest",
            "segmentDuration": 5,
            "protocolList": [
              "HLS",
              "DASH"
            ],
            "createTime": 1687916863,
            "cdnCreatedTime": 1687916864,
            "playUrl": "https://kphmlswg1388.beta-edge.naverncp.com/[protocol]/[Object Storage Bucket(encryption name)]/[path]/[video filename]/[manifest]",
            "cdnStatus": "CREATING",
            "cdnDomain": "kphmlswg1388.beta-edge.naverncp.com",
            "cdnServiceName": "edge-vs-20230628104743-IhwvCgd",
            "storageBucketStatus": "RUNNING",
            "originPath": "beta-vs2-k1.video.media.ntruss.com/86/vs-20230628104743-IhwvCgd",
            "encryptList": [
        
            ],
            "accessPrivateFiles": false,
            "encryptedBucketName": "sk3DDQr8sR~23I9msiHAPg__",
            "segmentDurationOption": "BASIC",
            "cdn": {
              "cdnType": "GLOBAL_EDGE",
              "cdnDomain": "kphmlswg1388.beta-edge.naverncp.com",
              "cdnServiceName": "edge-vs-20230628104743-IhwvCgd",
              "profileId": 681,
              "regionType": "KOREA",
              "cdnInstanceNo": 1388
            },
             "drm": {
              "siteId": "ABCD",
              "contentId": "abc-2344-dfd"
            }
          }
        }
        HTTP

        この記事は役に立ちましたか?

        Changing your password will log you out immediately. Use the new password to log back in.
        First name must have atleast 2 characters. Numbers and special characters are not allowed.
        Last name must have atleast 1 characters. Numbers and special characters are not allowed.
        Enter a valid email
        Enter a valid password
        Your profile has been successfully updated.