Create channel
    • PDF

    Create channel

    • PDF

    Article summary

    VOD Station provides an API to create channels, as well as the Channel list search API and Channel information search API for searching created channels.

    Note

    The following are precautions when using the content authentication (Signed URL/JWT) control of Global Edge in integration with VOD Station.

    • In the cache settings of Global Edge, you need to set Edge Auth as follows. For more information on how to change Global Edge Edge Auth settings, see the API Guide.
      • Extensions excluded from authentication
        • .ts, .mp4, .m4s, .vtt, .key
      • Extension that forwards the authentication token to the source
        • .m3u8, .mpd
    • When issuing an authentication token, you must enter wildcard path under acl for Signed URL and path for JWT respectively. For more information on how to issue authentication tokens, see the User Guide.
      • Single bitrate playback: '/[protocol]/[encryptedBucketName]/[path]/[video filename]/*'
        • Example:
          • 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 bitrate playback: '/[protocol]/[encryptedBucketName]/[path]/[prefix],[video filenames],[suffix].smil/*'
        • Example:
          • HLS playback address: 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 playback address: 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/*'

    Request

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

    Request headers

    Header nameDescription
    x-ncp-region_codeNAVER Cloud Platform's Region code
    x-ncp_region_code:{Region Code}
    x-ncp-apigw-timestampThis is the number of milliseconds that have elapsed since January 1, 1970 00:00:00 UTC, and the request is considered invalid if the timestamp differs from the current time by more than 5 minutes
    x-ncp-apigw-timestamp:{Timestamp}
    x-ncp-iam-access-keyValue of access key ID issued in the NAVER Cloud Platform portal
    x-ncp-iam-access-key:{Sub Account Access Key}
    x-ncp-apigw-signature-v2Signature encrypted with the access key ID value and secret key
    x-ncp-apigw-signature-v2:{API Gateway Signature}
    Content-TypeSpecify the request body content type as application/json
    Content-Type: application/json

    Request body

    Field names in API requests are case sensitive.

    Field nameRequiredTypeRestrictionsDefault valueDescription
    nameYesStringName of the channel to be created
    storageBucketNameYesStringName of the NAVER Cloud Platform Object Storage bucket to be linked with the channel
    accessPrivateFilesNoBooleanSet access restrictions in VOD Station for private files in the Object Storage bucket to be linked
    If allowed, files can be streamed without processing them to be public
    protocolList[]YesArray(String)HLS, DASHStreaming protocol for the channel
    HLS and DASH are supported, with duplicate selections available
    encryptionList[]NoArrayMedia protection settings for the channel
    It provides media encryption feature and DRM (FairPlay, Widevine/PlayReady) integration interface
    encryptionList[].drmContentIdOptionalStringNumbers and English letters between 1 and 200 characters
    Not needed when setting up media encryption
    DRM Content ID
    The value is included for DRM key requests and needed for license issuing
    encryptionList[].drmKeyUrlOptionalStringURL including http(s)://
    Not needed when setting up media encryption
    The CPIX API URL of the DRM provider
    VOD Station officially supports the integration with Inka Pallyacon DRM's CPIX v1 API
    For DRM packaging, VOD Station includes the xml body at POST request
    encryptionList[].systemIdListOptionalArray(String)Spaces not allowed, "-" allowed, must be less than 256 characters
    Not needed when setting up media encryption
    SystemID by DRM type
    Required to enter a value for the type you're setting
    encryptionList[].drmTypeCodeOptionalIntegerFairPlay: 21
    Widevine/PlayReady: 22
    Not required when setting up media encryption
    DRM type settings required
    encryptionList[].mediaEncryptionTypeCodeOptionalIntegerAES-128: 1
    Unnecessary when DRM is set
    Set HLS AES-128
    Can't be configured with FairPlay
    encryptionList[].protocolYesStringHLS, DASHSet the appropriate protocol for DRM or media encryption
    Widevine/PlayReady: DASH
    FairPlay: HLS
    MediaEncryption: HLS
    segmentDurationYesIntegerAn integer between 5 and 20Play time per segment
    The longer the duration, the longer the segment size becomes. This may result in a longer loading time, depending on the client network conditions
    On the other hand, the shorter the segment duration, the smaller the segment size will become. If set too small, buffering may occur, depending on the client network conditions
    (Unit: second)
    segmentDurationOptionNoStringBASIC, VARIABLEBASICCreate segments so that all segments start with a keyframe
    When selecting the VARIABLE option, a difference may occur between configured segmentDuration value and segment duration actually created, and the segment duration may not be constant
    createCdnYesBooleantrue, falseVOD Station requires CDN integration
    Can be created together upon channel creation or separately
    cdnOptionalObjectRequired when auto-generating Global Edge
    cdn.profileIdOptionalIntegerNew Global Edge profile ID to createProfile ID to create the Global Edge from
    cdn.regionTypeOptionalStringUtilized when integrating Global EdgeKOREA, JAPAN, GLOBALGlobal Edge service region
    cdn.typeOptionalStringUtilized when integrating Global EdgeGLOBAL_EDGEType for creating a new Global Edge
    drmNoObjectRequired to enter when selecting One Click Multi DRM
    drm.siteIdNoStringRequired to enter when selecting One Click Multi DRM
    drm.contentIdNoStringRequired to enter when selecting One Click Multi DRMcontentId is the unique ID of the content to be played, and it is used when packaging DRM. You can enter 3 to 100 characters consisting of English letters, numbers, "-" (hyphens), and "_" (underscores)

    Response

    Field nameTypeDescriptionNote
    contentObjectVOD Station open API response object
    content.idStringID of the created channel
    content.nameObjectChannel name
    content.channelStatusIntegerChannel's current statusCREATING, READY, STOPPING, STOPPED, TERMINATING, TERMINATED, FORCE_STOPPING, FORCE_STOPPED, FORCETERMINATING, FORCETERMINATED
    content.storageBucketNameStringName of the Object Storage bucket linked with the channel
    content.encryptedBucketNameStringEncrypted name of the Object Storage bucket integrated with the channel, used when creating the playback URL
    content.accessPrivateFilesBooleanSet access restrictions in VOD Station for private files in the bucket
    content.segmentDurationIntegerSegment duration of the channel (unit: second)
    content.segmentDurationOptionStringChannel's segment keyframe sorting options
    content.protocolList[]Array(String)List of streaming protocols of the channel
    content.createTimeIntegerThe time channel creation started
    content.readyTimeIntegerThe time channel creation completed
    content.cdnCreatedTimeIntegerThe time when the CDN was automatically created in linkage to the channel
    content.playUrlStringCDN-based playback URL template
    content.cdnStatusStringStatus of the CDN integrated with the channel
    If not auto-generated, displayed as NOT_FOUND
    content.cdnDomainStringAuto-generated Global Edge's domain
    content.cdnServiceNameStringAuto-generated Global Edge's service name
    content.cdnObjectAuto-generated Global Edge information
    content.cdn.cdnTypeStringAuto-generated CDN type
    content.cdn.cdnDomainStringAuto-generated Global Edge's domain
    content.cdn.cdnServiceNameStringAuto-generated Global Edge's service name
    content.cdn.profileIdStringAuto-generated Global Edge's profile ID
    content.cdn.regionTypeStringAuto-generated Global Edge's service area
    content.cdn.cdnInstanceNoIntegerAuto-generated Global Edge's instance information
    content.storageBucketStatusStringStatus of the Object Storage bucket integrated with the channel
    content.originPathStringSource path of the created channel. This is referred to when an independent CDN is created.
    content.encryptionList[]ArrayMedia security settings of the channel
    content.encryptionList[].protocolStringMedia security target protocol
    content.encryptionList[].mediaEncryptionTypeCodeIntegerMedia security setting's encryption type
    1: AES-128
    2: Sample-AES
    3: CENC
    content.encryptionList[].drmTypeCodeIntengerMedia security setting's DRM type
    21: FairPlay
    22: Widevine/PlayReady
    content.encryptionList[].drmTypeNameStringName of the media security setting's DRM type
    content.encryptionList[].drmContentIdStringContent ID to be requested when packaging from VOD Station
    content.encryptionList[].systemIdListArray(String)DRM System ID to be requested when packaging from VOD Station
    content.encryptionList[].drmKeyUrlStringDRM CPIX API URL to be requested when packaging from VOD Station
    content.drmObjectDRM encryption settings using VOD Station
    content.drm.siteIdStringSite id created with One Click Multi DRM product
    content.drm.contentIdStringUnique ID of the content to apply DRM encryption to
    It is used for DRM packaging and can be at least 3 characters and up to 100 characters, including English letter, numbers, "-" (hyphen), and "_" (underscore)
    errorObjectError response code and message
    error.errorCodeStringError response code
    error.messageStringError response message
    error.detailsStringDetailed description of the error message
    It responds when an error occurs in the API Gateway

    Examples

    Request example

    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"
    }
    

    Response example

    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"
        }
      }
    }
    

    Was this article helpful?

    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.