Implementation Guide
Covers the entire process of using the Kollus SDK in an Android environment to download DRM content to a device and securely play it back even without a network connection.
All example code in this document is based on the official sample app kollus_player_v2_android.
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, API calls related to download and offline playback will fail with an ERROR_INCORRECT_AUTH_KEY error.
| Item | Description and where to find |
|---|---|
| SDK key | A unique key issued through your Account Manager(biz@catenoid.net) or Technical Support(tech_support@catenoid.net) |
| Expiration date | The authentication validity period provided with the SDK key (e.g., 2050/12/31) |
| Package identifier | context.getPackageName(): Automatically identified and used for authentication within the SDK |
SDK keys cannot be issued directly from the console. Please contact your Account Manager(biz@catenoid.net) or Technical Support(tech_support@catenoid.net) with your package name/Bundle ID to request issuance.
Content download URL and security considerations
The download target URL generally has a one-time URL structure in the form of https://v.kr.kollus.com/s?jwt=....
- Server-to-server integration required: Since the JWT issuance logic contains security keys, it must be performed on your customer's backend server. The mobile app client must not generate JWTs directly, as this can create security vulnerabilities.
- SDK handling: The mobile app passes the URL received from the customer's server to the SDK's
load(url, ...)method as-is, without modification.
Implementation guide structure
- 1. Download Preparation: SDK initialization and authentication, storage permission check, device available capacity check
- 2. Streaming Playback: JWT URL online playback, media delivery method characteristics, background playback control
- 3. Content Download: Two-step control for registering information and starting download, cancel/restart process
- 4. Download List Management: Query downloaded content list, status-based flag branching, restoration after app restart
- 5. Offline Playback: Local file playback flow, DRM verification condition handling when network is disconnected
- 6. DRM License Renewal: Check license expiration conditions, batch renewal processing
- 7. Delete Downloaded Content: Single/bulk content deletion and expired file cleanup based on DRM response
- 8. Download Events/Callbacks: Listeners for tracking download status changes and handling DRM verification/renewal results
- 9. Download Error Codes: How to handle major errors
- Anti-patterns (Common Mistakes): Incorrect implementation cases and how to resolve them correctly
References
- Official sample:
kollus_player_v2_android - Callback specifications: DRM Download Callback
- Technical inquiries: tech_support@catenoid.net