A non-transitory machine readable medium containing processor instructions, where execution of the instructions by a processor causes the processor to perform a process comprising:
- obtaining a top level index file identifying a plurality of separate container files each containing one of a plurality of alternative streams of protected video, wherein each of the alternative streams of protected video include video frames that are encrypted using a common set of frame keys comprising a plurality of different frame keys, and wherein each of the container files containing the alternative streams of protected video comprises (i) an encrypted copy of the common set of frame keys and (ii) a set of DRM information that identifies encrypted portions of the video frames and frame keys to utilize in accessing the encrypted portions of the video frames, and wherein the set of DRM information in each of the plurality of alternative streams of protected video references the same common set of frame keys;
- obtaining an encrypted copy of the common set of frame keys from a given container file and decrypting the encrypted copy of the common set of frame keys using a content key;
- obtaining a set of DRM information from the given container file;
- obtaining portions of video from the given container file containing one of the plurality of alternative streams of protected video;
- decrypting encrypted video frames from the obtained portions of video using the decrypted copy of the common set of frame keys according to the obtained set of DRM information;
- and
- playing back the obtained portions of video.