チャンネルの作成
    • PDF

    チャンネルの作成

    • PDF

    Article Summary

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

    参考

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

    • Global Edgeのキャッシュ設定中、Edge Authを次のように設定します。Global Edge Auth設定変更方法は、APIガイドをご参照ください。
      • 認証除外拡張子
        • .ts, .mp4, .m4s, .vtt
      • 認証トークンを原本に渡す拡張子
        • .m3u8, .mpd
    • 認証トークン発行時、Signed URL、JWTそれぞれ acl、pathに wildcard pathを入力します。認証トークン発行方式の詳細は、ご利用ガイドをご参照ください。
      • 単一ビットレート再生: '/[protocol]/[encryptedBucketName]/[path]/[video filename]/*'
        • 例)
          • HLS : https://example.cdn.ntruss.com/hls/guide/vod-5100k.mp4/index.m3u8
            • wildcard path : '/hls/guide/vod-5100k.mp4/*'
          • DASH : https://example.cdn.ntruss.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.cdn.ntruss.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リクエスト時にフィールド名の大文字・小文字の区別が必要です。

    フィールド名必須有無タイプ制限事項デフォルト値説明
    nameYesString作成するチャンネル名
    storageBucketNameYesStringチャンネルと連携する NAVERクラウドプラットフォームの Object Storageバケット名
    accessPrivateFilesNoBoolean連携する Object Storageのバケット内の非公開ファイルに対して VOD Stationからのアクセス制限を設定
    許可する場合、ファイルを公開処理しなくても Streaming可能
    protocolList[]YesArray(String)HLS, DASHチャンネルのストリーミングプロトコル
    HLSと DASHをサポートし、重複して選択可能
    encryptionList[]NoArrayチャンネルのメディア保護設定
    Media Encryption機能と DRM(FairPlay、Widevine/PlayReady)の連携インターフェースを提供
    encryptionList[].drmContentIdOptionalString英数字で1-200文字
    Media Encryptionの設定時には不要
    DRM Content ID
    DRM Keyのリクエスト時に、該当値を含めてリクエストし、License発行時に必要な値
    encryptionList[].drmKeyUrlOptionalStringhttp(s):// を含む URL
    Media Encryptionの設定時には不要
    DRMベンダーの CPIX API URL
    VOD Stationは、公式に Inka Pallyacon DRMの CPIX v1 APIとの連携をサポート
    DRMパッケージングのために、VOD Stationは xml bodyを含め、POSTリクエスト
    encryptionList[].systemIdListOptionalArray(String)スペースは入力不可で「-」は入力可能、256文字以下
    Media Encryptionの設定時には不要
    DRM Type別の SystemID
    設定する Typeに合った値の入力が必要
    encryptionList[].drmTypeCodeOptionalIntegerFairPlay: 21
    Widevine/PlayReady: 22
    Media Encryptionの設定時には不要
    DRM Typeを設定必要
    encryptionList[].mediaEncryptionTypeCodeOptionalIntegerAES-128: 1
    DRMの設定時に不要
    HLS AES-128を設定
    FairPlayと同時に設定不可
    encryptionList[].protocolYesStringHLS, DASHDRMまたは Media Encryptionに適合する protocolを設定
    Widevine/PlayReady: DASH
    FairPlay: HLS
    MediaEncryption: HLS
    segmentDurationYesInteger5-20の範囲の整数Segmentごとの再生時間
    再生時間が長いほど Segmentが大きくなり、Clientネットワークの状態に応じてロード時間が長くなることがある
    一方、Segment時間が短いほど Segmentが小さくなり、過度に短く設定すると Clientネットワークの状態に応じてバッファが発生することがある
    (単位: 秒)
    segmentDurationOptionNoStringBASIC, VARIABLEBASIC全ての Segmentが keyframeで始まるよう、Segmentを作成
    VARIABLEオプションを選択する際に設定した segmentDuration値と実際に作成された Segmentの Durationのような差が発生することがあり、Segment Durationが一定でないことがある
    createCdnYesBooleantrue, falseVOD Stationの CDN連携は必須
    チャンネルを作成する際に一緒に作成、または別途作成して使用可能
    cdnTypeList[]OptionalStringSupported value: CDN+CDN+による自動作成 CDNを活用する場合に活用。
    Global Edgeの自動作成 CDNは cdn objectを活用します。
    別途 CDNの作成は、VOD Station CDN手動連携ガイドをご参照ください
    cdnOptionalObjectGlobal Edgeを自動作成する場合、必須でリクエストします。CDN+による自動作成の場合は活用しない
    cdn.profileIdOptionalInteger新規作成する Global Edgeのプロファイル IDGlobal Edgeを作成するプロファイル ID
    cdn.regionTypeOptionalStringGlobal Edgeを連携する場合に活用します。KOREA, JAPAN, GLOBALGlobal Edgeのサービスエリア
    cdn.typeOptionalStringGlobal Edgeを連携する場合に活用します。GLOBAL_EDGEGlobal Edge新規作成のためのタイプ
    drmNoObjectOne Click Multi DRM選択時に入力必須
    drm.siteIdNoStringOne Click Multi DRM選択時に入力必須
    drm.contentIdNoStringOne Click Multi DRM選択時に入力必須contentIdは再生しようとするコンテンツの固有の IDで、DRMパッケージング時に活用される。最低3文字以上の英数字または 「-」(ハイフン)、「_」(アンダースコア)を含む最大100文字まで入力可能

    レスポンス

    フィールド名タイプ説明備考
    contentObjectVOD Station OPEN APIレスポンスオブジェクト
    content.idString作成されたチャンネルの ID
    content.nameObjectチャンネル名
    content.channelStatusIntegerチャンネルの現在の状態CREATING, READY, STOPPING, STOPPED, TERMINATING, TERMINATED, FORCE_STOPPING, FORCE_STOPPED, FORCETERMINATING, FORCETERMINATED
    content.storageBucketNameStringチャンネルに連携された Object Storageバケット名
    content.encryptedBucketNameStringチャンネルと連携された Object Storageバケットの暗号化された名前で、再生 URL作成時に使用
    content.accessPrivateFilesBooleanバケット内の非公開ファイルに対する VOD Stationからのアクセス制限の設定
    content.segmentDurationIntegerチャンネルの segment再生の長さ(単位: 秒)
    content.segmentDurationOptionStringチャンネルの segment keyframeのソートオプション
    content.protocolList[]Array(String)チャンネルのストリーミングプロトコルリスト
    content.createTimeIntegerチャンネルの作成開始時間
    content.readyTimeIntegerチャンネルの作成完了時間
    content.cdnCreatedTimeIntegerチャンネルと連携して自動作成された CDNの作成時間
    content.playUrlStringCDNを通じた再生 URL Template
    content.cdnStatusStringチャンネルと連携された CDNの状態
    自動作成しない場合、NOT_FOUNDで表示
    content.cdnDomainString自動作成された CDN+のドメイン
    content.cdnServiceNameString自動作成された CDN+のサービス名
    content.cdnObject自動作成された Global Edge情報
    content.cdn.cdnTypeString自動作成された CDNタイプ
    content.cdn.cdnDomainString自動作成された Global Edgeのドメイン
    content.cdn.cdnServiceNameString自動作成された Global Edgeのサービス名
    content.cdn.profileIdString自動作成された Global Edgeのプロファイル ID
    content.cdn.regionTypeString自動作成された Global edgeのサービスエリア
    content.cdn.cdnInstanceNoInteger自動作成された Global edgeのインスタンス情報
    content.storageBucketStatusStringチャンネルに連携された Object Storageバケットの状態
    content.originPathString作成したチャンネルのソースパスに別途の CDNを作成する際に参照
    content.encryptionList[]Arrayチャンネルのメディアセキュリティ設定
    content.encryptionList[].protocolStringメディアセキュリティ対象プロトコル
    content.encryptionList[].mediaEncryptionTypeCodeIntegerメディアセキュリティ設定の暗号化タイプ
    1: AES-128
    2: Sample-AES
    3: CENC
    content.encryptionList[].drmTypeCodeIntengerメディアセキュリティ設定の DRMタイプ
    21: FairPlay
    22: Widevine/PlayReady
    content.encryptionList[].drmTypeNameStringメディアセキュリティ設定の DRMタイプ名
    content.encryptionList[].drmContentIdStringVOD Stationでパッケージングする時にリクエストする Content ID
    content.encryptionList[].systemIdListArray(String)VOD Stationでパッケージングする時にリクエストする DRM System ID
    content.encryptionList[].drmKeyUrlStringVOD Stationでパッケージングする時にリクエストする DRM CPIX API URL
    content.drmObjectVOD Stationを活用した DRM Encryption設定
    content.drm.siteIdStringOne Click Multi DRMサービスで作成した site id
    content.drm.contentIdStringDRM Encryptionを適用するコンテンツの固有 ID
    DRMパッケージのために使用し、最低3文字以上の英数字または 「-」(ハイフン)、「_」(アンダースコア)を含む最大100文字まで入力可能です。
    errorObjectエラーレスポンスコードとメッセージ
    error.errorCodeStringエラーレスポンスコード
    error.messageStringエラーレスポンスメッセージ
    error.detailsStringerror 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)
    {
      "cdnTypeList": [
        "CDN+"
      ],
      "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.