forked from kenzuya/unshackle
- Add MSL core implementation for handling Netflix message security layer - Create MSL keys and message encryption/signature utilities - Implement handshake to establish encrypted session keys with Netflix endpoint - Add entity and user authentication scheme support for MSL - Provide methods for message creation, sending, decryption, and parsing - Implement Netflix service class with CLI integration via Click - Support title metadata retrieval and parse movie or series accordingly - Implement track extraction with profile and codec handling logic - Add chapter extraction from Netflix metadata with error handling - Implement Widevine license request using MSL messaging - Add utility to split profiles based on video codec types - Define schemes for key exchange, user and entity authentication with MSL - Enable caching and loading of MSL keys with expiration checks - Include gzip compression and base64 key decoding helpers within MSL class
25 lines
673 B
Python
25 lines
673 B
Python
from enum import Enum
|
|
|
|
|
|
class Scheme(Enum):
|
|
def __str__(self):
|
|
return str(self.value)
|
|
|
|
|
|
class EntityAuthenticationSchemes(Scheme):
|
|
"""https://github.com/Netflix/msl/wiki/Entity-Authentication-%28Configuration%29"""
|
|
Unauthenticated = "NONE"
|
|
Widevine = "WIDEVINE"
|
|
|
|
|
|
class UserAuthenticationSchemes(Scheme):
|
|
"""https://github.com/Netflix/msl/wiki/User-Authentication-%28Configuration%29"""
|
|
EmailPassword = "EMAIL_PASSWORD"
|
|
NetflixIDCookies = "NETFLIXID"
|
|
|
|
|
|
class KeyExchangeSchemes(Scheme):
|
|
"""https://github.com/Netflix/msl/wiki/Key-Exchange-%28Configuration%29"""
|
|
AsymmetricWrapped = "ASYMMETRIC_WRAPPED"
|
|
Widevine = "WIDEVINE"
|