Skip to main content

Content Management

Notice

This document is a machine-translated draft and is currently undergoing review. Some content may be inaccurate or differ from the original Korean version. For the most precise information, refer to the Korean documentation.

Go to Content Management API v3 Reference
Feature Scope by Version
  • Common authentication: All API versions use a common authentication method via a query string parameter (?access_token=). For the common specification on error determination criteria, refer to the Core Changes section of the API v3 migration guide.
  • Transcoding: For specifications regarding transcoding progress status retrieval and transcoded files, refer to the Transcoding Management document.

Retrieve all content list

  • Legacy (v1): GET /media/library/media_content
  • Legacy (v2): Not supported (only content list retrieval by channel is supported)
  • Changed (v3): GET /media-contents
Changes
  • Change in response data structure: The location of the array returned in the response object has been standardized from the previous result.item[] to data[], and a pagination object has been added for pagination handling.
  • Array item fields: The detailed field specifications of individual content items within the array are identical to those in "Retrieve content information" below.

Retrieve content list by channel

Refer to the Content list by channel section in the Channel Management document.


Retrieve content list by category

  • Legacy (v1/v2): Not supported
  • Changed (v3): GET /categories/{category_key}/media-contents
Request parameters and response structure details

Request parameters

The request parameter specification fully matches the configuration of the Retrieve all content list API.

Response structure specification

{
"status": 200,
"data": [
{
"title": "string",
"upload_file_key": "string"
}
],
"pagination": {
"current_page": 1,
"per_page": 10,
"total": 100
}
}

Create content upload URL

  • Legacy (v1): POST /media_auth/upload/create_url
  • Legacy (v2): Not supported
  • Changed (v3): POST /upload/create-url
Changes
  • Upload processing host: The issued upload_url is returned targeting the upload-dedicated domain https://upload.kr.kollus.com, rather than the common domain address.
  • Field name change: The will_be_expired_at field from v1 has been changed to expired_at in v3.
Request body and response structure details

Request body

FieldData TypeRequiredDescription
expire_timeIntegerOptionalUpload URL validity duration (default: 600 seconds, maximum: 21600 seconds)
titleStringRequiredContent title
category_keyStringOptionalUnique identifier of the category for classification
is_encryption_uploadIntegerOptionalEncryption setting (0: standard content(unencrypted), 1: encrypted content)
is_audio_uploadIntegerOptionalAudio-only content setting (0: includes video, 1: audio only)
use_ai_scriptIntegerOptionalWhether to apply AI Speed
use_ai_subtitleIntegerOptionalWhether to generate AI Subtitle
use_ai_outlineIntegerOptionalWhether to generate AI Summary
ai_subtitle_languageStringOptionalAI Subtitle language setting (primary language used in the video or audio)
ai_subtitle_statusIntegerOptionalAI Subtitle visibility setting (0: private, 1: public)
ai_subtitle_kindIntegerOptionalAI Subtitle type setting (0: main subtitle, 1: sub subtitle)

Response structure comparison

  • v1
{
"error": 0,
"message": "success",
"result": {
"upload_url": "https://upload.kr.kollus.com/old-upload-path",
"progress_url": "https://upload.kr.kollus.com/old-progress-path",
"upload_file_key": "v1_file_key",
"will_be_expired_at": 1672531199
}
}
  • v3
{
"status": 201,
"data": {
"upload_url": "https://upload.kr.kollus.com/v3-upload-path",
"progress_url": "https://upload.kr.kollus.com/v3-progress-path",
"upload_file_key": "v3_file_key",
"expired_at": 1672531199
}
}

Retrieve content information

  • Legacy (v1): GET /media/library/media_content/{upload_file_key}
  • Legacy (v2): GET /vod/media-contents/{upload_file_key}
  • Changed (v3): GET /media-contents/{upload_file_key}
Changes
  • v1 → v3 conversion: The overall flat structure and field names are retained, but many data types have been changed. (e.g., conversion from Integer to Boolean, and type change from Unix Timestamp to ISO8601 string)
  • v2 → v3 conversion: The nested sub-object structures (kind, category, original_file) that had multiple layers in v2 have been changed to an intuitive flat structure in v3.
  • Removal of v1-only fields: The transcoding_files, channels, and metadata fields that were included in the previous v1 response have been completely removed in v3.
Detailed response field mapping
Fieldv1 Specv2 Specv3 SpecMigration Notes
kindInteger + kind_namekind.{type, value} objectInteger + kind_nameOnly the v2 structure is returned as a nested object type
durationStringInteger (unit: seconds)String (HH:MM:SS)v3 uses timecode format
categorycategory_name / _key (flat)category.{id, key, name, level_path} (nested)category_name / _key (flat)v3 returns the same flat structure as v1
original_fileoriginal_file_name / _size (flat)original_file.{name, size} (nested)Returns flat structureFile size format: String (v1) → Integer (v2/v3)
use_encryptionInteger (0 or 1)BooleanBooleanThe integer variable from v1 has been changed to Boolean type
statusInteger (e.g., 1)BooleanBooleanThe integer variable from v1 has been changed to Boolean type
transcoded_at, created_at, updated_atUnix IntegerISO8601 stringISO8601 string-
vr_*Not supportedvr_information.{type, value}vr_info.{projection_type, stereo_mode}The key name has changed in v3 compared to v2
human_readable_original_file_sizeProvidedNot supportedProvidedSize value converted for data readability (e.g., "823.5MB")
media_information3 categories (file, video, audio)2 categories (audio missing)3 categories (file, video, audio)v3 fully provides all 3 categories of information, same as v1
transcoding_stageProvidedNot supportedProvidedFor detailed code specifications, refer to the Transcoding Management document
transcoding_stage_nameProvidedNot supportedProvidedFor detailed code specifications, refer to the Transcoding Management document
poster_url, snapshot_urlProvidedNot supportedProvidedAdded representative image URL information field
is_passthrough--BooleanContent status/mapping field added in v3
media_content_keys[]--ArrayContent status/mapping field added in v3

