Thirty days is a realistic window to go from a signed evaluation account to a live DRM integration, and teams that come in prepared often move faster. Most of that time isn't spent wrestling with the DRM platform itself: KeyOS is designed to respond the moment you log in. It's spent on the surrounding pieces (packaging, player, device testing) that every integration has to work through regardless of vendor.
This post walks through what a typical DRM Deployment with KeyOS looks like end to end, from account setup to going live, so you know exactly what to expect at each milestone. It's written for developers and integration engineers who are about to start, and for managers who need to set realistic expectations with their teams.
Day 0: Getting in the Door
The DRM industry runs on relationships. A lot of deals don't start with a sign-up form; they start with a conversation. But whether you come in through the website or a direct introduction, the first technical step is the same: a sales call happens the same day or the next, and an evaluation account is set up immediately after.
This isn't a sandboxed demo or a feature-limited trial. The eval account gives you full access to the KeyOS platform: the console, all three DRM systems (Widevine, PlayReady, FairPlay), the Content Encryption Key API, the License Key API. The only thing that'll get flagged is production-scale traffic on an eval account. Everything else is yours to explore.
This matters because your first technical work can start that same day. You don't spend week one waiting for access.
The First Real Decision: Direct CPIX or ESP Partner?
Before you touch the console, there's one question to answer: how are you packaging your content?
About 70% of KeyOS integrations happen through an ESP (Encoding Service Provider) partner: companies like AWS Elemental, Harmonic, Ateme, and others whose tools have already integrated the KeyOS Content Encryption Key API. In this model, you configure the packager to request encryption keys from KeyOS on your behalf. You don't write CPIX requests from scratch.
For the 30% who integrate directly, you send CPIX requests to the KeyOS API yourself, signed with your certificate, and receive content encryption keys to use in your own packaging pipeline.
If you're going the partner route: Most of the integration work happens in the packager tool, not in KeyOS. For AWS Elemental MediaConvert and MediaPackage, documentation covers every step of the SPEKE setup including IAM role configuration. For our major ESP partners, the configuration path is well-documented and the answers to common integration questions are already known. In most cases, the delay isn't in the DRM setup; it's in provisioning and standing up the encoding infrastructure itself.
If you're going direct: You send CPIX requests to the KeyOS API yourself. CPIX (Content Protection Information Exchange) is the protocol for securely requesting and delivering content encryption keys. In practice, you sign an XML request with your certificate, send it to the API, and receive back an encrypted document containing the keys your packager needs. Your first milestone is a successful request and a valid response. We provide ready-to-use code samples in Python and Node.js: substitute your credentials, run the sample, and you have your first content keys. No need to figure out the request structure from scratch.
The choice doesn't need to be permanent. Some teams start with an ESP partner and build a direct integration later as their pipeline matures.
Day 1: Setting Up Your KeyOS Credentials
Once you know your packaging path, the KeyOS Console setup is straightforward. Most of it is the same regardless of whether you're going through an ESP partner or integrating directly: you need credentials for both sides of the pipeline.
For content encryption (packaging): Register an X.509 certificate with the CPIX or SPEKE usage. The console lets you generate one directly in the browser; the private key never leaves your machine. Alternatively, import your own. Either way, this takes minutes.
For license delivery (playback): Register a separate X.509 certificate with the Authentication XML usage. This is the signing key for the tokens that accompany every license request.
For FairPlay specifically: You'll need a FairPlay Streaming (FPS) certificate; this one has its own story, which we'll get to.
KeyOS services are ready to respond to requests from the moment these credentials are in place. For a motivated engineer, this is all same-day.
From here, the timeline is yours to set. The steps that follow aren't a fixed schedule; they're a sequence of milestones, and how fast you move through them depends almost entirely on your existing stack.
Your First Encrypted Asset: It Depends on What You Already Have
How quickly you reach a working encrypted asset depends almost entirely on your existing stack, not on KeyOS.
If your packager is already configured and running, the first test asset can be ready the same day as your console setup. A team that's already worked with their encoder and knows the tooling can go from account creation to a working encrypted file within a day. The DRM configuration itself isn't what takes time.
What tends to add time:
- Starting infrastructure from zero: Standing up a new encoding or packaging pipeline takes as long as it takes, and this is unrelated to the DRM configuration.
- Internal approval processes: Enterprise teams often need approval from management, security, or IT before provisioning new infrastructure or touching certain systems. This is the most common invisible delay: the DRM work is ready to go, but the environment it needs isn't authorized yet.
- Unfamiliar packager configuration: For our major ESP partners, we maintain detailed integration documentation; the configuration steps are well-known and most common questions have documented answers.
- Widevine security levels: L1 (hardware-backed, required for HD/UHD content) vs. L3 (software-only, SD only). If your content requires L1 and a device only supports L3, playback will fail or be restricted in quality.
- PlayReady security levels per device and platform; what passes on a modern Windows browser may not on an older smart TV or set-top box.
- FairPlay behavior across iOS versions and Safari releases.
Choosing a Player
Once you have an encrypted asset, you need a player that can request a license and play it back.
For many teams, this decision is already made: you're adding DRM to an existing product, not picking a player from scratch. If that's you, your player will most likely work with KeyOS as-is. Any player capable of making a DRM license request is compatible.
If you're still choosing, a number of widely-used players have documentation, integration guides, and tested configurations ready to go: on the web side, Shaka Player, dash.js, Bitmovin, THEOplayer, and Video.js; on native, AVPlayer (iOS/Swift) and ExoPlayer (Android). Using one of these means you're not starting from zero on the player side.
Wiring Up License Delivery
Once your player is in place, the next step is connecting it to the KeyOS License Key API so it can request and receive licenses for encrypted content.
Every license request to KeyOS requires an x-keyos-authorization header containing a base64-encoded Authentication XML, a signed security token that carries your identity and the playback policies you want enforced: duration, output restrictions, security levels per DRM system.
During development, you can generate Authentication XML directly from the console and pass it to your player for testing. On a basic platform like Chrome with an HTML5 player, the first end-to-end license test can be up and running in minutes.
For production, you'll need a License Acquisition Proxy, a backend service that generates these tokens server-side, on demand.
Why the proxy matters: The Authentication XML is sufficient to acquire licenses from KeyOS on your behalf. If it's generated or stored client-side, anyone who intercepts it can use it. Your proxy keeps the private key and token generation on your server, never exposed to client devices. Beyond security, the proxy is also where you implement your own authorization logic: subscription checks, entitlement validation, geo-restrictions, because KeyOS authenticates you as a customer but knows nothing about your end users.
Integration vs. production endpoints: KeyOS provides separate endpoints specifically for development testing, using URLs ending in -integration.keyos.com. Use these while you're building and iterating. They let you validate your full license flow without running against production infrastructure.
When you're satisfied, switching to production is a URL change. The credentials, certificates, and Authentication XML format stay exactly the same; only the hostname changes. The switch is yours to make, on your schedule.
One thing to test explicitly on integration endpoints: error handling. A 403 Forbidden from the License Key API always includes a JSON body with an errorid field. Log it, it's the fastest path to resolution if something goes wrong in production.
The FairPlay Situation: Test Immediately, Production Follows Apple's Schedule
FairPlay is the one piece where Apple, not KeyOS, sets the pace for production certification, but that doesn't have to slow down your testing.
Here's the sequence that works:
For testing, you don't need to wait. Open a support ticket through your KeyOS Console and request a test FPS certificate for development purposes. BuyDRM will enable it for your account and provide the URL your player uses to fetch the certificate. You can start integrating and testing FairPlay on iOS devices and Safari the same day, with the full license flow, not a mock.
For production, Apple issues the certificate. The process involves enrolling in Apple's FPS program, generating a certificate request, and waiting. Based on typical experience, expect one to two weeks. Apple controls this timeline entirely.
The practical sequence:
- Request BuyDRM's test certificate - start FairPlay testing immediately
- Initiate Apple FPS enrollment in parallel, as early as possible
- When the Apple certificate arrives, import it into the console - switch to production
Teams that move fastest start the Apple enrollment on day one, in parallel with testing on BuyDRM's certificate.
Device Testing
Once the license flow is working on your development setup, the next step is validating it across your actual target device matrix.
A flow that works perfectly in Chrome on a laptop may behave differently on older Android hardware, a smart TV, or an older iOS version. What you're validating isn't just whether content plays; it's whether it plays at the right quality level, whether output restrictions behave as expected, and whether offline licenses work correctly if your use case requires them. Pay specific attention to:
When you're satisfied with testing, switching to production is a console operation. The same credentials you used in testing can serve production, or you can create dedicated production credentials. The switch is entirely under your control.
What Actually Takes 30 Days
|
What |
Who controls the speed |
|
Eval account, console access, all credentials |
KeyOS - same day |
|
X.509 certificate setup |
You - minutes |
|
Packager provisioning and configuration |
You (and your packager vendor) |
|
First successful CPIX request |
You - minutes with provided samples |
|
First encrypted asset |
You + packager - hours if stack is ready; longer from scratch |
|
First license test in Chrome / HTML5 player |
You - minutes once you have an asset |
|
FairPlay test certificate from BuyDRM |
BuyDRM + you - same day |
|
FairPlay production certificate from Apple |
Apple - 1-2 weeks |
|
License Acquisition Proxy built and tested |
You - a few days |
|
Device testing across full matrix |
You - depends on matrix size |
|
Switch to production endpoints |
You - minutes, when you're confident |
The DRM platform is rarely the bottleneck. KeyOS is ready to respond from the moment you first log in. What takes 30 days is everything around it: packaging infrastructure, internal process, Apple's certificate queue, and the thoroughness of your device testing.
Teams that come in prepared (existing packager configured, player chosen, device matrix defined, Apple FPS enrollment started immediately) regularly land a full working integration in a matter of days. The teams that take longer are usually the ones who discover a requirement mid-process that should have been settled on day one.
Start your Apple FPS enrollment on day one. Pick your packager and player before you write a line of integration code - a full list of pre-integrated ESP and player partners is at www.buydrm.com/esp-partner-program. Build the License Acquisition Proxy before you consider going live. And give device testing the time it actually needs; that's where the real surprises are.
Have questions about your specific setup? Contact the BuyDRM team or open a support ticket directly from your KeyOS Console.




