Also, small update:
Seems they've added a super small deterrent in downloading videos: the apkId is now 34 characters instead of 32.
Fix is just to remove the first and last character, and you get the hex string.
		
			+ Reply to Thread
			
		
		
		
			 
		
			
	
	
				Results 31 to 60 of 210
			
		- 
	
- 
	I can't find apkId in browser console. Cam anyone tell me how to get apkId. 
- 
	code: >>apkId 
 "3536356133536356139376264616637356136363393762646 166373561363633"
 
 Should i change something in the code
 
 As apkId is now 64 char instead of 32
- 
	Code:import base64 import binascii from Crypto.Cipher import AES with open("timestamp", "rb") as file: data = file.read() apkId = input('\napkId:') #apkId = '6231362313734323630386634656538646135734323630386634656538646135' def _decrypt_key(data): tmp1 = data[16:32] tmp2 = data[48:64] apk_Id = apkId[:5] + apkId[37:] dec1 = AES.new(bytes.fromhex(apk_Id), AES.MODE_ECB) tmp3 = dec1.decrypt(tmp1) dec2 = AES.new(tmp3, AES.MODE_ECB) return dec2.decrypt(tmp2) result = _decrypt_key(data) hex_result = binascii.hexlify(result) base64key = (base64.b64encode(result).decode('utf-8')) print('hex_key:',hex_result.decode()) print('b64key:',b64key)discord nxhda
- 
	Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
 https://files.videohelp.com/u/301890/hellyes6.zip
- 
	It is the key file,requests key url to get it 
 
 key url for example
 Code:https://d2qny97nu4rj64.cloudfront.net/spees/w/o/6197321b0cf23d7cc6e572e1/v/6337f80fe4b05a534f0e3d5a/u/pu/t/87bb35a36b01e0943ef12fa4e6f5ef7c/p/assets/videos/6197321b0cf23d7cc6e572e1/2022/10/01/6337f80fe4b05a534f0e3d5a/k/timestamp discord nxhda
- 
	Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
 https://files.videohelp.com/u/301890/hellyes6.zip
- 
	N_m3u8DL-RE -M format=mp4 --custom-hls-key eb1c3990b427fce9a507010d256c0188 "https://d2qny97nu4rj64.cloudfront.net/spees/w/o/64e36f81e4b0f6317a6e3410/v/64fdc62ee4b0d1111c349bf5/u/65367314e4b0caa1a7be5830/t/3cb07933e9bb9003aa7a58780304ff85/p/assets/videos/64e36f81e4b0f6317a6e3410/2023/09/10/64fdc62ee4b0d1111c349bf5/index.m3u8" --save-name ge.mp4 
 
 It now gives a new error: ERROR: Padding is invalid and cannot be removed.
 Am I doing something wrong?
- 
	
- 
	
- 
	guys and if we want to download directly with hlsdl 
 
 how we can change the apkid2.py?
 im trying put inside something like that:
 
 
 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36', 'Referer': 'https://www.futurly.com/'}
 
 url_base = input("Enter URL timestamp : ")
 apkId = input("Enter the apkId : ")
 match = re.search(r"(https?://.*\/)", url_base)
 url_stream = match.group(1).strip()
 
 r=requests.get(url_base, headers=headers)
 matchs = re.findall(r"(h.*m3u8)", r.text)
 video = url_stream+matchs[-1]
 
 r=requests.get(video, headers=headers)
 matchs = re.search(r"AES-128,URI=\"(.*)\"", r.text)
 uri_url = url_stream+matchs.group(1).strip()
 
 res = requests.get(uri_url)
 res.encoding = "binary/octet-stream"
 key_data = _decrypt_key(res.content)
 base64_key = (base64.b64encode(key_data).decode('utf-8'))
 hex_key =(binascii.hexlify(key_data).decode('utf-8'))
 
 os.system(f'hlsdl -K {hex_key} -o file_output.mp4 -b "{url_base}"')
 
 im adding also in the begining:
 
 import re
 import headers
 import so
 
 
 error:
 
 File "C:\xxxxxxx\xxxxx\Desktop\hlsdl\hlsdl0.27\apkid2.p y", line 42, in <module>
 video = url_stream+matchs[-1]
 ~~~~~~^^^^
 IndexError: list index out of range
 
 
 
 but im not expert......jeje anybody can help me?Last edited by marioeivissa; 26th Oct 2023 at 11:33. 
