diff --git a/.gitignore b/.gitignore index aaf8f06..6cda75d 100644 --- a/.gitignore +++ b/.gitignore @@ -182,7 +182,6 @@ pyrightconfig.json # End of https://www.toptal.com/developers/gitignore/api/python -devices/ scalable/43.xml scalable/40.xml diff --git a/README.md b/README.md index c97cde3..395d163 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# VineTrimmer-PlayReady +# VineTrimmer-PlayReady A tool to download and remove DRM from streaming services. A version of an old fork of [devine](https://github.com/devine-dl/devine). Modified to remove Playready DRM instead of Widevine. @@ -238,3 +238,7 @@ Tested so far on Amazon, AppleTVPlus, Max. ```bash poetry run python scripts/ParseKeybox.py ``` + +## Star History + +[![Star History Chart](https://api.star-history.com/svg?repos=chu23465/VT-PR&type=Date)](https://www.star-history.com/#chu23465/VT-PR&Date) \ No newline at end of file diff --git a/vinetrimmer/devices/generic_8159_l3/device_client_id_blob b/vinetrimmer/devices/generic_8159_l3/device_client_id_blob new file mode 100644 index 0000000..6bfeebe Binary files /dev/null and b/vinetrimmer/devices/generic_8159_l3/device_client_id_blob differ diff --git a/vinetrimmer/devices/generic_8159_l3/device_private_key b/vinetrimmer/devices/generic_8159_l3/device_private_key new file mode 100644 index 0000000..bc599f5 --- /dev/null +++ b/vinetrimmer/devices/generic_8159_l3/device_private_key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpQIBAAKCAQEAoVu83qcuNeQcIjfXzl9zCtXEKklvWndbp+04vFYJ/7s4tTrS +BQtECs6UHG5v7MNphq92oINzjLHRDS45sFYSCfKfqk6FEp6jKDexo82zi0oZB7Tz +mlqbFaf5y1txbGCm+A0cStJuHgfB7QIhmQh4lPY5DiLOLZjb/CsE1MjR9wcmD8eN +hXjtriV8Je2+b8Lm3RMT3GHjOCIxh0iX9PxfxrGSlvmrU2qexQMSLmyaTMPyFSsR +uFgLu4bQbFvFDiFGv53k/7S3AydWHqW+6PaZ/65D9jzJ+6RBUulfCGUP1LIloDbM +Y2ez/jgiWzMB6J6GDQzelpjVVeYnFPCU9txyMQIDAQABAoIBAAM+GbSLvYT9uYcC +gka2alRsaU3EPgWeYmwke0BlpjvKYmBZ90B8snhZIGbV3U/vuV4ohoTBP4AzTpUq +OaSOhjxG8Oh2PXxbTcIQJHS7PIFvEsOx4jdW3Mj5oC5y/vuDkbdoZAoo4meeFkqS +AWTW471ymUDseCI4cStHHgi8pGOHbAbZJh2xKQfVFpKiZYGWpr2eu/xatwWtk9y7 +Pl69qhjDur6rkY55EBYl94EmsIT6yx9btESDWB+jcQ0zg+NlgtLOLZfHzlsEx8Lp +qaoQoqpuziURdevrk+3RxbHPZcjt51UWtUBauncFyu1O4/zVpB/gTnbJNCXOcrw4 +hRQJHkUCgYEA440KJXT7GRke25RM6MGFc6S2z0270LxSFcmYlgNpNPuE+vm23lBv +WC5tmRmmS/Y19MLtdeD+cJsYj6BZlXUiZjZC/MXNGWDEPLyN3R9gxH0HjxPrcX/l +iXlfkzhd5dRwUXZs+L9ix4ANHPzIa3vsVwmyhbrWGz5dumeRkPtw/MsCgYEAtYgl +/ZMP3VSpol9KHQV8j1pI6AO5b+eT8Ic9f1KQejZP3t/fbY/7XIMiqUPG9APhv3qC +4ZTydc8RybXu7L9nzNewvwaCtJr5Zgdt4XOcTQqgX8UK+0z/Fm+omlObKrcJNoWH +SEHcVVAMtRHdmo9eOAxnsXpwtgII/+NcCq1vSXMCgYEApvWXWkBo9NNfttErVSSZ +HG7gy15HzjI/MElIsdky2nMp8VRD/v6Zk+QM+ma9g8LVeA+GWBWL22eRL+EBmg3l +/YUWxY0EnfhIRCA9Ht+lCsaKQ0rkV9T1wFbT75tOGhIzjzILZsBWY/bqqDg5fdPh +Z0NwP3sFGdw6vUi8n9o93t0CgYEAjoXsPeA+bmlQHdlumMZ7+xjJcM+rwb4xmoCz +uckbAbiukK93/c8zbHjQt9As3dxGW01WgMGucuw2bQXYJixI1LzrWa9E44NhF8fx +bzaTmrEjJM3RR2g2Rmk4GKJXivvV0eaYRhTfZmPI9kimkfjJ4ntq1h7paxzB8BWT +aBau7x0CgYEA0F9zW5P4Jc76WRtogc+OMlmqVMkxYVFr84MgzK2n13ExtvMWRHhN +KNHeZmukvqYYXlymPpBqvXibndXnHJjfX7NsX41l2u61mKcsKeQ65mCz4K+C9tOi +EMKMO4L9fCaylP5cbIO4ogmEtY/9He+yEdBZQaVz3d5t8wUT9inaT3s= +-----END RSA PRIVATE KEY----- \ No newline at end of file diff --git a/vinetrimmer/devices/generic_8159_l3/wv.json b/vinetrimmer/devices/generic_8159_l3/wv.json new file mode 100644 index 0000000..de75ec8 --- /dev/null +++ b/vinetrimmer/devices/generic_8159_l3/wv.json @@ -0,0 +1,9 @@ +{ +"name": "generic_8159_l3", +"description": "android generic 8159 l3", +"security_level": 3, +"session_id_type": "android", +"private_key_available": "True", +"vmp": "False", +"send_key_control_nonce": "True" +} \ No newline at end of file diff --git a/vinetrimmer/devices/hisense_smarttv_he55a7000euwts_sl3000.prd b/vinetrimmer/devices/hisense_smarttv_he55a7000euwts_sl3000.prd new file mode 100644 index 0000000..f41fa8e Binary files /dev/null and b/vinetrimmer/devices/hisense_smarttv_he55a7000euwts_sl3000.prd differ diff --git a/vinetrimmer/key_store.db b/vinetrimmer/key_store.db index b836e33..73b804f 100644 Binary files a/vinetrimmer/key_store.db and b/vinetrimmer/key_store.db differ diff --git a/vinetrimmer/parsers/ism.py b/vinetrimmer/parsers/ism.py index c174ecd..3ffb5b2 100644 --- a/vinetrimmer/parsers/ism.py +++ b/vinetrimmer/parsers/ism.py @@ -59,7 +59,7 @@ def parse(*, url=None, data=None, source, session=None, downloader=None): raise ValueError("Neither a URL nor a document was provided to Tracks.from_ism") base_url = url.rsplit('/', 1)[0] + '/' if downloader is None: - data = (session or requests).get(url).text + data = requests.get(url, verify=False).text elif downloader == "aria2c": out = os.path.join(config.directories.temp, url.split("/")[-1]) asyncio.run(aria2c(url, out)) diff --git a/vinetrimmer/parsers/mpd.py b/vinetrimmer/parsers/mpd.py index f00e27e..718e6ba 100644 --- a/vinetrimmer/parsers/mpd.py +++ b/vinetrimmer/parsers/mpd.py @@ -59,7 +59,7 @@ def parse(*, url=None, data=None, source, session=None, downloader=None): global base_url base_url = url.rsplit('/', 1)[0] + '/' if downloader is None: - data = (session or requests).get(url).text + data = requests.get(url, verify=False).text elif downloader == "aria2c": out = os.path.join(config.directories.temp, url.split("/")[-1]) asyncio.run(aria2c(url, out)) diff --git a/vinetrimmer/services/__init__.py b/vinetrimmer/services/__init__.py index 5fb0aa0..a71bca8 100644 --- a/vinetrimmer/services/__init__.py +++ b/vinetrimmer/services/__init__.py @@ -10,6 +10,9 @@ from vinetrimmer.services.amazon import Amazon from vinetrimmer.services.appletvplus import AppleTVPlus from vinetrimmer.services.max import Max from vinetrimmer.services.netflix import Netflix +from vinetrimmer.services.peacock import Peacock + +# Above is necessary since dynamic imports like below fuck up nuitak # Below dynamic imports fuck with compiling when using Nuitka - exec() call is the problem #for service in os.listdir(os.path.dirname(__file__)):