I don't get your issue. It's easy to obtain keys using tools like widevineproxy from the sticky threads. For your livestream you have
And then you can stream it usingCode:8d3c85fa30730fdc39efc09de476415f:8fdccd948bb2cc6d99d5305ccffebcb7
Obviously fresh mpd URLCode:ffplay -cenc_decryption_key 8fdccd948bb2cc6d99d5305ccffebcb7 "https://npo-nl-ams-p26-am5.cdn.streamgate.nl/<GENERATED_TOKEN>/live/npo/u_3_4/npoplus/drm/dash_cenc/npo-1/0/0/0/npo-1.isml/stream.mpd"
+ Reply to Thread
Results 331 to 360 of 528
-
--[----->+<]>.++++++++++++.---.--------.
[*drm mass downloader: widefrog*]~~~~~~~~~~~[*how to make your own mass downloader: guide*] -
Ohh amazing! Thank you so much for that hint, that's much appreciated!
I just tried this with WidevineProxy2 and it indeed works just fine!
I hope you don't mind me asking some questions, i just want to understand it
1. With network traffic monitoring (in browser, not with wireshark) on NPO i see no license requests at all besides that one cert file i linked to before. How does that work? Why does that work with WidevineProxy2? I don't get that.
2. How do i do the same on the command line to automate it? In other pinned topics i see things like specifying the license server (which i don't see) and the license request json (which i also don't see). -
Alright, let's not go offtopic that much. Since you want to know more, I'm not gonna answer any questions because those are already answered. I'll simply redirect you to other posts
- If you want to know more about that tool and how it works, read the entire author's post + all comments from there + github explanations
- If you want to automate it, you first need to know how to do it manually. So you need to know about things like pssh, license etc. Read @angela's trilogy entirely from the sticky threads. After you know how to do it manually, there's a guide in my signature which talks about automating
- If you want to know more about npo nl specifically, use the forum search function
https://www.videohelp.com/search?siteurl=forum.videohelp.com&q=npo+nl--[----->+<]>.++++++++++++.---.--------.
[*drm mass downloader: widefrog*]~~~~~~~~~~~[*how to make your own mass downloader: guide*] -
Not being able to download from Eurovision. The content is available. Using windows version.
WARNING] External tool is not installed: mkvmerge. Download commands may not be launched properly.Code:https://eurovisionsport.com/mediacard/athletics/EVS_250215_20250215EARoubaix_1 https://eurovisionsport.com/mediacard/athletics/EVS_250215_20250215EALyon_1
[INFO] Starting the service initialization stage.
[INFO] Current progress: [1/1]
[INFO] Starting the collections extraction stage.
[INFO] Current progress: [1/1]
[INFO] Starting the media data extraction stage.
[USER_ERROR] Failed to download: https://eurovisionsport.com/mediacard/athletics/EVS_250215_20250215EARoubaix_1. Reason: The content isn't available. Solution: Do not attempt to download it.
[INFO] Finished generating the download commands.
[WARNING] Saved the failed URLs to app_files\cmds_failed.txt
[WARNING] No download commands have been generated.
-----------
I haven't used widefrog in a while, so I am not sure if things have changed. The version is latest.
I updated MKVToolNix and placed mkvmerge in the widefrog folder.
Now it tells me : [WARNING] Can't check if the external tools are installed. Reason: join() argument must be str, bytes, or os.PathLike object, not 'NoneType'. Download commands may not be launched properly.
But I always got the mkvmerge warning and the application still generated commands successfully, so I don't think this is relevant anyway.Last edited by EV Downloads; 15th Feb 2025 at 23:10.
-
With WidevineProxy2
Code:N_m3u8DL-RE "https://evs-dtvsports-ltcu-secure2.akamaized.net/out/v1/69cb1d0dae7f4eea8bb8405db47091cb/1d070030744542c29154b72ae7fda6e3/00ae4ea9015f4af8a03ad453186806c6/manifest.mpd" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0" -H "Accept: */*" -H "Referer: https://eurovisionsport.com/" -H "Origin: https://eurovisionsport.com" -H "DNT: 1" -H "Sec-GPC: 1" --key 7bd941182e4e4f129298a2e7a30c508b:403158e8094b824d012db7398f46768e --use-shaka-packager -M format=mkv
Code:N_m3u8DL-RE "https://evs-dtvsports-ltcu-secure2.akamaized.net/out/v1/1ca3626abf6b4a07803bc68b986b45e2/1d070030744542c29154b72ae7fda6e3/00ae4ea9015f4af8a03ad453186806c6/manifest.mpd" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0" -H "Accept: */*" -H "Referer: https://eurovisionsport.com/" -H "Origin: https://eurovisionsport.com" -H "DNT: 1" -H "Sec-GPC: 1" --key f8c9813079584f1aa1fe950583c79055:76e63b88e95ff59e7a320093cd5314fd --use-shaka-packager -M format=mkv
-
Last edited by EV Downloads; 16th Feb 2025 at 00:47.
-
It will be fixed in the next version. For the moment, you can edit the python file of the service. Replace line 113
withCode:video_id = re.search(r"/mediacard/([^/]+)/?", source_element.url).group(1)
As for the other issues, delete everything and do a fresh reinstall.Code:video_id = source_element.url.split("/")[-1]--[----->+<]>.++++++++++++.---.--------.
[*drm mass downloader: widefrog*]~~~~~~~~~~~[*how to make your own mass downloader: guide*] -
Thanks mate. I will try that.