- 
	Code:import re import base64 import requests from Crypto.Cipher import AES import binascii import os def _decrypt_key(data): tmp1 = data[16:32] tmp2 = data[48:64] apk_Id = apkId[:16] + apkId[48:] dec1 = AES.new(bytes.fromhex(apk_Id), AES.MODE_ECB) tmp3 = dec1.decrypt(tmp1) dec2 = AES.new(tmp3, AES.MODE_ECB) return dec2.decrypt(tmp2) def dowload(): match = re.search(r"(https?://.*\/)", url_base) url_stream = match.group(1).strip() r=requests.get(url_base) matchs = re.findall(r"(h.*m3u8)", r.text) video = url_stream+matchs[-1] r=requests.get(video) matchs = re.search(r"AES-128,URI=\"(.*)\"", r.text) uri_url = url_stream+matchs.group(1).strip() res = requests.get(uri_url) res.encoding = "binary/octet-stream" key_data = _decrypt_key(res.content) base64_key = (base64.b64encode(key_data).decode('utf-8')) hex_key =(binascii.hexlify(key_data).decode('utf-8')) print(hex_key) os.system(f'hlsdl -K {hex_key} -o output.mp4 -b "{url_base}"') if __name__ == '__main__': apkId = input("Enter the apkId : ") url_base = input("Enter Index.m3u8url : ") dowload()Last edited by NBA456017; 26th Oct 2023 at 12:39. discord nxhda
- 
	Last edited by marioeivissa; 26th Oct 2023 at 13:25. 
- 
	the point is the apkid was change in the page, from 32 to 64 characters, so we using timestamps file to put inside the same forder like that script: 
 import base64
 import binascii
 from Crypto.Cipher import AES
 import requests
 import os
 import re
 
 with open("timestamp", "rb") as file:
 
 data = file.read()
 
 apkId = input('\napkId:')
 #apkId = '6231362313734323630386634656538646135734323630386 634656538646135'
 
 
 def _decrypt_key(data):
 tmp1 = data[16:32]
 tmp2 = data[48:64]
 apk_Id = apkId[:5] + apkId[37:]
 dec1 = AES.new(bytes.fromhex(apk_Id), AES.MODE_ECB)
 tmp3 = dec1.decrypt(tmp1)
 dec2 = AES.new(tmp3, AES.MODE_ECB)
 return dec2.decrypt(tmp2)
 
 result = _decrypt_key(data)
 hex_result = binascii.hexlify(result)
 base64key = (base64.b64encode(result).decode('utf-8'))
 print('hex_key:',hex_result.decode())
 print('base64key:',base64key)
 
 so you script doesnt work, if i put normal 64characters of apkid neither if i put the key in hex and neither if i put the key in base64
 and not working also if i put index.m3u8, timestamp, or hls_audio_.m3u8, doesnt work
 
 i think you had probe before, how did you do it?Last edited by marioeivissa; 26th Oct 2023 at 13:24. 
- 
	
 
 the point is the apkid was change in the page, from 32 to 64 characters, so we using timestamps file to put inside the same forder of this script:
 
 
 import base64
 import binascii
 from Crypto.Cipher import AES
 import requests
 import os
 import re
 
 with open("timestamp", "rb") as file:
 
 data = file.read()
 
 apkId = input('\napkId:')
 #apkId = '6231362313734323630386634656538646135734323630386 634656538646135'
 
 def _decrypt_key(data):
 tmp1 = data[16:32]
 tmp2 = data[48:64]
 apk_Id = apkId[:5] + apkId[37:]
 dec1 = AES.new(bytes.fromhex(apk_Id), AES.MODE_ECB)
 tmp3 = dec1.decrypt(tmp1)
 dec2 = AES.new(tmp3, AES.MODE_ECB)
 return dec2.decrypt(tmp2)
 
 result = _decrypt_key(data)
 hex_result = binascii.hexlify(result)
 base64key = (base64.b64encode(result).decode('utf-8'))
 print('hex_key:',hex_result.decode())
 print('base64key:',base64key)
 
 
 so your script doesnt work, if i put normal 64characters of apkid neither if i put the key in hex and neither if i put the key in base64
 and not working also if i put index.m3u8, timestamp, or hls_audio_.m3u8, doesnt work
 
 i think you had check before, how did you do it?
 
 same error like before
 
 File "C:\xxxxxxx\xxxxx\Desktop\hlsdl\hlsdl0.27\spka2.py ", line 23, in dowload
 video = url_stream+matchs[-1]
 ~~~~~~^^^^
 IndexError: list index out of rangeLast edited by marioeivissa; 26th Oct 2023 at 13:24. 
- 
	anyway always we have the other way to get 128aes Last edited by marioeivissa; 27th Oct 2023 at 02:59. 
