Code:heiko@Worf:~/test$ python3 '/home/heiko/Downloads/WKS-KEYS/l3.py' PSSH: AAAAQ3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAACMIARIQWKCVuM4p/L1X3iH+9cQcDCINYV9wcXAycjM3eGwzMg== License URL: https://api.vod-prd.s.joyn.de/v1/certificate/widevine/644cc4b1abeeede6db7b3a9b71535ccda12ae4b2 Traceback (most recent call last): File "/home/heiko/Downloads/WKS-KEYS/l3.py", line 28, in <module> correct, keys = WV_Function(pssh, lic_url) File "/home/heiko/Downloads/WKS-KEYS/l3.py", line 19, in WV_Function widevine_license = requests.post(url=lic_url, data=wvdecrypt.get_challenge(), headers=headers.headers) File "/home/heiko/.local/lib/python3.10/site-packages/requests/api.py", line 115, in post return request("post", url, data=data, json=json, **kwargs) File "/home/heiko/.local/lib/python3.10/site-packages/requests/api.py", line 59, in request return session.request(method=method, url=url, **kwargs) File "/home/heiko/.local/lib/python3.10/site-packages/requests/sessions.py", line 589, in request resp = self.send(prep, **send_kwargs) File "/home/heiko/.local/lib/python3.10/site-packages/requests/sessions.py", line 703, in send r = adapter.send(request, **kwargs) File "/home/heiko/.local/lib/python3.10/site-packages/requests/adapters.py", line 667, in send resp = conn.urlopen( File "/home/heiko/.local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 789, in urlopen response = self._make_request( File "/home/heiko/.local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 495, in _make_request conn.request( File "/home/heiko/.local/lib/python3.10/site-packages/urllib3/connection.py", line 440, in request self.putheader(header, value) File "/home/heiko/.local/lib/python3.10/site-packages/urllib3/connection.py", line 354, in putheader super().putheader(header, *values) File "/usr/lib/python3.10/http/client.py", line 1256, in putheader values[i] = one_value.encode('latin-1') UnicodeEncodeError: 'latin-1' codec can't encode character '\u2026' in position 512: ordinal not in range(256) heiko@Worf:~/test$
+ Reply to Thread
Results 121 to 142 of 142
-
-
Wrong License URL. The correct one should look something like this:
Code:https://api.vod-prd.s.joyn.de/v1/license?token=<sometokenhere>
Code:74438d1d9f7150d7430d366a8a21917b:6adb047e389090c2b29769ff0500d41d 6a27095181195fa1a7b4b73564e22843:1c5a5beffaee4d1f14d1d526d380c5bd 001e002e904956d4aa46d7623dc3cd22:a7755a921f34e626e62436721e67449a 98fcae3ba25e5209939e7c54dfc1a01a:4c96adb22256aaecbd66157224c861ae
-
Hi.
Thank you for your effort with me.
I tried it with the new license URL. I only get errors:
Code:heiko@Worf:~/test$ python3 '/home/heiko/Downloads/WKS-KEYS/l3.py' PSSH: https://delivery.vod-prd.s.joyn.de/v2/dash/CiQwMjYwN2RlZC0xNjU4LTQyMDMtODNjNC1iYzk0NGI0MmJkY2M.Cg1hX3BxcDJyMzd4bDMyEAIYwAQiJDM5YTU4NTA5LWZjZjEtNGIxZC05ZWZiLTNhNTAyZTIzMWNlYg.HLSoRw4NA7XQzaa34-Y8ZT0g8fOIvQC5aymEsz4pkcM/a_pqp2r37xl32/.mpd?filter=CiQ5MDYzODZkYi02YjYxLTQ1ZmMtOTljNy1lOGY4YjczODVhNjM.Cg1hX3BxcDJyMzd4bDMyGMAEIAEoADAB.QbOVztLVHCeFbGHsrwSpt9BGpALClz24i9RU-kh7_VU License URL: https://api.vod-prd.s.joyn.de/v1/license?token=CiRhZWE5YmY1MC00YTE2LTRiMjQtYjIzOC04YzI3M2IxZmVjNTE.Cg1hX3BxcDJyMzd4bDMyEAIaEHNvZnR3YXJlLW5vbi12bXAgm8-5uAYopZXEuAYyJDVjY2RmNDIzLTYzZjYtNDQ5ZS04YTU4LTQwZDRmZTEyNDY5NTjABEIkMzlhNTg1MDktZmNmMS00YjFkLTllZmItM2E1MDJlMjMxY2ViSgh3aWRldmluZVDlv7q4BlgA.9xrXhMN7LEvlxIvbsT6jFBG3jjfxQvJ0E48qbRoJqZY&keyId= unable to parse, unsupported init data format unable to parse init data session ID does not exist Traceback (most recent call last): File "/home/heiko/Downloads/WKS-KEYS/l3.py", line 28, in <module> correct, keys = WV_Function(pssh, lic_url) File "/home/heiko/Downloads/WKS-KEYS/l3.py", line 19, in WV_Function widevine_license = requests.post(url=lic_url, data=wvdecrypt.get_challenge(), headers=headers.headers) File "/home/heiko/.local/lib/python3.10/site-packages/requests/api.py", line 115, in post return request("post", url, data=data, json=json, **kwargs) File "/home/heiko/.local/lib/python3.10/site-packages/requests/api.py", line 59, in request return session.request(method=method, url=url, **kwargs) File "/home/heiko/.local/lib/python3.10/site-packages/requests/sessions.py", line 589, in request resp = self.send(prep, **send_kwargs) File "/home/heiko/.local/lib/python3.10/site-packages/requests/sessions.py", line 703, in send r = adapter.send(request, **kwargs) File "/home/heiko/.local/lib/python3.10/site-packages/requests/adapters.py", line 667, in send resp = conn.urlopen( File "/home/heiko/.local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 789, in urlopen response = self._make_request( File "/home/heiko/.local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 495, in _make_request conn.request( File "/home/heiko/.local/lib/python3.10/site-packages/urllib3/connection.py", line 409, in request chunks_and_cl = body_to_chunks(body, method=method, blocksize=self.blocksize) File "/home/heiko/.local/lib/python3.10/site-packages/urllib3/util/request.py", line 247, in body_to_chunks raise TypeError( TypeError: 'body' must be a bytes-like object, file-like object, or iterable. Instead was 1 heiko@Worf:~/test$
Heiko -
Code:
AAAAQ3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAACMIARIQWKCVuM4p/L1X3iH+9cQcDCINYV9wcXAycjM3eGwzMg==
-
Hi,
just another newbie...
How could I get this video:
https://www.joyn.de...
I really do not get it how to get the mpd and key... I am sorry
--
Edith:
I could figure it out ... sry for the fishLast edited by gorkul; 24th Nov 2024 at 04:53.
-
Hi di ho.
Do i see this right, that Joyn.de (Free) only serves 1024x576, or even smaller, Videos?
So no 720p or 1080p in Free Mode? -
For most stuff, yes. I've seen some free stuff offered as 720p though (from memory for some P7S1 productions).
Even with a trial account I wasn't able do grab higher resolutions - I didn't try hard though. -
Trial gets 720p/1080p for stuff from joyn/pro7 (tvtotal etc) for license stuff you must use PlayReady which works with trial too.
Licensed Series/Movies are mostly PlayReady/L1 but not all mostly from Paramount etc. -
I am currently working on a custom yt-dlp extractor for Joyn, I successfully created one for RTL Plus allready, working with anonymous and cookie auth, however I have trouble withthee cookie based authentication at Joyn, I could not find their authentication endpoint.
I created this script that demonstrates the OpenID Connect workflow at RTL Plus. Maybe someone can help with Joyn?
https://gist.github.com/blackicedbear/101cf830ef61e8b8632667da1dff5c01 -
did you read this post by pepe? it maybe help:
https://forum.videohelp.com/threads/410066-Video-Download-from-Joyn-de/page3#post2747253
i havent tested this because im stuck at the signature part, always got invaild signature payload error. -
This is what I have in my yt-dlp extractor for Joyn. The "_perform_login" method is basically untested, because the refresh token has a lifetime of 180 days.
Code:def _get_access_token(self): cached = self.cache.load('joyn', 'token') if cached: expire, client_id, client_name = traverse_obj( cached['access_token'], ({jwt_decode_hs256}, ('exp', 'cId', 'cN'))) if time.time() > expire + 300: self._ACCESS_TOKEN = self._refresh_access_token(client_id, client_name, cached['refresh_token']) else: self._ACCESS_TOKEN = cached['access_token'] if not self._ACCESS_TOKEN: self.raise_login_required('Login required.') self.decryption_keys = None def _refresh_access_token(self, client_id, client_name, refresh_token): data = { 'client_id': client_id, 'client_name': client_name, 'grant_type': 'Bearer', 'refresh_token': refresh_token } headers = { 'content-type': 'application/json', 'joyn-client-version': self._ACCESS_TOKEN, 'joyn-country': 'DE', 'joyn-distribution-tenant': 'JOYN', 'joyn-platform': 'web', 'joyn-request-id': f'{uuid.uuid4()}', 'origin': 'https://www.joyn.de', } token = self._download_json( 'https://auth.joyn.de/auth/refresh', None, note='Refresh access token', headers=headers, data=json.dumps(data).encode('ascii')) self.cache.store('joyn', 'token', token) return token['access_token'] def _perform_login(self, username, password): """ completely untested """ if self._ACCESS_TOKEN: return # four requests for access_token # --------------------------------------------------------- # 1: endpoints => find client_id hw_client_id = str(uuid.uuid5(uuid.NAMESPACE_DNS, str(uuid.getnode()))) web_login_url = self._download_json( 'https://auth.joyn.de/sso/endpoints', None, note='Acquire client_id', query={'client_id': hw_client_id,'client_name': 'web'})['web-login'] client_id = parse_qs(urlparse(web_login_url).query)['client_id'][0] # --------------------------------------------------------- # 2. request ID for authorization code # The request produces a redirect with the parameter we need redirect_url = requests.get( 'https://auth.7pass.de/authz-srv/authz', params={'client_id': client_id,'response_type': 'code'}, allow_redirects=False ).headers['location'] request_id = parse_qs(urlparse(redirect_url).query)['requestId'][0] # --------------------------------------------------------- # 3. login with request ID # request produces a redirect with OAuth2 code parameter redirect_url = requests.post( 'https://auth.7pass.de/login-srv/login', data={'username': username,'requestId': request_id,'password': password}, allow_redirects=False ).headers['location'] code = parse_qs(urlparse(redirect_url).query)['code'][0] # --------------------------------------------------------- # 4. exchane code for access token token = requests.post( 'https://auth.joyn.de/auth/7pass/token', json={ 'code': code, 'client_id': client_id, 'redirect_uri': 'https://www.joyn.de/oauth', 'tracking_name': 'web' } ).json() self.cache.store('joyn', 'token', token)
-
I have already hardcoded the auth token into the extractor with refresh logic, but thought it might be a more elegant approach to use browser cookies instead. But I could not find out how to get it from the cookies...
-
Hi, is anyone able to download this video in a higher resolution than 1024x576 (or is it the best)?
https://www.joyn.de/play/serien/schlag-den-star/2025-5-das-schwesternduell-luna-und-li...d-davina-geiss
I tried it with that cmd:
.\N_m3u8DL-RE "https://fastly.vodprd.s.joyn.de/v2/dash/CiRlODMyOGIxNy1kZDAyLTRlYzUtOTEwYy05M2Y5MzY2N2U4MD c.Cg1hX3Bib202Z3ZiOWV6EAMYwAQiJDU1ZGNkZDc0LTUxMjEt NGEyOS1hYWFhLTNiYzQxZDdlNDU2Mg.6sC4yoNQYca9zeXXq7L qJwgU6PNA1bPrFObjzp3em8U/a_pbom6gvb9ez/.mpd?filter=CiQ4MWZiNjUzYS1iMzdmLTQwZGEtYjg5My00Zj YyZDgwMzI0OWE.Cg1hX3Bib202Z3ZiOWV6GMAEIAEoADAB.Tun qRpp7dkSV0IpbuLUkt0BfY3312QvE7wZkfLoGb1Q" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36" -H "Accept: */*" -H "Origin: https://www.joyn.de" --key 8c4bb3f053bf6cd52f1e6f1eed091adf:95e89d2bc78d6350c 21d36ee8d83d299 --key 579251b348e15d91aefa748dabe9e6d9:942174e9149c90d48 da805e4f263e4ba --key 9f39309586265e2aad35b4a22d8916b9:7fc420236319b2f69 38cef95f19ccc5a --key 5be12065a3155c7d9c869ff18d55cc4b:e45d7919fb1894cad 2e494dc42bc4dd5 -M format=mkv -
-
No Joyn+ gives you 720p/1080p with free (or without) an account you only get 1024x576
-
Similar Threads
-
How can i decrypt a stream from Joyn?
By PyNoob in forum Video Streaming DownloadingReplies: 7Last Post: 29th Jan 2025, 04:48 -
DOWNLOAD protected DRM video separated video and audio from (learnyst)
By yassin in forum Video Streaming DownloadingReplies: 4Last Post: 8th Jan 2024, 04:36 -
Cannot download encrypted m3u8 video, the video works on the website
By krestek in forum Video Streaming DownloadingReplies: 6Last Post: 21st Feb 2022, 14:27 -
Download HLS video using FFMPEG with separate video and audio URLs?
By oschrndz in forum Video Streaming DownloadingReplies: 2Last Post: 15th Dec 2020, 13:53 -
how to download a portion of video from m3u8 that has separate video audio.
By adi111 in forum Video Streaming DownloadingReplies: 8Last Post: 5th Aug 2020, 14:53