# BuyDRM KeyOS on Android

This article describes how to configure BuyDRM KeyOS DRM with THEOplayer.

Head to our page on [DRM](https://docs-preview.optiview.dolby.com/pr-863/theoplayer/how-to-guides/android/drm/introduction.md) for more general information.

## Integration

We provide open-source DRM integrations which are easy to maintain and allow for a modular approach. You can find them in the [DRM integration samples repository](https://github.com/THEOplayer/samples-drm-integration), alongside guides on how to integrate and use them.

The BuyDRM KeyOS integration can be found [here](https://github.com/THEOplayer/samples-drm-integration/tree/master/android/app/src/main/java/com/theoplayer/contentprotectionintegration/integration/keyos).

## Pre-integration

> **Note**
>
> When integrating DRM for the first time or updating your integration, the DRM integration described above is preferred over the pre-integration below.

Pass your BuyDRM token as custom data, and tell THEOplayer that you are using KeyOS. The token is the Authentication XML generated from the BuyDRM platform.

```java
DRMConfiguration drmConfiguration = KeyOSDRMConfiguration.Builder
    .keyOsDrm()
    .widevine(
        new KeyOSKeySystemConfiguration("<CUSTOM_DATA>", "<LICENSE_KEY_URL_WIDEVINE>")
    )
    .build();
TypedSource typedSource = new TypedSource.Builder()
    .src("<DASH_STREAM_URL>")
    .drm(drmConfiguration)
    .build();
SourceDescription sourceDescription = SourceDescription.Builder.sourceDescription()
    .sources(typedSource)
    .build();
theoplayer.getPlayer().setSource(sourceDescription);
```

## Resources

* <https://test.buydrm.com/sites/default/files/pdf/webinar/050217_DeployingKeyOSMulti-DRM_withTHEOPLayer_Webinar.pdf>
* [KeyOS BuyDRM](https://www.buydrm.com/keyosplayer)