- 
	D:\>apkid2_NBA456017 
 Enter the apkId : 62313734323630386231373432363038663465653864613566 34656538646135
 Enter url_base : https://d2s2mc5mfsrgxi.cloudfront.net/spees/w/o/5e356a710cf24531c92ac49f/v/5e6e6c1f0cf...fbe/index.m3u8
 d1612ad69f3772bcfd267d9a48dd3382
 > START media_playlist_get_links
 > END media_playlist_get_links
 HLS Stream is AES-128 encrypted.
 {"d_t":"vod"}
 {"t_d":5038,"d_d":0, "d_s":0}
 Downloading part 0
 {"t_d":5038,"d_d":2,"d_s":45308}
 Downloading part 1
 Downloading part 2
 Downloading part 3
 Downloading part 4
 Downloading part 5
 Downloading part 6
 Downloading part 7
 Downloading part 8
 Downloading part 9
 Downloading part 10
 Downloading part 11
 {"t_d":5038,"d_d":24,"d_s":931540}
 Downloading part 12
 {"t_d":5038,"d_d":26,"d_s":1010876}
 Downloading part 13
 {"t_d":5038,"d_d":28,"d_s":1089084}
 Downloading part 14
 {"t_d":5038,"d_d":30,"d_s":1160900}
 ...
- 
	Last edited by marioeivissa; 27th Oct 2023 at 04:05. 
- 
	really strange, jejejeejjeje but its working now, sorry and thank you for all your help 
 
 
 any posibility to make work this kind of videos with yp-dlp? commands for key????
- 
	yt-dlp --extractor-args "generic:hls_key=d1612ad69f3772bcfd267d9a48dd3 382" "https://d2s2mc5mfsrgxi.cloudfront.net/spees/w/o/5e356a710cf24531c92ac49f/v/5e6e6c1f0cf2363c76c9bfbe/u/pu/t/3859b2b289715802a87d6735fd031730/p/assets/videos/5e356a710cf24531c92ac49f-1/2020/03/15/5e6e6c1f0cf2363c76c9bfbe/index.m3u8" discord=notaghost9997
- 
	
- 
	Hi everyone, 
 It seems they have again done something. Now, the video is not downloading. The length of apkID is the same, but still key is not getting decrypted.
 Can anyone please look into it?
- 
	
- 
	Hey everyone, 
 It is working now? It's not working for me now.
 Thanks in advance.
- 
	URL is https://www.futurly.com/s/preview/courses/blender-architecture#6337f80fe4b05a534f0e3d5a 
 and you can get apkID from console.
- 
	Hi all, 
 It is not working for me as well
 
 the code i send you is a new one, it's from the browserCode: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) , g = f.subarray(16, 32) , v = f.subarray(48, 64); f = a(o(g), h(window.apkId.substring(0, 9) + window.apkId.substring(41)), { 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") }
 
 
 [Attachment 75112 - Click to enlarge]
 
 apkID:Code:https://d2qny97nu4rj64.cloudfront.net/spees/w/o/60e975430cf20278db21ff30/v/64036ee0e4b0896a260ece65/u/655be340e4b0e5c1d9d3a76e/t/e3d0f0f20e38db23fee6df7350a732f5/p/assets/videos/60e975430cf20278db21ff30/2023/03/04/64036ee0e4b0896a260ece65/index.m3u8 
 
 33383939333383939336637303432613739356665366373034 32613739356665
 
 
 Thank you allLast edited by tamevav227; 28th Nov 2023 at 15:23. 
Similar Threads
- 
  howto deal with HLS 128 bit aes encrypted - the hard oneBy code47 in forum Video Streaming DownloadingReplies: 63Last Post: 28th Dec 2023, 09:45
- 
  How do I download AES encrypted video streamed over HLS?By Videogamer555 in forum Video Streaming DownloadingReplies: 1Last Post: 20th Jul 2022, 09:03
- 
  Help downloading AES-encrypted HLS video streamBy Woodswolf in forum Video Streaming DownloadingReplies: 26Last Post: 25th May 2019, 15:20
- 
  Help me with AES encrypted HLS downloading ?By shraman in forum Video Streaming DownloadingReplies: 0Last Post: 30th Jul 2018, 07:54
- 
  Help downloading AES-encrypted HLS video streamBy vidder in forum Video Streaming DownloadingReplies: 3Last Post: 4th Jul 2018, 18:24


 
		
		 View Profile
				View Profile
			 View Forum Posts
				View Forum Posts
			 Private Message
				Private Message
			 
 
			
			
 Quote
 Quote

 
			 Visit Homepage
				Visit Homepage
			
