Day 2 · 15 min read

SDK Requirements & Setup

Hardware, OS, dependencies, networking for the SDK.

OS and language

The CWIP overview is explicit: Ubuntu is the supported OS, and students are expected to be comfortable with the Ubuntu CLI. The labs run there. Production deployments often run on the same.

Hardware and network

A typical pre-class checklist:

  • A laptop or VM running a recent Ubuntu LTS (the class will name the exact version on registration).
  • Sudo access for installing dependencies during the lab.
  • Outbound HTTPS to Google's provisioning service (for any device-side testing) and to the lab licence service.
  • Python 3.x — the lab tooling and example scripts are Python.

Auth model

The SDK is configured with credentials that prove your organisation is authorised to issue Widevine licences. These are issued under the CWIP master agreements and are NDA-bound.

What's NOT NDA-bound and can be said publicly:

  • Your application authenticates to the SDK, typically with a server-side credential.
  • The SDK's outputs are signed and verifiable by the CDM.
  • Credentials are scoped — there is a notion of test vs production credentials.
Lab note

In-class material will name the specific credential files, environment variables, and configuration knobs. Capture those in this module's internal.mdx.

Dependencies the lab assumes you already have

  • git, curl, python3, pip, openssl.
  • A modern Chrome browser to drive the playback side of the lab.
  • Familiarity with reading XML (DASH manifests) and JSON.

What goes wrong on day one

Common pitfall

Wrong Chrome version. Component-updater CDM versions vary. The lab is verified on a specific Chrome version range. Update before class.

Common pitfall

Restrictive corporate firewalls. Some Google offices and lab networks block specific outbound endpoints. Test your laptop on the open internet before showing up.

Common pitfall

VPN clients that intercept TLS. Some enterprise VPNs MITM HTTPS — this breaks the licence flow because the licence response signature won't verify. Disable for the class.

No questions yet for sdk-setup. Add some in content/questions/sdk-setup.json.