devine-dl / pywidevine

Python implementation of Google's Widevine DRM CDM (Content Decryption Module)
GNU General Public License v3.0
535 stars 118 forks source link

PSSH parse containing playready and widevine pssh #49

Closed CuSZcXJWGrzbnE closed 9 months ago

CuSZcXJWGrzbnE commented 9 months ago

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==

rlaphoenix commented 9 months ago

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.

CuSZcXJWGrzbnE commented 9 months ago

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

rlaphoenix commented 9 months ago

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