チャンネルの作成
- 印刷する
- PDF
チャンネルの作成
- 印刷する
- PDF
Article Summary
Share feedback
Thanks for sharing your feedback!
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/*'
- HLS : https://example.cdn.ntruss.com/hls/guide/vod-5100k.mp4/index.m3u8
- 例)
- 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/*'
- HLS再生アドレス: https://example.edge.navercorp.com/hls/guide/abr/vod-,5400,2400,1200,0900,0600,0300,k.mp4.smil/master.m3u8
- 例)
- 単一ビットレート再生: '/[protocol]/[encryptedBucketName]/[path]/[video filename]/*'
リクエスト
POST https://vodstation.apigw.ntruss.com/api/v2/channels
リクエストヘッダ
ヘッダ名 | 説明 |
---|---|
x-ncp-region_code | NAVERクラウドプラットフォームの region code x-ncp_region_code:{Region Code} |
x-ncp-apigw-timestamp | 1970年1月1日00:00:00協定世界時(UTC)からの経過時間をミリ秒(Millisecond)で表し、API Gatewayサーバとの時間差が5分以上の場合は無効なリクエストとみなすx-ncp-apigw-timestamp:{Timestamp} |
x-ncp-iam-access-key | NAVERクラウドプラットフォームポータルから発行された Access Key ID値x-ncp-iam-access-key:{Sub Account Access Key} |
x-ncp-apigw-signature-v2 | Access Key ID値と Secret Keyで暗号化した署名x-ncp-apigw-signature-v2:{API Gateway Signature} |
Content-Type | Request 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連携は必須 チャンネルを作成する際に一緒に作成、または別途作成して使用可能 | |
cdnTypeList[] | Optional | String | Supported value: CDN+ | CDN+による自動作成 CDNを活用する場合に活用。 Global Edgeの自動作成 CDNは cdn objectを活用します。 別途 CDNの作成は、VOD Station CDN手動連携ガイドをご参照ください | |
cdn | Optional | Object | Global Edgeを自動作成する場合、必須でリクエストします。 | CDN+による自動作成の場合は活用しない | |
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 | 自動作成された CDN+のドメイン | |
content.cdnServiceName | String | 自動作成された CDN+のサービス名 | |
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)
{
"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"
}
}
}
この記事は役に立ちましたか?