チャンネルの作成
    • 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
    

    リクエストヘッダ

    ヘッダ名説明
    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/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"
        }
      }
    }
    

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

    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.