Skip to main content

Generating Secure Live Broadcast URLs (JWT)

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, please refer to the Korean documentation.

To apply security features to a live stream, a valid JWT(JSON Web Token) must be generated on the customer server and passed when calling the player.

This document describes the detailed JWT specifications for restricting live stream viewing to authorized users only and applying security features such as concurrent playback prevention.


JWT Technical Specifications

Encryption Algorithm

Kollus Live supports only the HMAC SHA-256(HS256) algorithm.

Header: { "alg": "HS256", "typ": "JWT" }

Authentication Keys

The following two keys are used when generating and calling the JWT.

Security Key

  • Description: A secret key used for JWT signing and verification. Be careful not to expose it externally.
  • Location: Kollus Live console > [Settings] > [Basic information] > [Service account] tab
Changing the Security Key

To change the security key, please contact Technical Support(tech_support@catenoid.net).

Custom Key (custom_key)

  • Description: An encrypted value of the security key, used together with the security key for authentication (JWT).
  • Location: Kollus Live console > [Settings] > [Basic information] > [Service account] tab

Request URL Format

https://v-live-kr.kollus.com/s?jwt={JWT}&custom_key={CUSTOM_KEY}
Caution
  • Standard Claim Usage Restrictions: Errors may occur when using Claims defined in the RFC 7519 - Registered Claim Names specification.
  • Enabling Watermarking: The watermarking feature is disabled by default. To enable it, please contact Account Manager(biz@catenoid.net) or Technical Support(tech_support@catenoid.net).
  • iOS Full Screen Mode: When switching to full screen on iOS, the iOS Native player is launched.
  • Feature Restriction Environments: When playing in full screen on iOS or Samsung Internet Browser, Kollus player features such as watermark display may be restricted.

JWT Payload Detailed Specifications

Required Options Example

This is the basic Payload structure for a user (catenoid) to watch a specific channel (vouww6hjt9xy9dnV).

{
"client_user_id": "catenoid",
"expire_time": 1735660800,
"live_media_channel_key": "vouww6hjt9xy9dnV"
}

Basic Options

Related Information

Refer to the following document for key (Key/ID) information.

OptionTypeRequiredDefaultDescription
client_user_id (cuid)string-User ID
  • Used as the identifier for concurrent playback prevention and recording/capture prevention settings.
  • It is recommended to use alphanumeric characters. Korean or special characters may limit search functionality when viewing prevention logs.
expire_time (expt)integer-JWT expiration date/time (Unix Timestamp)
  • Maximum value: 1893455999
  • Even after expiration, content access may be allowed for up to 1 minute to account for server time discrepancies.
live_media_channel_key (lmckey)string-Unique channel identifier (channel key)
client_user_namestring--User's nickname to be displayed in the chat window
client_user_imagestring--Image URL to be displayed next to the nickname (https required)
play_exptinteger-Current time + 2 daysValid access time for the live stream
live_media_profile_key (lmpf)string--Encoding profile key (ABR applied if not specified)
titlestring--Broadcast title to be displayed in the player (existing broadcast title is displayed if not specified)

Chatting Options

OptionTypeDefaultDescription
chatting_policy.is_visiblebooleantrueWhether to display the chat window
chatting_policy.is_adminbooleanfalseWhether to grant chatting administrator privileges

Chatting UI Options

OptionTypeDefaultDescription
chat_font_urlstring-Web font URL (only 1 supported; check supported extensions per browser)
chat_font_namestring-Font name (30 characters or less; recommended to match the name included in chat_font_url)
chat_font_weightstring-Font weight (only weights included in chat_font_url are applied)
chat_font_colorstring-Chat text color (HEX)
chat_background_colorstring-Chat window background color (HEX)
chat_tab_font_colorstring-Chat window tab menu text color (HEX)
chat_tab_background_colorstring-Chat window tab menu background color (HEX)

Watermarking

Overlays user identification information on the screen to prevent unauthorized recording and leakage.

Note
  • Enabling the Feature: The watermarking feature is disabled by default. To enable it, please contact Account Manager(biz@catenoid.net) or Technical Support(tech_support@catenoid.net).
  • Tamper Prevention: Protection against watermark tampering via external scripts (JavaScript Injection) is applied by default.
OptionTypeDefaultDescription
video_watermarking_code_policy.code_kindstring-Watermark display text
  • When "client_user_id" is entered, cuid is displayed; when a plain string is entered, that text is displayed as-is.
video_watermarking_code_policy.font_sizeinteger7Watermark text size (px)
video_watermarking_code_policy.font_colorstring"FFFFFF"Watermark color (HEX)
video_watermarking_code_policy.alphainteger200Watermark opacity (0–255)
video_watermarking_code_policy.show_timeinteger1Watermark display duration (sec)
video_watermarking_code_policy.hide_timeinteger60Watermark hidden duration (sec)
video_watermarking_code_policy.enable_html5_playerbooleanfalseWhether to use Kollus Web Player
  • When set to false, playback is handled by App Player for Windows.

Usage Examples

Customizing Chatting Features

{
"client_user_id": "catenoid",
"client_user_name": "guest_1",
"expire_time": 1735660800,
"live_media_channel_key": "vouww6hjt9xy9dnV",
"chatting_policy": {
"is_visible": true,
"is_admin": false,
"position": "right"
},
"chat_font_weight": "700",
"chat_font_color": "ffffff",
"chat_background_color": "333333",
"chat_tab_font_color": "00ff00",
"chat_tab_background_color": "777777"
}

Applying Watermarking

{
"client_user_id": "catenoid",
"live_media_channel_key": "vouww6hjt9xy9dnV",
"expire_time": 1735660800,
"client_user_name": "guest_1",
"video_watermarking_code_policy": {
"code_kind": "catenoid",
"font_size": 7,
"font_color": "FFFFFF",
"show_time": 1,
"hide_time": 500,
"alpha": 50,
"enable_html5_player": false
}
}