I've been dependent on this tool as part of the process I learned from generous people in this thread: https://forum.videohelp.com/threads/406950-Bally-Sports-Download-Help
However, it seems like this has now been recently placed behind a registration portal and is no longer publicly accessible. I tried to register, saying I was an independent developer, but was rejected from access. Does anyone know of a way to access it or of an equivalent tool?
http://tools.axinom.com/decoders/PsshBox
Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays! or rip iTunes movies!
+ Reply to Thread
Results 1 to 14 of 14
Thread
-
-
Same happened to me, I've been rejected twice, they were asking for a "company name" lol.
For the moment the best way to get the PSSH is the EME logger method, it's a bit tricky but It is worth. -
-
-
there is also this https://integration.widevine.com/diagnostics
discord=notaghost9997 -
-
Thanks, Karoolus. I always appreciate the willingness to help. It would certainly be best to be able to do everything on your own without being dependent on outside tools, which can go down or see public access get pulled, such as Axinom. I will be giving this one a try this weekend.
-
-
Using the https://integration.widevine.com/diagnostics site, I get this as the PSSH:
Code:AAAAjnBzc2gBAAAA7e+LqXnWSs6jyCfc1R0h7QAAAAAAAABqImIIARIQkwJhp4HnPpyEaSG1UrNNlyJMZXlKaGMzTmxkRWxrSWpvaVVrVlFURUZaTFdOa1lXSm1NVEJsTFdSbFlUY3ROR1JrWlMxaFpEZGxMVE16TnpFNU5EaGpaV1E0TnlKOUjj3JWbBg==
[Attachment 74123 - Click to enlarge]
[Attachment 74124 - Click to enlarge]
Running that through keysdb.net, I get a 412 Precondition failed error, which I believe means it doesn't like my headers.
[Attachment 74125 - Click to enlarge]
Am I doing something wrong here?
I also tried using the TamperMonkey EME logger script method and get this:
[Attachment 74126 - Click to enlarge]
Code:AAADSHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAygoAwAAAQABAB4DPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBwADIARQBDAGsAKwBlAEIAbgBEADYARQBhAFMARwAxAFUAcgBOAE4AbAB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAaQBjAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAaQAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4ARgBuAEsAVABVAFAATwAyAHMATgBnAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4AAAAAgnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAGIIARIQkwJhp4HnPpyEaSG1UrNNlyJMZXlKaGMzTmxkRWxrSWpvaVVrVlFURUZaTFdOa1lXSm1NVEJsTFdSbFlUY3ROR1JrWlMxaFpEZGxMVE16TnpFNU5EaGpaV1E0TnlKOQ==
Which I do and get this result:
[Attachment 74127 - Click to enlarge]
Code:000000827073736800000000edef8ba979d64acea3c827dcd51d21ed0000006208011210930261a781e73e9c846921b552b34d97224c65794a6863334e6c64456c6b496a6f69556b56515445465a4c574e6b59574a6d4d54426c4c57526c595463744e47526b5a5331685a44646c4c544d7a4e7a45354e44686a5a5751344e794a39
[Attachment 74128 - Click to enlarge]
Code:AAAAgnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAGIIARIQkwJhp4HnPpyEaSG1UrNNlyJMZXlKaGMzTmxkRWxrSWpvaVVrVlFURUZaTFdOa1lXSm1NVEJsTFdSbFlUY3ROR1JrWlMxaFpEZGxMVE16TnpFNU5EaGpaV1E0TnlKOQ==
[Attachment 74129 - Click to enlarge]
So clearly I'm doing something wrong in this process, but I'm not sure what. Any pointers would be appreciated! -
geo lock maybe, you will need add proxy
Code:import json import random import uuid import time import httpx from lxml import html class Settings: def __init__(self, userCountry: str = None, randomProxy: bool = False) -> None: self.randomProxy = randomProxy self.userCountry = userCountry self.ccgi_url = "https://client.hola.org/client_cgi/" self.ext_ver = self.get_ext_ver() self.ext_browser = "chrome" self.user_uuid = uuid.uuid4().hex self.user_agent = "Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" self.product = "cws" self.port_type_choice: str self.zoneAvailable = ["AR", "AT", "AU", "BE", "BG", "BR", "CA", "CH", "CL", "CO", "CZ", "DE", "DK", "ES", "FI", "FR", "GR", "HK", "HR", "HU", "ID", "IE", "IL", "IN", "IS", "IT", "JP", "KR", "MX", "NL", "NO", "NZ", "PL", "RO", "RU", "SE", "SG", "SK", "TR", "UK", "US", "GB"] def get_ext_ver(self) -> str: about = httpx.get("https://hola.org/access/my/settings#/about").text if 'window.pub_config.init({"ver":"' in about: version = about.split('window.pub_config.init({"ver":"')[1].split('"')[0] return version # last know working version return "1.199.485" class Engine: def __init__(self, Settings) -> None: self.settings = Settings def get_proxy(self, tunnels, tls=False) -> str: login = f"user-uuid-{self.settings.user_uuid}" proxies = dict(tunnels) protocol = "https" if tls else "http" for k, v in proxies["ip_list"].items(): return "%s://%s:%s@%s:%d" % ( protocol, login, proxies["agent_key"], k if tls else v, proxies["port"][self.settings.port_type_choice], ) def generate_session_key(self, timeout: float = 10.0) -> json: post_data = {"login": "1", "ver": self.settings.ext_ver} return httpx.post( f"{self.settings.ccgi_url}background_init?uuid={self.settings.user_uuid}", json=post_data, headers={"User-Agent": self.settings.user_agent}, timeout=timeout, ).json()["key"] def zgettunnels( self, session_key: str, country: str, timeout: float = 10.0 ) -> json: qs = { "country": country.lower(), "limit": 1, "ping_id": random.random(), "ext_ver": self.settings.ext_ver, "browser": self.settings.ext_browser, "uuid": self.settings.user_uuid, "session_key": session_key, } #print(qs) return httpx.post( f"{self.settings.ccgi_url}zgettunnels", params=qs, timeout=timeout ).json() @staticmethod def sleep() -> None: min_tunnels_pause = 10 max_tunnels_pause = 25 def rand_range(low: int, hi: int) -> float: if low >= hi: raise Exception("RandRange: low boundary is greater or equal to high boundary") delta = hi - low return low + random.random() * delta sleep_duration = int(rand_range(min_tunnels_pause, max_tunnels_pause)) # sleep_duration = 10 # seems 10 is enough print("Please wait for "+str(sleep_duration)+" seconds.") time.sleep(sleep_duration) class Hola: def __init__(self, Settings) -> None: self.myipUri: str = "https://hola.org/myip.json" self.settings = Settings def get_country(self) -> str: if not self.settings.randomProxy and not self.settings.userCountry: self.settings.userCountry = httpx.get(self.myipUri).json()["country"] if ( not self.settings.userCountry in self.settings.zoneAvailable or self.settings.randomProxy ): self.settings.userCountry = random.choice(self.settings.zoneAvailable) return self.settings.userCountry def init_proxy(data): settings = Settings( data["zone"] ) # True if you want random proxy each request / "DE" for a proxy with region of your choice (German here) / False if you wish to have a proxy localized to your IP address settings.port_type_choice = data[ "port" ] # direct return datacenter ipinfo, peer "residential" (can fail sometime) hola = Hola(settings) engine = Engine(settings) userCountry = hola.get_country() session_key = engine.generate_session_key() #engine.sleep() tunnels = engine.zgettunnels(session_key, userCountry) return engine.get_proxy(tunnels) if __name__ == "__main__": CC = input("Input desired country code: ") test = init_proxy({"zone": CC, "port": "peer"}) print(test)
-
Thanks, iamghost. It looks like you're onto something with the geolock. I refreshed my browser trying to pull the cURL values and noticed it was asking to allow to find my location.
[Attachment 74130 - Click to enlarge]
I allowed that and entered in the newly generated token and that seems to have worked, running through keysdb.net.
[Attachment 74131 - Click to enlarge]
Will that be enough with my local CDM, or would I need to add in your script somewhere into my l3.py workflow if I'm using that method to generate the keys? -
Similar Threads
-
Different PSSH in mpd, EME logger and PSSH Box Generator
By Kevste in forum Video Streaming DownloadingReplies: 4Last Post: 31st May 2023, 23:24 -
Please help me get the key from pssh
By BZnCu in forum Video Streaming DownloadingReplies: 10Last Post: 24th May 2023, 17:09 -
How to get the PSSH?
By Anonymousdk01 in forum Video Streaming DownloadingReplies: 2Last Post: 28th Mar 2023, 11:06 -
get pssh
By tere1579 in forum Video Streaming DownloadingReplies: 6Last Post: 1st Dec 2022, 23:35 -
Which PSSH is the right one?
By Quint in forum Video Streaming DownloadingReplies: 5Last Post: 24th Oct 2022, 05:39