#!/usr/bin/env python3

import argparse
import base64

from vinetrimmer.utils.widevine.protos.widevine_pb2 import WidevineCencHeader
from vinetrimmer.vendor.pymp4.parser import Box

parser = argparse.ArgumentParser(
    "PSSH parser",
    description="Simple script to read a PSSH to see information about it"
)
parser.add_argument(
    "input",
)
args = parser.parse_args()

args.input = base64.b64decode(args.input.encode("utf-8"))
box = Box.parse(args.input)
cenc_header = WidevineCencHeader()
cenc_header.ParseFromString(box.init_data)

print("pssh box:")
print(box)

print("init_data parsed as WidevineCencHeader:")
print(cenc_header)

print("init_data's key_id as hex:")
print(cenc_header.key_id[0].hex())