Skip to main content

Implementation Guide

This guide covers the entire process of downloading DRM content to a device using the Kollus SDK in an iOS environment and playing it back securely even without a network connection. All example code in this document is based on the official sample app kollus_player_ios.


Prerequisites: SDK key and authentication

The Kollus SDK performs authentication based on the SDK key and expiration date issued by Catenoid. If you have not received the correct key or are using an expired key, an error will occur during the SDK initialization and start step, causing the operation to fail.

ItemDescription and location
SDK keyA unique key issued through your Account Manager or Technical Support (KollusStorage.applicationKey)
Expiration dateThe authentication validity period provided with the SDK key (KollusStorage.applicationExpireDate)
Bundle IDA required field that must match the contents of Info.plist (KollusStorage.applicationBundleID)
SDK key issuance

SDK keys cannot be issued directly from the console. Contact your Account Manager or Technical Support(tech_support@catenoid.net) with your Bundle ID to request issuance.

Multi DRM (FairPlay) integration guide

When handling Multi DRM content based on FairPlay in an iOS environment, PallyConFPSSDK.framework is integrated and operates together. A separate site_id and FPS certificate may be required in addition to the SDK key, so contact Technical Support(tech_support@catenoid.net) if you are working with such content.

Content download URL and security precautions

The target download URL typically has a one-time URL structure such as https://v.kr.kollus.com/s?jwt=....

  • Server-to-server integration required: Since JWT issuance logic includes a security key, it must be performed on your customer's backend server. Mobile app clients must not generate JWTs directly, as this can create security vulnerabilities.
  • SDK handling method: The mobile app passes the URL received from the customer's server to the SDK's internal integration method without modification.

Implementation guide structure

  • 1. Download Preparation: SDK initialization and authentication, start method selection, background download options, and storage information retrieval
  • 2. Streaming Playback: JWT URL online streaming, media delivery method characteristics, LMS watch statistics callback, and live handling
  • 3. Content Download: Two-step control for registering information and starting downloads, cancel/restart process, and progress tracking
  • 4. Download List Management: Querying the downloaded content list, filtering by type, and displaying recent downloads and sorting
  • 5. Offline Playback: Player integration and local playback flow, and DRM verification condition handling when the network is disconnected
  • 6. DRM License Renewal: Checking license expiration conditions, batch renewal processing, and background execution constraints
  • 7. Delete Downloaded Content: Deleting single or all content and cleaning up expired files based on DRM responses
  • 8. Download Events/Callbacks: Listeners for tracking download status changes and handling DRM verification/renewal results
  • 9. Download Error Codes: How to respond to major errors
  • Anti-patterns (Common Mistakes): Incorrect implementation examples and how to resolve them correctly

References