TL;DR — Licensed Wandura episodes are encrypted and play only through the BytePlus VOD Player SDK (standard edition), natively on iOS and Android. Wandura registers your app IDs and issues the licence (a
.licfile plus an App ID, bound to your final bundle ID and package name); your organisation pays for it, about US$2,860 per app per year. Test on real devices. The step-by-step setup guide is on partner.wandura.ai → Developers → Player SDK after onboarding.
At a glance
| iOS | Android | |
|---|---|---|
| SDK | BytePlus VOD Player SDK, standard edition | BytePlus VOD Player SDK, standard edition |
| Package Wandura tests with | CocoaPods TTSDKFramework 1.52.100.4-standard (Player subspec) |
Gradle com.bytedanceapi:ttsdk-player_standard:1.52.100.5 |
| Minimum | iOS 11.0, Xcode 14, Bitcode disabled | Android API level 16, Java 8, armeabi-v7a or arm64-v8a |
| Language | Objective-C or Swift (bridging header) | Java or Kotlin |
| Verified by Wandura | Encrypted playback on a real iPhone | Follows the vendor guide; share your first test results in your channel |
- Native apps. Wandura supports native iOS and Android integrations. With a cross-platform framework (React Native, Flutter…), you wrap the native SDK in a module of your own: ask in your channel before you plan it.
- Web. Encrypted playback on the web is not part of this licence. Check with Wandura before planning a web player.
- A standard player does not work. An HLS player such as AVPlayer or ExoPlayer on its own loads the playlist and then stalls.
- Newer SDK versions. Patch updates of the same minor version are fine. Tell Wandura before moving to a new minor version. Vendor release notes: iOS, Android.
The licence
| Licence | Covers | List price | Notes |
|---|---|---|---|
| Standard, mobile | iOS and Android of one app (one bundle ID + one package name) | about US$2,860 per app per year | Enough for Wandura's encrypted films. |
| Premium, mobile | Same, with extra vendor features | about US$32,790 per app per year | Not needed for Wandura films. |
| Trial | One app, for testing | free, about 30 days | Cannot be extended: start it when your QA starts. Moving to a paid licence needs no new app release. |
What you receive: a licence file (.lic) and the App ID it is bound to. Both go into your app. Keep the licence file out of public repositories.
What Wandura needs from you: your final iOS bundle ID and Android package name. The licence is bound to them exactly:
- IDs cannot be changed after the licence is issued.
- A debug build with a different ID (a
.debugsuffix, another flavour) counts as a different app and fails the licence check. Build your QA versions with the release IDs. - One licence per app: two apps need two licences, even from the same company.
Devices and privacy
- Real devices. Test encrypted playback on a real iPhone and a real Android phone. Simulators and emulators are not supported for it.
- Device values. After the SDK has started and its licence check passed, the SDK gives you a device ID and a device public key. Your app sends them to your backend for each ticket request (
union_info,drm_kek). The device ID is a persistent identifier: treat it as personal data. See Security. - Privacy declarations. The SDK includes the vendor's own analytics component. Declare it in your App Store privacy details (privacy manifest) and your Google Play Data safety form, following the vendor's documentation.
Effort
An estimate for a team that already ships a native video app; your mileage will vary.
| Work | Estimate |
|---|---|
| SDK setup, licence check, device values (per platform) | 1–2 days |
| Playback from a ticket, expiry and recovery, subtitles (per platform) | 2–3 days |
| Your backend ticket endpoint and paywall | 2–4 days |
| Test plan on real devices | 2–3 days |
Common problems
| Symptom | Likely cause | Fix |
|---|---|---|
| The player loads and never starts | A standard player instead of the SDK, or a skipped setup step | Play through the SDK; follow every step of the portal guide. |
| Licence check fails | The bundle ID or package name differs from the licence (debug suffix, flavour), or the .lic file is missing from the app |
Build with the release IDs; check the file is bundled. |
Device values are (null), nil or empty |
Read before the SDK started or before the licence check passed | Read them after the licence result is OK. The API refuses such values with 400 invalid_device_info. |
| Playback stops after a while | The ticket expired (30 minutes) | Request one fresh ticket and resume at the same position. |
| Works on iOS, not on Android | Region or setup difference in the vendor's Android SDK | Ask in your channel with your SDK version and the error. |
The setup guide
The step-by-step guide (install, licence, device values, playback, subtitles, error codes) is on partner.wandura.ai → Developers → Player SDK, for members with the Developer or Admin role, after onboarding. The platform pages below show the app-side flow around it, with code: iOS · Android.
Updated 5 Oct 2026 · Change history (1)