With what method or tools can this result be detected, for example?:
"http://rtve-mediavod-lote3.rtve.es/resources/TE_SMLK20K/mp4/5/7/1623331653375.mp4?idasset=5937500",
from this url https://www.rtve.es/play/videos/malaka/episodio-1-fenicios/5937500/
![]()
+ Reply to Thread
Results 1 to 13 of 13
-
-
-
Not sure what you're requesting here, this is the info you need to download the video:
MPD url:
PSSH:Code:https://ztnr.rtve.es/ztnr/5937500.mpd
License url:Code:AAAAQ3Bzc2gBAAAA7e+LqXnWSs6jyCfc1R0h7QAAAAHMK0njmwsgTJzcR0+moNCfAAAADyIHNTkzNzUwMEjj3JWbBg==
Headers:Code:https://3e6900a5.drm-widevine-licensing.axprod.net/AcquireLicense
Key:Code:headers = { 'x-axdrm-message': 'eyJhbGciO.......', }
Code:cc2b49e39b0b204c9cdc474fa6a0d09f:6fdf57e65aab943fff783aa19ed1826d
-
How is this section filled out, as follows? 'eyJhbGciO......
Headers:
Code:
headers = {
'x-axdrm-message': 'eyJhbGciO......',
}Last edited by ostris; 3rd May 2024 at 13:40.
-
-
I have written a script for you.
rtse.py
OutputCode:import requests import json import re from time import sleep def get_MPD_and_key(videoID): keyRequestURL = "https://api.rtve.es/api/token/{}".format(videoID) response = http_must_get(keyRequestURL).content licenseURL = json.loads(response)['widevineURL'] token = json.loads(response)['token'] mpdURL = "https://ztnr.rtve.es/ztnr/{}.mpd".format(videoID) headers = {'X-Axdrm-Message': token} mpdContent = http_must_get(mpdURL).content.decode('utf-8') pssh = re.search('<cenc:pssh>(.*)</cenc:pssh>', mpdContent).group(1) key = get_key_from_cdrm_project(headers, licenseURL, pssh, mpdURL) print(mpdURL) print(key['key']) print('\n') def get_key_from_cdrm_project(headers, licenseURL, pssh, mpdURL): while len(pssh) > 0: try: cdrmResp = requests.post("https://cdrm-project.com/api", headers=headers, json={"license":licenseURL,"pssh":pssh}).text key = (json.loads(cdrmResp)['keys'])[0] return key except: pssh = pssh[4 : len(pssh)] print('Issue getting key with cdrm-project, do manually:') print(mpdURL) print(pssh) print(licenseURL) def http_must_get(url): while True: try: response = requests.get(url) return response except: sleep(1) def main(): episodesPage = http_must_get('https://www.rtve.es/play/videos/modulos/capitulos/127490/').content.decode('utf-8') episodeLinks = re.findall('episodio(.*)/(.*)/" title=', episodesPage) for i in range(len(episodeLinks)): get_MPD_and_key(episodeLinks[i][1]) if __name__ == "__main__": main()
You can read the script and figure how the site works.Code:https://ztnr.rtve.es/ztnr/5937500.mpd cc2b49e39b0b204c9cdc474fa6a0d09f:6fdf57e65aab943fff783aa19ed1826d https://ztnr.rtve.es/ztnr/5938596.mpd e5f78c9f7646f790eab443effd763b97:af3bc89b1d313e0382bf1f5ef8e2de15 https://ztnr.rtve.es/ztnr/5945556.mpd 3ed9dd36e45bfa186cddcc40a7b04719:a61500c665d787bae6491a82236783c9 https://ztnr.rtve.es/ztnr/5956533.mpd be486b1f533aa8215831a00ffef5d3a8:cc53983b07e57d95db2b2b4b7ff89ff3 https://ztnr.rtve.es/ztnr/5968159.mpd 51fb2e361ec72ce14e7fe8e0d9e7d802:7c91d23ef2d73b6c17cfb0d807f12128 https://ztnr.rtve.es/ztnr/6003241.mpd 795fa695b7d3c2d681b5b5d48ddbe2d4:1b205e56763c9d818ebbd2e50570ab47 https://ztnr.rtve.es/ztnr/6011735.mpd fea704bd7c3355cabe50edd09f2cf193:94e8867008e4b49b2bcd41e1df227dc8 https://ztnr.rtve.es/ztnr/6028721.mpd ed4410d7bf39315d524cfc0b0dbe1d7f:7d4e96299c6777bff2ea2d748856ab3c
-
Unencrypted stream:
https://www.rtve.es/drmn/embed/video/5937500
inspect element->network tab->search "m3u"
change toCode:https://rtvehlsvodlote7.rtve.es/mediavodv2/resources/TE_SMLK20K/mp4/5/7/1623331653375.mp4/video.m3u8?hls_no_audio_only=true&hls_client_manifest_version=3&idasset=5937500
Code:https://rtvehlsvodlote7.rtve.es/mediavodv2/resources/TE_SMLK20K/mp4/5/7/1623331653375.mp4?idasset=5937500
-
How could I guess this part with the ID number for any other movie or series on the portal?
https://www.rtve.es/play/videos/modulos/capitulos/127490
Knowing this I could modify the script for any other search. Thank you
rtse.py
OutputCode:import requests import json import re from time import sleep def get_MPD_and_key(videoID): keyRequestURL = "https://api.rtve.es/api/token/{}".format(videoID) response = http_must_get(keyRequestURL).content licenseURL = json.loads(response)['widevineURL'] token = json.loads(response)['token'] mpdURL = "https://ztnr.rtve.es/ztnr/{}.mpd".format(videoID) headers = {'X-Axdrm-Message': token} mpdContent = http_must_get(mpdURL).content.decode('utf-8') pssh = re.search('<cenc:pssh>(.*)</cenc:pssh>', mpdContent).group(1) key = get_key_from_cdrm_project(headers, licenseURL, pssh, mpdURL) print(mpdURL) print(key['key']) print('\n') def get_key_from_cdrm_project(headers, licenseURL, pssh, mpdURL): while len(pssh) > 0: try: cdrmResp = requests.post("https://cdrm-project.com/api", headers=headers, json={"license":licenseURL,"pssh":pssh}).text key = (json.loads(cdrmResp)['keys'])[0] return key except: pssh = pssh[4 : len(pssh)] print('Issue getting key with cdrm-project, do manually:') print(mpdURL) print(pssh) print(licenseURL) def http_must_get(url): while True: try: response = requests.get(url) return response except: sleep(1) def main(): episodesPage = http_must_get('https://www.rtve.es/play/videos/modulos/capitulos/127490/').content.decode('utf-8') episodeLinks = re.findall('episodio(.*)/(.*)/" title=', episodesPage) for i in range(len(episodeLinks)): get_MPD_and_key(episodeLinks[i][1]) if __name__ == "__main__": main()
You can read the script and figure how the site works.[/QUOTE]Code:https://ztnr.rtve.es/ztnr/5937500.mpd cc2b49e39b0b204c9cdc474fa6a0d09f:6fdf57e65aab943fff783aa19ed1826d https://ztnr.rtve.es/ztnr/5938596.mpd e5f78c9f7646f790eab443effd763b97:af3bc89b1d313e0382bf1f5ef8e2de15 https://ztnr.rtve.es/ztnr/5945556.mpd 3ed9dd36e45bfa186cddcc40a7b04719:a61500c665d787bae6491a82236783c9 https://ztnr.rtve.es/ztnr/5956533.mpd be486b1f533aa8215831a00ffef5d3a8:cc53983b07e57d95db2b2b4b7ff89ff3 https://ztnr.rtve.es/ztnr/5968159.mpd 51fb2e361ec72ce14e7fe8e0d9e7d802:7c91d23ef2d73b6c17cfb0d807f12128 https://ztnr.rtve.es/ztnr/6003241.mpd 795fa695b7d3c2d681b5b5d48ddbe2d4:1b205e56763c9d818ebbd2e50570ab47 https://ztnr.rtve.es/ztnr/6011735.mpd fea704bd7c3355cabe50edd09f2cf193:94e8867008e4b49b2bcd41e1df227dc8 https://ztnr.rtve.es/ztnr/6028721.mpd ed4410d7bf39315d524cfc0b0dbe1d7f:7d4e96299c6777bff2ea2d748856ab3c

THANK YOU I have already found out the method for this chapter but how do I find out this url if I wanted to guess the ID for the rest of the series on the rtve.es/play portal? https://www.rtve.es/play/videos/modulos/capitulos/127490
Knowing this, I could access the information I would need for the rest of the movies and series on the portal.Last edited by ostris; 5th May 2024 at 12:47.
-
-
Similar Threads
-
Convert DV type 2 to type 1? Or is there an app that will correct sync?
By Colmino in forum Newbie / General discussionsReplies: 7Last Post: 20th Dec 2022, 22:24 -
Set GOP with sequence detect
By AlesFiala in forum EditingReplies: 0Last Post: 23rd May 2022, 18:26 -
Detect Stray Frames in BRD
By ricardisimo in forum Authoring (Blu-ray)Replies: 0Last Post: 25th Nov 2020, 13:52 -
Detect the Resolution of a Streaming Video?
By vega69-ux in forum Video Streaming DownloadingReplies: 2Last Post: 26th Sep 2020, 17:51 -
Detect pitch change
By villaquien in forum AudioReplies: 18Last Post: 2nd Apr 2020, 10:25


Quote

Thank you, I didn't care about having this particular video, but rather knowing in general the method of detecting the download link so that it could help me with the rest of the files on that portal