#!/usr/bin/env python3

import argparse

from vinetrimmer.utils.widevine.device import LocalDevice
from vinetrimmer.utils.widevine.protos.widevine_pb2 import ClientIdentification

parser = argparse.ArgumentParser(
    "Client identification parser",
    description="Simple script to read a client id blob to see information about it"
)
parser.add_argument(
    "input",
    help="client id blob bin path or path to a wvd file",
)
args = parser.parse_args()

client_id = ClientIdentification()
is_wvd = args.input.lower().endswith(".wvd")

with open(args.input, "rb") as fd:
    data = fd.read()

if is_wvd:
    client_id = LocalDevice.load(data).client_id
else:
    client_id.ParseFromString(data)

print(client_id)