Update content information

  • Legacy (v1): POST /media/media_content/update
  • Legacy (v2): PUT /vod/media-contents/{upload_file_key}
  • Changed (v3): PUT /media-contents/{upload_file_key}
Changes
  • Target identification method: v1 specified the target using the unique identifying integer id in the request body, whereas v3 identifies it via the {upload_file_key} in the URL path.
  • VR setting structuring: In v2, flat parameters (projection_type, stereo_mode) were sent, but in v3, they must be sent grouped under fields (vr.projection_type, vr.stereo_mode) beneath the parent vr object.
Request body and response structure details

Request body

  • v1: id(required)+title
  • v2: title, projection_type(rectangular/equirectangular), stereo_mode(mono)
  • v3: title, vr.projection_type, vr.stereo_mode

Response structure comparison

  • v1: { error, message }
  • v2: { data: ApiVodMediaContent }
  • v3: { "data": ApiVodMediaContent, "status": "ok" }

Retrieve content metadata

  • Legacy (v1): GET /media/library/get_metadata/{upload_file_key}
  • Legacy (v2): Not supported
  • Changed (v3): Not supported
Deprecation of Metadata Service

In v3, a dedicated metadata retrieval endpoint is not provided, and the metadata detail field within the Retrieve content information response has also been consistently deprecated.


Update content metadata

  • Legacy (v1): POST /media/library/update_metadata/{upload_file_key}
  • Legacy (v2): Not supported
  • Changed (v3): Not supported
Deprecation of Metadata Service

In accordance with the deprecation policy for the metadata retrieval API above, the metadata update feature has also been deprecated in v3.


Delete content

  • Legacy (v1/v2): Not supported (there was no feature for physically deleting content, so the lifecycle was managed only through enable/disable control.)
  • Changed (v3): DELETE /media-contents/{upload_file_key}
Response structure details

Response structure specification

{
"data": [],
"status": "ok"
}

Change content category

  • Legacy (v1): POST /media/library/change_category/{upload_file_key} (category_key included in the body)
  • Legacy (v2): Not supported
  • Changed (v3): PUT /media-contents/{upload_file_key}/categories/{category_key}
Changes
  • HTTP method change: The HTTP method has been changed from POST to PUT.
  • Parameter location change: The category_key, which was sent in the request body in v1, has been integrated as a path parameter in v3.
Response structure details
  • v1: { error, message } (no separate result data)
  • v3: { "data": ApiVodMediaContentCategory, "status": "ok" } (returns result information with the new category mapped)

Disable content

  • Legacy (v1): POST /media/library/set_disable/{upload_file_key}
  • Legacy (v2): Not supported
  • Changed (v3): PUT /media-contents/{upload_file_key}/disable
Changes
  • HTTP method change: The HTTP method has been changed from POST to PUT.
  • Response standardization: Responses are returned in the ApiVodMediaContentStatus object structure.

Enable content

  • Legacy (v1): POST /media/library/set_enable/{upload_file_key}
  • Legacy (v2): Not supported
  • Changed (v3): PUT /media-contents/{upload_file_key}/enable
Changes
  • HTTP method change: The HTTP method has been changed from POST to PUT.
  • Response standardization: Returned as { "data": ApiVodMediaContentStatus, "status": "ok" }.

Upload poster image

  • Legacy (v1): POST /media/library/upload_poster/{upload_file_key}
  • Legacy (v2): Not supported
  • Changed (v3): POST /media-contents/{upload_file_key}/poster
Changes
  • Required field: Starting from v3, the multipart/form-data header format must be used to pass the file field (Binary data, required) in the request body.
  • Response structure: The v1 result message return method has been replaced with v3's standardized format ({ "data": [], "status": "ok" }).

Download poster image

  • Legacy (v1/v2): Not supported
  • Changed (v3): GET /media-contents/{upload_file_key}/poster/download
Response structure details

Response structure specification

{
"data": {
"expires": "2026-07-01T09:12:08+00:00",
"download_url": "https://download.kr.kollus.com/path-to-poster-file"
}
}

Download original file

  • Legacy (v1): Not supported
  • Legacy (v2): GET /vod/media-contents/{upload_file_key}/original/download
  • Changed (v3): GET /media-contents/{upload_file_key}/original-file/download
Changes
  • Path name change: The path name previously declared as original has been changed to original-file.
  • Field information replacement: The download URI field name download_uri in the v2 response object has been uniformly changed to download_url in v3.

Response structure specification

{
"data": {
"expires": "2026-07-01T09:12:08+00:00",
"download_url": "https://download.kr.kollus.com/path-to-original-file"
}
}

Create snapshot image (v2 only)

  • Legacy (v1): Not supported
  • Legacy (v2): POST /vod/media-contents/{upload_file_key}/snapshot
  • Changed (v3): Not supported
Deprecation of Real-time Snapshot Extraction Feature

The v2 script feature that allowed users to directly customize a timecode point to instantly regenerate a thumbnail image has been completely deprecated in v3. In v3, only the fixed snapshot information (snapshot_url) automatically generated by the initial system scheduler during media upload processing can be retrieved.


Download snapshot image (v2 only)

  • Legacy (v1): Not supported
  • Legacy (v2): POST /vod/media-contents/get-snapshot-download-link (path included in the body)
  • Changed (v3): Not supported
Deprecation of Real-time Snapshot Extraction Feature

Due to the deprecation of the snapshot image creation feature, the snapshot image download API is also not provided in v3.