I got a new vdocipher DRM method. This one might be protected by chromeCDM. The video didn't play in Firefox and Safari.
The video is available here : https://courses.bittentechsolutions.in/courses/450489
I have made a python script to retrieve every bit of information needed :
The script retrieves the manifest, license url and pssh :HTML Code:from pywidevine.cdm import Cdm from pywidevine.device import Device from pywidevine.pssh import PSSH import requests import json import base64 import xml.etree.ElementTree as ET import re DEVICEPATH = r"/Users/noham/Documents/GitHub/DRM-remover/TOOLS/WVD/xiaomi_redmi_5_plus_v5.1.0-android_701ec55d_4445_l3.wvd" PAGEURL = 'https://courses.bittentechsolutions.in/courses/450489' courseId = PAGEURL.split('/')[-1] def getpssh(url_mpd): psshs = [] response = requests.get(url_mpd) root = ET.fromstring(response.content) for i in range(20): for j in range(20): for k in range(20): for l in range(20): try: if root[i][j][k][l].text not in psshs and len(root[i][j][k][l].text) > 70 and len(root[i][j][k][l].text) < 190: psshs.append(root[i][j][k][l].text) except: pass for pssh in psshs: return pssh def je64(input): return base64.b64encode(json.dumps(input).replace(' ', '').encode()).decode() response = requests.get(PAGEURL) div_content = re.search('<script id="__NEXT_DATA__" type="application/json">(.*?)</script>', response.text) if div_content: json_data = div_content.group(1) data = json.loads(json_data) orgId = data['props']['pageProps']['_infoData']['success']['data']['orgId'] contentIdlist = [content['contentHashId'] for content in data['props']['pageProps']['_courseData']['success']['data']['freeContent']] else: print("Div content not found") headers = {'x-access-token': je64({"courseId":courseId,"tutorId":None,"orgId":orgId,"categoryId":None})} data = requests.get(f'https://api.classplusapp.com/cams/uploader/video/jw-signed-url?contentId={contentIdlist[0]}', headers=headers).json() mpd_url = data['drmUrls']['manifestUrl'] print('mpd_url: ', mpd_url) lic_url = data['drmUrls']['licenseUrl'] print('lic_url: ', lic_url) pssh = getpssh(mpd_url) pssh = PSSH(pssh) print('pssh: ', pssh) headers = { 'accept': '*/*', 'accept-language': 'fr-FR,fr;q=0.6', 'cache-control': 'no-cache', 'content-type': 'application/octet-stream', 'origin': 'https://courses.bittentechsolutions.in', 'pragma': 'no-cache', 'priority': 'u=1, i', 'referer': 'https://courses.bittentechsolutions.in/', 'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Brave";v="126"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"macOS"', 'sec-fetch-dest': 'empty', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'cross-site', 'sec-gpc': '1', 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36', } device = Device.load(DEVICEPATH) cdm = Cdm.from_device(device) session_id = cdm.open() cert = requests.post(lic_url, headers=headers, data=b"\x08\x04") cdm.set_service_certificate(session_id, cert.content) challenge = cdm.get_license_challenge(session_id, pssh) licence = requests.post(lic_url, headers=headers, data=challenge) if licence.status_code != 200: print(licence.text) else: licence.raise_for_status() cdm.parse_license(session_id, licence.content) for key in cdm.get_keys(session_id): if key.type=='CONTENT': print(f"\n--key {key.kid.hex}:{key.key.hex()}") cdm.close(session_id)
But get :HTML Code:mpd_url: https://drmcdni.classplusapp.com/streams/6434ebe938a3dd0bd9768542/307872fcc4bb0044d99d86f17348a049.mpd?key=172038221722921-20-0-52f0ee4fffe16476698d8771f5574858 lic_url: https://license64.vdocipher.com/auth/wv/eyJjb250ZW50QXV0aCI6ImV5SmpiMjUwWlc1MFNXUWlPaUl6TURjNE56Sm1ZMk0wWW1Jd01EUTBaRGs1WkRnMlpqRTNNelE0WVRBME9TSXNJbVY0Y0dseVpYTWlPakUzTWpBek9ESXlORGNzSW14cFkyVnVjMlZTZFd4bGN5STZJbnRjSW1OaGJsQmxjbk5wYzNSY0lqcG1ZV3h6WlN4Y0luSmxiblJoYkVSMWNtRjBhVzl1WENJNk1UZ3dNREI5SW4wPSIsInNpZ25hdHVyZSI6IjdlNTQ2OWI4ZGYwNDRmYWM6MjAyNDA3MDdUMTk1NjU3WjpYb21MZnFaaTFPMS1jR3pidXYyYjgzZy1HMDFaUVF6bTVzZ3BRUjN2U1JJPSJ9 pssh: AAAAWnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADoiMjc2NjQ2ZjYzNjk3MDY4NjU3MmE5OWE2YjhjYzVjNzRhZjY5NDZjNTY5YzY3OGYyMDFkSOPclZsG
The license url is base64 encoded and give :HTML Code:{"code":2046,"message":"Authentication failed"}
Which give :HTML Code:{'contentAuth': 'eyJjb250ZW50SWQiOiIzMDc4NzJmY2M0YmIwMDQ0ZDk5ZDg2ZjE3MzQ4YTA0OSIsImV4cGlyZXMiOjE3MjAzODEyOTYsImxpY2Vuc2VSdWxlcyI6IntcImNhblBlcnNpc3RcIjpmYWxzZSxcInJlbnRhbER1cmF0aW9uXCI6MTgwMDB9In0=', 'signature': '7e5469b8df044fac:20240707T194106Z:z3ThA7lIjs6u5vhME3cufirGeLAAL1GBygCAlJ0QHNc='}
The all process of auth seems to be the CDM, and in that case chromeCDM.. If someone manage to get more informationHTML Code:{'contentId': '307872fcc4bb0044d99d86f17348a049', 'expires': 1720381296, 'licenseRules': '{"canPersist":false,"rentalDuration":18000}'![]()
Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays!
Try StreamFab Downloader and download streaming video from Youtube, Netflix, Amazon! Download free trial.
+ Reply to Thread
Results 1 to 23 of 23
Thread
-
-
It says 'Free Content' at the top but doesn't seem to be free
nvm i found it -
Firefox works too, the site just doesn't support it. You can verify this by pasting the mpd and license urls into https://bitmovin.com/demos/stream-test immediately after playing the video in chrome.
[Attachment 80497 - Click to enlarge]
(OMG I CAN'T EVEN SCREENSHOT THE WINDOW WITHOUT THE PLAYER TURNING BLACK)
got it
[Attachment 80498 - Click to enlarge] -
Indeed it's working.
[Attachment 80499 - Click to enlarge]
Did you managed to get keys ? -
No, I don't have a CDM from a physical device (yet).
-
--[----->+<]>.++++++++++++.---.--------.
[*drm mass downloader: widefrog*]~~~[*how to make your own mass downloader: guide*] -
There's nothing new about this as it's simply a variant of the same VdoCipher endpoint that websites are free to choose from.
Code:PSSH: AAAAWnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADoiMjc2NjQ2ZjYzNjk3MDY4NjU3MmFkNjZhNDg0YzE3YjQxZmZhY2ZlOTk1OThkOTRkYmE5SOPclZsG
Code:--key df4e90bc7bd05c5ca82b266f3a30afd2:e03329ce2b5103ccc208e538560e026e --key 963d30b2dce05dbd94745106d19af788:fbf2fe4b450bfe55dd28dd67d4247abe --key e66567e6b17256978fbadf97be06b2b6:7f7bb686fe4669f5e90e3612ca2bba44 --key b3492cb04c9d5dc0aa413fe72fb9a118:acb8445327321787d144be2a0c095550
-
--key df4e90bc7bd05c5ca82b266f3a30afd2:e03329ce2b5103ccc 208e538560e026e
--key 963d30b2dce05dbd94745106d19af788:fbf2fe4b450bfe55d d28dd67d4247abe
--key e66567e6b17256978fbadf97be06b2b6:7f7bb686fe4669f5e 90e3612ca2bba44
--key b3492cb04c9d5dc0aa413fe72fb9a118:acb8445327321787d 144be2a0c095550 -
-
Script is posted right here just use you CDM and see : https://forum.videohelp.com/threads/415190-New-vdocipher-DRM#post2742094
-
That was the easiest answer I could give. The only requirement needed for vdocipher seems to be a CDM from a real device, since he have one why not using the script I made in my original post ? I took the time to write a detailed post and script and not just dropping : 'hey I never saw that DRM help me please thanks'
-
Code:
pssh: AAAAWnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADoiMjc2NjQ2ZjYzNjk3MDY4NjU3MmE5OWE2YjhjYzVjNzRhZjY5NDZjNTY5YzY3OGYyMDFkSOPclZsG
Code:--key 0b14fa10ff4b53efbf353c082041bec5:0752a7d360657d6016c45abf58e29ec6 --key ea69c62585415beea4aeb6f5b96793ae:5835ae35afceacca8b20760c2a12f48e --key 58de90d7477158f9b2ccadf4f653956e:876c362586d639eec036f75e319cec8c --key db206317112550c289e3e3fdc01c40e4:502cef8d8b3c988c0253a3048408153b
Last edited by ddll; 17th Jul 2024 at 12:06.
-
https://courses.bittentechsolutions.in/courses/454351
HTML Code:mpd_url: https://drmcdni.classplusapp.com/streams/66421701b65a5dc451ce9332/0e6f6ea0aaf6c8a20ef4b37ae5e9f228.mpd?key=172250882774721-80-0-0fa788c0e30da1433dcdfe4047def615 lic_url: https://india-drm.sdmc.tv/getlicense?token=eyJzZWNyZXRfaWQiOiJPMU0zVVMzRERNOUwyOUcxNVNDTlVMSjE2MjdDTkE1UyIsImRybV9zeXN0ZW0iOiJXSURFVklORSIsInVpZCI6IjkyOTkzMjAwMzkzMjY0NDE4NDQxIiwiY2lkIjoiMGU2ZjZlYTBhYWY2YzhhMjBlZjRiMzdhZTVlOWYyMjgiLCJ0aW1lc3RhbXAiOjE3MjI1MDg4MjcsImhhc2giOiIwVzRUeFNRa0x2U2dsb21lTHJEWWFyYTZHZmpNQzFpcGF1cjBxa2VPczVjPSIsInBvbGljeSI6Ik94a3FrYW8vb1diMEdwd2NVZUttQ0hyeXROK2FGaDJDbjM2NjlUWUtqeUNNdlJLRmdhUzEwRnNwUTdaSTdPNlJGbmt4cjB5bzhuNEExcXh5cHFMUHVJa1FCdmxDTnlrWHV1Q05RaFZnaWtpOE5UTTdmZEpCcDFuV0gvcGtiOVA5YVNvcGlWZWZUcGIyZWliK29rajhRUHQ4bVJRU2J4MmdlVHNqbGFxVXZMdz0ifQ== pssh: AAAAWnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADoiMjc2NjQ2ZjYzNjk3MDY4NjU3MmQ4ZWEyM2RkNzJmODQxOWNhMTk0MDgzMmZhZDMwYmJjSOPclZsG --key 154b87bcbfe65a00bc0dd6dd34a893ce:921b3da5318b03afbb0615749fc5ff12 --key 98a091f996a25e6b9076f871830577c5:c581e326f334a5cf1839f316824722e8 --key e5a898a509ee596397752ecf9ff689bc:4454849f23a25e223c99cf217cce14b4 --key 71c7593c9cd75e8fb8239a4211ae510f:9502d715bbc7b0e64cd11046cf773a97 --key 5ee0880493e656fea05b079f6c1e9bbc:99fb3599640aaaf9c64ec92169c2d75b
-
Hi @aqzs, as of today, is it possible to download VdoCipher videos? May you explain me quickly your script in dm (i'm french) ? Thanks!!
Similar Threads
-
Vdocipher decryption
By HemaElqady in forum Video Streaming DownloadingReplies: 6Last Post: 1st Dec 2023, 12:53 -
help with vdocipher keys
By killua in forum Video Streaming DownloadingReplies: 2Last Post: 9th Oct 2023, 11:54 -
Downloading from vdocipher
By Broka in forum Video Streaming DownloadingReplies: 26Last Post: 26th Jul 2023, 22:32 -
restreaming to non-drm m3u8 from drm mpd
By grabyea in forum Video Streaming DownloadingReplies: 1Last Post: 8th Aug 2022, 00:35 -
Download DRM protected video and decrypt it with a drm licence url
By vikral in forum Video Streaming DownloadingReplies: 9Last Post: 9th Feb 2021, 02:14