redacted
Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays!
+ Reply to Thread
Results 151 to 175 of 175
Thread
-
It’s a very good script but I don’t think sharing the all script is beneficial. The devs are looking at this thread and improving security everytime.
I would just give some parts like timestamp :
Code:timestamp_url = stream_url.replace('/index.m3u8', '') + '/k/timestamp' response = requests.get(timestamp_url, headers=headers) timestamp_b64 = base64.b64encode(response.content).decode() timestamp = base64.b64decode(timestamp_b64)
Code:arrays = {'g': [32, 48], 'v': [8, 24] } substring = {'f': [16, 48], 's': [41] } def decrypt_key(data, apkid): tmp1 = data[arrays['g'][0]:arrays['g'][1]] tmp2 = data[arrays['v'][0]:arrays['v'][1]] apkid = apkid[substring['f'][0]:substring['f'][1]] # + apkid[substring['s'][0]:] dec1 = AES.new(bytes.fromhex(apkid), AES.MODE_ECB) tmp3 = dec1.decrypt(tmp1) dec2 = AES.new(tmp3, AES.MODE_ECB) key = dec2.decrypt(tmp2) return key.hex()
Last edited by aqzs; 13th Jun 2024 at 21:31.
-
-
He send me a message too. He was banned.
PAGEURL: https://www.goclasses.in/s/courses/60fdd8530cf2c7989e1f109d/take?freecourseenrol=success
apkId value:Code:3036333063036333065396531386339643039613953965313863396430396139
Hex key:Code:648dea11fe203008b24f492175fe674d
Code:N_m3u8DL-RE "https://dnqe0v482iyb1.cloudfront.net/spees/w/o/60e975430cf20278db21ff30/v/640c251ee4b04eb4af8fe5ec/u/666bc97428804245eb4891e9/t/0ce6c9a8537cb5aa7a1a145e6d48c6eb/p/assets/videos/60e975430cf20278db21ff30/2023/03/11/640c251ee4b04eb4af8fe5ec/index.m3u8" --custom-hls-key 648dea11fe203008b24f492175fe674d -M format=mkv -mt --save-name "Lecture 1A - Why Study Linear Algebra"
-
btw for g0class3s you need to add origin/referer to every request you make.
-
-
-
https://learn.codersgyan.com/s/preview/courses/mastering-mern#64fdc62ee4b0d1111c349bf5
can anyone please tell me what will be the decryption key for this video?
if possible tell me the decryption function also , so that i can download the remaning videos on my own -
HTML Code:
PAGEURL: https://learn.codersgyan.com/s/preview/courses/mastering-mern#64fdc62ee4b0d1111c349bf5 apkId value: 6231373436231373432363038663465653864613523630386634656538646135 stream_url: https://dnqe0v482iyb1.cloudfront.net/spees/w/o/64e36f81e4b0f6317a6e3410/v/64fdc62ee4b0d1111c349bf5/u/pu/t/49f252413e29eb300003b2dab1f3eeef/p/assets/videos/64e36f81e4b0f6317a6e3410/2023/09/10/64fdc62ee4b0d1111c349bf5/index.m3u8 Hex key: 4b690de69db37bd34910807f94065ffb
Code:N_m3u8DL-RE "https://dnqe0v482iyb1.cloudfront.net/spees/w/o/64e36f81e4b0f6317a6e3410/v/64fdc62ee4b0d1111c349bf5/u/pu/t/49f252413e29eb300003b2dab1f3eeef/p/assets/videos/64e36f81e4b0f6317a6e3410/2023/09/10/64fdc62ee4b0d1111c349bf5/index.m3u8" --custom-hls-key 4b690de69db37bd34910807f94065ffb -M format=mkv -mt
Use this script with those values :
HTML Code:arrays = {'g': [16, 32], 'v': [48, 64] } substring = {'f': [0, 9], 's': [41] }
-
Thanks aqzs for your help. it means a lot
Last edited by User2024; 17th Jun 2024 at 03:29.
-
https://courses.algocamp.io/learn/home/Full-Stack-Web-Development-Course/section/48779...esson/3022620?
its a free trial video, so anyone can login with fake email id and watch.
this video is hosted on learnyst platform
can anyone help me how to download videos from learnyst platform? -
-
Every time i try to decrypt the key, i am getting different keys for the same video. and none of them actually works. i always get ERROR: Padding is invalid and cannot be removed.
-
You shouldn't get different keys for the same video. To make sure my script works I always run it twice, if I get 2 different keys the values aren't the right one. Change according to values you found :
HTML Code:arrays = {'g': [16, 32], 'v': [48, 64] } substring = {'f': [0, 9], 's': [41] }
-
Upto yesterday it was working fine, but from today again im getting padding value error.
https://vcdn.spayee.in/spees/w/o/5e356a710cf24531c92ac49f/v/62f2953de4b0927bcdc9b12e/u...12e/index.m3u8
apkid : 64646330626436386230323036303733646463306264363862 30323036303733
timestamp response : data:application/octet-stream;base64,A413OF98F92W8J9/sseaaF5yKSAmM25NM1JEanFrUCRrSX7WlhMzindoWNKw46ed
updated decryptor function :
(e.loadsuccess = function (t, e, r) {
var i = r.frag,
n = window.cjs,
a = n.AES.decrypt,
o = window.convertArrayToBase64,
u = n.mode.ECB,
d = n.enc,
h = d.Hex.parse,
c = n.pad.NoPadding;
if (i.decryptdata) {
var f = new Uint8Array(t.data),
pp = t.url.split('/timestamp/')[1] ?? '',
g = f.subarray(0, 16),
v = f.subarray(32, 48);
if (pp === 'aav') {
g = f.subarray(16, 32);
v = f.subarray(48, 64);
} else if (pp === 'scw') {
g = f.subarray(0, 16);
v = f.subarray(32, 48);
} else if (pp === 'scs') {
v = f.subarray(0, 16);
g = f.subarray(48, 64);
} else if (pp === 'sdq') {
v = f.subarray(8, 24);
g = f.subarray(32, 48);
} else if (pp === 'sxc') {
v = f.subarray(16, 32);
g = f.subarray(48, 64);
} else if (pp === 'q1wq') {
v = f.subarray(0, 16);
g = f.subarray(32, 48);
} else if (pp === 'w1q') {
g = f.subarray(0, 16);
v = f.subarray(48, 64);
}
(f = a(o(g), h(window.apkId.substring(32)), {
mode: u,
padding: c,
})),
(f = d.u8array.stringify(
a(o(v), f, { mode: u, padding: c })
)),
(this.decryptkey = i.decryptdata.key =
new Uint8Array(f.buffer)),
(i.loader = null),
delete this.loaders[i.type],
this.hls.trigger(s.Events.KEY_LOADED, { frag: i });
} else l.logger.error("after key load, decryptdata unset");
})
Guys anyone pls share updated python script -
Code:
(e.loadsuccess = function (t, e, r) { var i = r.frag, n = window.cjs, a = n.AES.decrypt, o = window.convertArrayToBase64, u = n.mode.ECB, d = n.enc, h = d.Hex.parse, c = n.pad.NoPadding; if (i.decryptdata) { var f = new Uint8Array(t.data), pp = t.url.split('/timestamp/')[1] ?? '', v = f.subarray(8, 24), g = f.subarray(32, 48); if (pp === 'aav') { v = f.subarray(16, 32); g = f.subarray(48, 64); } else if (pp === 'scw') { v = f.subarray(0, 16); g = f.subarray(48, 64); } else if (pp === 'scs') { v = f.subarray(8, 24); g = f.subarray(32, 48); } else if (pp === 'sdq') { g = f.subarray(0, 16); v = f.subarray(48, 64); } else if (pp === 'sxc') { v = f.subarray(0, 16); g = f.subarray(32, 48); } else if (pp === 'q1wq') { g = f.subarray(0, 16); v = f.subarray(32, 48); } else if (pp === 'w1q') { g = f.subarray(16, 32); v = f.subarray(48, 64); } (f = a(o(g), h(window.apkId.substring(16, 48)), { mode: u, padding: c, })), (f = d.u8array.stringify( a(o(v), f, { mode: u, padding: c }) )), (this.decryptkey = i.decryptdata.key = new Uint8Array(f.buffer)), (i.loader = null), delete this.loaders[i.type], this.hls.trigger(s.Events.KEY_LOADED, { frag: i }); } else l.logger.error("after key load, decryptdata unset"); }),
Currently using this,
Code:def _decrypt_key(data, apkId): tmp1 = data[8:24] tmp2 = data[32:48] apk_Id = apkId[16:48] apk_Id_bytes = bytes.fromhex(apk_Id) if len(apk_Id_bytes) != 16: raise ValueError(f"Key length is not valid: {len(apk_Id_bytes)} bytes") dec1 = AES.new(apk_Id_bytes, AES.MODE_ECB) tmp3 = dec1.decrypt(tmp1) dec2 = AES.new(tmp3, AES.MODE_ECB) decrypted_key = dec2.decrypt(tmp2) return decrypted_key
As far as update to the same is concerned.
Also, it has started saying 08:24:05.344 ERROR: Padding is invalid and cannot be removed, but i am using the latest
apkid - 30626566356361326238353837613162306265663563613262 38353837613162
key generated was -
Decrypted key (hex): bcf18510e60d6867dc2ba6f53830e9ac
Decrypted key (base64): vPGFEOYNaGfcK6b1ODDprA==
But i don't understand why the padding issue is invalid.
Every time i try to decrypt the key, i am getting different keys for the same video. and none of them actually works. i always get
ERROR: Padding is invalid and cannot be removed.
Can anyone help in updating the codeLast edited by atmakaraka; 12th Oct 2024 at 13:35. Reason: updated the latest update
-
buddy im interested in learning this i was trying to find the aes key with this
sample video:https://www.futurly.com/s/preview/courses/blender-architecture#6337f80fe4b05a534f0e3d5a
which i already came to know that this is the code:2aac616013f1877619af8ac01abff0a6
apkid:62313734362313734323630386634656538646135236 30386634656538646135
The code given below is used by me to find the key
Code:timestamp_b64 ='RCQodEtGIX0zWSVLfmd3QX4FsplUReFwl/99R+Lw7p9kZVd1bCxxYGgqKUE9WyBLyAFt3hXNMuMy8YtGyS47Sg==' timestamp = base64.b64decode(timestamp_b64) apkId='6231373436231373432363038663465653864613523630386634656538646135' def decrypt_key(data, apkid): tmp1 = data[16:32] tmp2 = data[48:64] apkid=apkid[:9]+apkid[41:] print('apkid:',apkid) dec1 = AES.new(bytes.fromhex(apkid), AES.MODE_ECB) tmp3 = dec1.decrypt(tmp1) dec2 = AES.new(tmp3, AES.MODE_ECB) key = dec2.decrypt(tmp2) return key.hex()
can anyone explain me what im i missingLast edited by AlexXda; 18th Oct 2024 at 12:54.
-
This is a little cleaner, so I thought I'd share:
Code:from Crypto.Cipher import AES import base64 if __name__ == '__main__': data = base64.b64decode("SHhqMntgLjVocn4uVXkoWzIqxvW02AsEAyf1Wj7uL/ZQTGQ/R2dLdlwrQ2NkMXVcl1xERsZnbowFyOhzfpOmTQ==") APKID = "6231373436231373432363038663465653864613523630386634656538646135" first_data = data[16:32] second_data = data[48:64] first_key = bytes.fromhex(APKID[:9] + APKID[41:]) cipher = AES.new( key=first_key, mode=AES.MODE_ECB ) first_decrypt = cipher.decrypt(first_data) cipher = AES.new( key=first_decrypt, mode=AES.MODE_ECB ) second_decrypt = cipher.decrypt(second_data) print(second_decrypt.hex())
Bypass HMACs, One-time-tokens and Lic.Wrapping: https://github.com/DevLARLEY/WidevineProxy2 -
anyone 2024? i tried the mentioned methods , none of them worked... is the algorithm for encryption changed now?
-
any way to get apkid directly python? or should i always copy and paste apkid from console?
Similar Threads
-
howto deal with HLS 128 bit aes encrypted - the hard one
By code47 in forum Video Streaming DownloadingReplies: 63Last Post: 28th Dec 2023, 08:45 -
How do I download AES encrypted video streamed over HLS?
By Videogamer555 in forum Video Streaming DownloadingReplies: 1Last Post: 20th Jul 2022, 08:03 -
Help downloading AES-encrypted HLS video stream
By Woodswolf in forum Video Streaming DownloadingReplies: 26Last Post: 25th May 2019, 14:20 -
Help me with AES encrypted HLS downloading ?
By shraman in forum Video Streaming DownloadingReplies: 0Last Post: 30th Jul 2018, 06:54 -
Help downloading AES-encrypted HLS video stream
By vidder in forum Video Streaming DownloadingReplies: 3Last Post: 4th Jul 2018, 17:24