Edit: Editing the code has no effect. I will try to do a fresh installation later to see if the result is different.
[Attachment 85531 - Click to enlarge]Last edited by EV Downloads; 16th Feb 2025 at 01:17.
-
You messed with the space indentation (which is very important in python), press backspace once right before video_id. It has to be at the same distance as the next line
--[----->+<]>.++++++++++++.---.--------.
[*drm mass downloader: widefrog*]~~~~~~~~~~~[*how to make your own mass downloader: guide*] -
I made the change but it still does not work.
[Attachment 85571 - Click to enlarge]
I am not sure what suddenly changed for it to stop working like that.
Though I was able to get the commands using WidevineProxy2, I still need widefrog to be working normal.
It gives me this warning : [WARNING] Can't check if the external tools are installed. Reason: join() argument must be str, bytes, or os.PathLike object, not 'NoneType'. Download commands may not be launched properly.
I don't think this is an issue but I will do a fresh installation and try again. -
Thanks for the tool. I'm trying to download https://plus.rtl.de/video-tv/shows/wer-wird-millionaer-94557/2025-2-1022506/episode-8-...022025-1013856 which is at the moment free (when the next episode is released, this episode will be behind a paywall), but I get the following error:
I should add that I want to use widefrog at a server, that's why there will be no firefox. But it should not be required if I understood it correctly. What am I doing wrong?Code:[WARNING] Firefox browser is not installed. Services that require browser cookies won't work as intended. [INFO] Starting the service initialization stage. [INFO] Current progress: [1/1] [INFO] Starting the collections extraction stage. [INFO] Current progress: [1/1] [INFO] Starting the media data extraction stage. [USER_ERROR]/[APP_ERROR] Failed to download: https://plus.rtl.de/video-tv/shows/wer-wird-millionaer-94557/2025-2-1022506/episode-8-sendung-vom-17022025-1013856. Reason: Failed to extract content data. Solution: Make sure you can play the content. If you can, then debug the plus_rtl_de service. [INFO] Finished generating the download commands. [WARNING] Saved the failed URLs to app_files/cmds_failed.txt [WARNING] No download commands have been generated.
-
Are you using the latest version? I don't see it in your logs
--[----->+<]>.++++++++++++.---.--------.
[*drm mass downloader: widefrog*]~~~~~~~~~~~[*how to make your own mass downloader: guide*] -
Vrt is not working anymore, is it possible to fix this?
Also is it mayby possible to add somthing for converting colored subs to normal subs? -
They changed something recently for vrt.be . It will be fixed in the next version. For the moment, to fix you can delete in the service py file all appearances of the text
As for subtitles, the tool always downloads them on their original format. So unfortunately I won't add a feature like that even if it's useful. You could try writing a bat script that extracts subs, converts them, and adds them back, or look for other tools that are suitable for your particular use case.Code:thumbnailMeta {\n ...metaFragment\n __typename\n }\nLast edited by 2nHxWW6GkN1l916N3ayz8HQoi; 22nd Feb 2025 at 08:41.
--[----->+<]>.++++++++++++.---.--------.
[*drm mass downloader: widefrog*]~~~~~~~~~~~[*how to make your own mass downloader: guide*] -
-
Oh. I don't update the linux and macos versions that often so they arent up to date. You can use the python release.
--[----->+<]>.++++++++++++.---.--------.
[*drm mass downloader: widefrog*]~~~~~~~~~~~[*how to make your own mass downloader: guide*] -
@2nHxWW6GkN1l916N3ayz8HQoi Thanks for creating this awesome too!
The Shahid plugin is broken. response is always `None` but I don't know how to fix it. I'd appreciate if you could take a look?
```
response = re.search(
r'"static/chunks/"[^({]*\({([^)}]+)}\)[^\"]*"([^\"]+)"',
response
)
```
Thanks in advance -
As always, thanks for reporting the issue. It is fixed and will be introduced in the new version. I won't explain the fix now since it's more than modifying one line of code.
--[----->+<]>.++++++++++++.---.--------.
[*drm mass downloader: widefrog*]~~~~~~~~~~~[*how to make your own mass downloader: guide*] -
v2.12.0:
=> + nemzetiarchivum.hu
=> + rtlplay.be
=> + viu.com
Minor changes:
=> fixed some bugs for: eurovisionsport.com, plus.rtl.de, shahid.mbc.net, tf1.fr, vrt.be--[----->+<]>.++++++++++++.---.--------.
[*drm mass downloader: widefrog*]~~~~~~~~~~~[*how to make your own mass downloader: guide*] -
the script works very well
thank you very muchLast edited by esamax2000; 26th Feb 2025 at 01:04.
-
v3.0.0:
=> + goplay.be
=> + play.tv3.lv
=> + rts.ch--[----->+<]>.++++++++++++.---.--------.
[*drm mass downloader: widefrog*]~~~~~~~~~~~[*how to make your own mass downloader: guide*] -
Thanks for the kind words @bill
--[----->+<]>.++++++++++++.---.--------.
[*drm mass downloader: widefrog*]~~~~~~~~~~~[*how to make your own mass downloader: guide*] -
hey! also, big thanks from me for the work you’re putting into this.
in v3.0.0, i tried downloading from goplay.be, but got this error:
i did some debugging, and even though base64 decoded fine on base64decode.org, python wasn’t having it.Code:File "C:\Users\Admin\Desktop\frog\services\goplay_be.py", line 79, in get_bearer refresh_url = json.loads(base64.b64decode(v.split(".")[1]).decode())["iss"] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Admin\AppData\Local\Programs\Python\Python312\Lib\base64.py", line 88, in b64decode return binascii.a2b_base64(s, strict_mode=validate) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ binascii.Error: Incorrect padding
here’s how i fixed it:
you're probably a better python pro than me, so maybe you’ve got a better fix. but hopefully this helps a bit.Code:def safe_b64decode(b64_string): missing_padding = len(b64_string) % 4 if missing_padding: b64_string += '=' * (4 - missing_padding) return base64.b64decode(b64_string) if "accesstoken" in c_name: refresh_url = json.loads(safe_b64decode(v.split(".")[1]).decode())['iss'] refresh_url = "/".join(refresh_url.split("/")[:-1]) + "/"
-
Nice catch. In the context of python and base64, you can just add == even if it's useless padding and doesn't follow the standard. So there's not even a need to check for padding % 4 (bit of a lazy hack but eh ¯\_(ツ)_/¯ ). You can do something like
Will add it in the next versionCode:refresh_url = json.loads(base64.b64decode(v.split(".")[1] + "==").decode())["iss"]--[----->+<]>.++++++++++++.---.--------.
[*drm mass downloader: widefrog*]~~~~~~~~~~~[*how to make your own mass downloader: guide*] -
Hi, I tried to download from tf1.fr tonight (both v2.11 and v3.0), and I got
So I debugged the service, and it looks like the values retrieved by the get_tf1_info() method are now inside escaped JSON (with \\" instead of ").Code:[APP_ERROR] Failed to download: ... Reason: Failed to initialize the tf1_fr service.
My working fix was quite simple: add .replace('\\"', '"') at the end of the 1st line:
Code:@staticmethod def get_tf1_info(): response = requests.get(tf1_fr.BASE_URL).content.decode().replace('\\"', '"') api_key = re.findall(r'"apiKey":"([^"]+)"', response)[0] consent_ids = re.findall(r'neededConsentIds":\[(.*?)]', response)[0].replace("\"", "").split(",") player_version = re.findall( rf'"playerEndpoint":"{tf1_fr.PLAYER_URL}/","version":"([^"]+)"', response )[0] return api_key, consent_ids, tf1_fr.format_version(player_version)
Similar Threads
-
Batch IMDB Image Downloader
By Jay123210599 in forum ComputerReplies: 3Last Post: 11th Jan 2024, 12:02 -
Help downloading DRM protected content
By edenshapira in forum Video Streaming DownloadingReplies: 0Last Post: 28th Oct 2023, 14:59 -
Downloading DRM protected content from mewatch.sg
By notred in forum Video Streaming DownloadingReplies: 4Last Post: 25th Nov 2022, 04:34 -
Weird Behaviour Of DRM Protected Content
By portalie in forum Video Streaming DownloadingReplies: 1Last Post: 6th Feb 2022, 15:10







Quote