devine-dl / pywidevine

Python implementation of Google's Widevine DRM CDM (Content Decryption Module)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PSSH parse containing playready and widevine pssh

CuSZcXJWGrzbnE opened this issue · comments

eme logger outputs pssh containing both playready and widevine at some sites
currently only the first pssh box is parsed
parse all box and if widevine pssh is found give priority to that one

sample
AAACsnBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAApKSAgAAAQABAIgCPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBXAFoAYQAzAGUAOQB3ADMAQgA5AGIAWgB2AEIAbAA5AHoAYwB0ACsAaABnAD0APQA8AC8ASwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+AC8AdQBVAEYARgBwADkAMgAyAE8ARQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcAA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQB3AGUAYgAuAGMAbABhAHIAbwB2AGkAZABlAG8ALgBuAGUAdAAvAHIAaQBnAGgAdABzAG0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4AAAAASXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAACkIARIQWZa3e9w3B9bZvBl9zct+hhoDZGxhIghwZS5saWdhMSoCU0QyAA==

Could you provide the manifest/playlist contents that had this happen? Or does EME Logger just do this for some reason? I don't know if I would personally need to implement this feature, the user should just take whichever PSSH they want to use.

The most commonly seen in udemy
You can check it out here
https://www.udemy.com/support/system-check/
And I saw someone occurring on this site today
clarovideo.com

I don't use eme logger myself, and I can parse it, but I often see people asking questions about it, so I thought it would be nice to have it implemented in module

I don't think there's real reason to implement this. It generally boils down to user error at that point.