Looking for some help downloading videos from Bally Sports; this is a regional sports network, so video is accessible based on your location and your TV package (DirecTV, Comcast, etc).
There is no mpd, mp4, or m3u8, and only a "manifest.json".
There is an init.m4i that seems to be related, as well as separate m4v and m4a segment files; Example:
https://dvr-d-02-ballysports.akamaized.net/Content/DASH/LLCU/cad06f26-3f83-4cb1-aa89-f...eam_9/init.m4i
https://dvr-d-02-ballysports.akamaized.net/Content/DASH/LLCU/cad06f26-3f83-4cb1-aa89-f...8330984573.m4v
https://dvr-d-02-ballysports.akamaized.net/Content/DASH/LLCU/cad06f26-3f83-4cb1-aa89-f...8054064573.m4a
(Video appears to be Stream 9, and Audio on Stream 10).
This particular video will probably be removed in the next few days, but any help so as to be able to do this in the future would be appreciated.
+ Reply to Thread
Results 1 to 30 of 32
-
-
The MPD is there, it comes down just before the init.
The url is obfuscated, it's not obvious that it's an MPD response. -
Thank you; yes I tried a number of variations on the links that were shown in Firefox/Chrome inspection, but most resulted in Error 400 bad request for URL.
I did however, try this: https://dvr-d-02-ballysports.akamaized.net/Content/DASH/LLCU/cad06f26-3f83-4cb1-aa89-f...2/manifest.mpd
which resulted in "is protected by DRM" via Streamlink.
So clearly a decryption issue; my assumption was I could download it, then decrypt it, but thats not the case? -
Its clearly NOT the case YOU can, no. You haven't got a clue how to do this and have done zero searching and reading back.
If you do as LZAA has asked and post url and access (or PM it) then maybe you might get somewhere. -
yt-dlp would not download this file, but I was able to successfully download it via Nm3u8DL-CLI and some help via DM. I am researching on the decryption as time will allow, although its a lot to dig through as methods are constantly becoming outdated.
As I expected, the video in question is already gone from the server, so Im more attempting to learn how to do this for future reference now. Here is a similar video from their site thats still active:
https://www.ballysports.com/watch/live/atlanta-braves-at-seattle-mariners
As far as access, the only login I have is not mine to give out, so I cannot post that here. Most anyone with a US-based TV subscription should be able to access this though. -
I updated my app to recognize bally (simple matter of url inspection), and didn't have any trouble pulling down a a regional game.
Not sure why you're having issues.
However, the MPD I'm seeing - the host is similar, but the path is very different, and does not include "mpd" in the path.Last edited by darkw4v3; 14th Sep 2022 at 18:06. Reason: Hit enter too soon
-
Apologies for bumping an old thread here, but I've also been trying to download and decrypt from the Bally Sports site in recent days as test to see if it's viable for my use case - live sports is the only thing I still subscribe to pay TV for and I'd like to go Internet only and instead subscribe to Bally Sports Plus which has all local teams streaming rights in my market to save some money. Being able to download game broadcasts from their portal (which only stay available for about 48 hours would be ideal.)
I have been able to download encrypted video and audio files using N_m3u8DL-RE and the link generated by The Stream Doctor plugin, but I've been struggling with getting decryption figured out.
[Attachment 71795 - Click to enlarge]
[Attachment 71801 - Click to enlarge]
Thanks to cedric8528's sticky thread, I worked through setting up an Android Studio instance on my computer and generating keys, and I have downloaded the WKS-Key package and placed the generated key files in the pywidevine/L3/cdm/devices/android_generic folder, but running through the l3.py script is where I'm having trouble.
[Attachment 71796 - Click to enlarge]
Going through the Developer Tools in the browser, I find this, which I think is what I need to get the cURL info on.
[Attachment 71797 - Click to enlarge]
I put that into curlconverter.com and copy the headers info from there into to headers.py file.
[Attachment 71798 - Click to enlarge]
I also see that the license server appears to be running through lic.drmtoday.com
[Attachment 71799 - Click to enlarge]
I have no doubt that I'm doing stuff incorrectly here, but I'm having trouble figuring out what exactly while running through A_n_g_e_l_a's great decryption stickied threads. It also appears that the CDM-Project site may have had more detailed walkthroughs/guides but it seems to have gone offline or at least gone private. I'm hoping somebody smarter than me might be able to get me pointed in the right direction. I believe I am not doing things correctly to get the PSSH value, and probably using an incorrect value for the license server as well - most likely not finding the correct things to get those values from in Developer Tools.
[Attachment 71800 - Click to enlarge]
Thanks in advance for any guidance and sorry for being a pest. -
Apologies for the delay - I've had some personal issues to deal with the last few weeks. Thanks jack_666 and LZAA for the feedback. Using your suggestions, I circled back to this today and noticed N_m3u8DL-RE literally gives me the PSSH in the output when it's running (n00b mistake there). I also entered the full URL address in the script prompt.
Running the l3.py script, I am now getting the following:
[Attachment 72337 - Click to enlarge]
Searching for the "unable to parse license - check protobufs" response, it seems like I might be specifying an incorrect license server URL? Am I on the right track? If so, what would be the right way to find the correct server URL? That's the only URL I am seeing searching for "license" in Developer Tools.
[Attachment 72338 - Click to enlarge] -
-
Code:
https://linear.stvacdn.spectrum.com/LIVE/1101/dash/cenc/FHDSWNA_14414/manifest.mpd?decryption_key=b2a4eb1f01c572369a2a8200034a2a81
-
totally wrong.
first: pssh start ALWAYS with AA or AAA
your pssh CAES ... is base64 encrypted. need to be convert. it's from amz? this service uses pssh as yours
share here your pssh. and someone will convert it for you
second: when have you lic.drmtoday append ALWAYS ?specConform=true to the end -
Thanks LZAA and lomero. Obviously I'm pretty dumb as to what I'm doing but I'm trying to learn. Appreciate the help.
How would I go about converting the PSSH value?
Here is the PSSH value I've gotten on the latest video I'm experimenting with.
Code:CAESEMCEB9jd2zD9vFMG+0sAn7AaCGNhc3RsYWJzIkxleUpoYzNObGRFbGtJam9pVWtWUVRFRlpMVFZqTXpBNVpUWXdMVGxoWlRFdE5ETmhPQzFoTVdaaUxUY3lPR1JrTXpKbU5ESmhaU0o5MgdkZWZhdWx0
-
Here is the PSSH value I've gotten on the latest video I'm experimenting with.Code:
CAESEMCEB9jd2zD9vFMG+0sAn7AaCGNhc3RsYWJzIkxleUpoYzNObGRFbGtJam9pVWtWUVRFRlpMVFZqTXpBNVpUWXdMVGxoWlRFdE5ETmhPQzFoTVdaaUxUY3lPR1JrTXpKbU5ESmhaU0o5MgdkZWZhdWx0
Widevine Pssh
{
"algorithm":"AESCTR",
"keyIds":["wIQH2N3bMP28Uwb7SwCfsA=="],
"provider":"castlabs",
"contentId":"ZXlKaGMzTmxkRWxrSWpvaVVrVlFURUZaTFRWa k16QTVaVFl3TFRsaFpURXRORE5oT0Mx
aE1XWmlMVGN5T0dSa016Sm1OREpoWlNKOQ==",
"policy":"default"
} -
Thanks for the continued help. I feel like I'm getting close but I'm not quite there yet.
With another test (like I said videos disappear from the site every 48 hours so I have limited working time), I have this as my latest PSSH.
Code:CAESEH2RH2s0JjpWrHdmlCWMEIgaCGNhc3RsYWJzIkxleUpoYzNObGRFbGtJam9pVWtWUVRFRlpMV1k0TUROallUQmpMVFZsWWpndE5EWmpOUzFoWlRReUxUZG1ZV0ppWlRJMFpqUXdPU0o5MgdkZWZhdWx0
[Attachment 72680 - Click to enlarge]
Code:AAAAlXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAHUIARIQfZEfazQmOlasd2aUJYwQiBoIY2FzdGxhYnMiTGV5SmhjM05sZEVsa0lqb2lVa1ZRVEVGWkxXWTRNRE5qWVRCakxUVmxZamd0TkRaak5TMWhaVFF5TFRkbVlXSmlaVEkwWmpRd09TSjkyB2RlZmF1bHQ=
[Attachment 72681 - Click to enlarge]
I also tried running this through keysdb.net to see what I got there; I got this response:
Code:{"code":400,"error":true,"message":"Failed to get license: 412 Invalid OptData"}
[Attachment 72682 - Click to enlarge]
I feel like I'm probably missing something silly, but I'm not sure what. Karoolus mentioned needing a token in the headers for drmtoday. Could that be it? If so, how would I go about doing that?
I really appreciate everyone's continued help.
EDIT: The header info I generated from the cURL from the license info in network tools did seem to include a token, so not sure whether or not I'm doing that correctly.
[Attachment 72683 - Click to enlarge]
[Attachment 72684 - Click to enlarge]Last edited by axemanozh; 25th Jul 2023 at 20:53.
-
yes, you need to add that "x-dt-auth-token" as a header in the license request.
if youre doing it with keysdb.net, add it in the headers field on a new line after the user-agent in this format:
Code:x-dt-auth-token: eyJh.......
-
Please please help me for get the key
Ssc 2 https://ssc-2-ak.akamaized.net/out/v1/9499044d48ef4cb8a212130ef74d2919/index.mpd
Ssc 3 https://ssc-3-on-prem-ak.akamaized.net/out/v1/ad2b1abef05c419aa6a4e6aee6d269a2/index.mpd
Ssc 4 https://ssc-4-ak.akamaized.net/out/v1/7aeb8bd13f7942728d2f2a79735ee53c/index.mpd
Ssc 5 https://ssc-5-on-prem-cw-ak.akamaized.net/out/v1/ee54cd9a3f844ceb8249f430733f9c00/index.mpd
Ssc extra 1 https://ssc-extra1-on-prem-cw-ak.akamaized.net/out/v1/d309ac98b822425d9435cca654211498/index.mpd
Ssc extra 2
Ssc extra 3 https://ssc-extra3-ak.akamaized.net/out/v1/8390b35dae284f53b44c3c8645a5fb09/index.mpd
Ssc news https://ssc-news-on-prem-ak.akamaized.net/out/v1/f2c4d3235fc24094a27c2d07ecb3069d/index.mpd -
Wow, success with your suggestion - thanks ElCap!
[Attachment 72688 - Click to enlarge]
I'm not sure what I'm doing wrong with the WKS-Key l3.py script but now let's see if I can get the video decrypted with mp4decrypt. -
-
Last edited by axemanozh; 26th Jul 2023 at 19:49.
-
As an update for anyone who might care; the files decrypted perfectly using this command:
Code:mp4decrypt.exe --key 7d911f6b34263a56ac776694258c1088:f4b9cf3c14e68c573466a08f6d85d8c7 test.mp4 test1.mp4
For shits and giggles, I tried running the l3.py script again and am still getting an error.
[Attachment 72698 - Click to enlarge]
Not sure if this is because my headers.py files is incorrect, as piaohua speculated.
[Attachment 72699 - Click to enlarge]
I suppose it may not matter if getting my keys via keysdb.net works, as it looks like I don't need my own CDM with that method. -
good to hear that it worked but similar to cdrm-project, keysdb could go down at any time, so having a working local script would be a good backup.
have you tried removing all the headers except for user-agent and x-dt-auth-token from the headers.py file?
ie.
Code:headers = { "user-agent": "chrome.......", "x-dt-auth-token": "eyJh......" }
-
This script works for DRMToday and has an L3 CDM already in there.
Enter PSSH and Token and it'll spit out the keys
https://files.videohelp.com/u/303646/DRMToday.zip
This can obviously also be adapted to be used for other websites as well, just change the headers and license URL in the script -
Circling back to this again after a little bit of time: Yes, shortening my headers file to just I've put into keydb.net works.
Code:headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0', 'x-dt-auth-token': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlM2UwNTMyNi1iNTgxLTRiMTQtOWY0MS1iM2JiNzc0ZTY4YzAiLCJpYXQiOjE2OTEzMzE4MTcsIm9wdERhdGEiOiJ7XCJ1c2VySWRcIjpcImIwNjIyZmQ4YmVmMTM4YWMyNWE2YjBkMGQ4YjY3YzQyOTRkNmYyMmVcIixcIm1lcmNoYW50XCI6XCJiYWxseXNwb3J0c1wiLFwic2Vzc2lvbklkXCI6XCJBMTE1RDQyQi0xNzRGLTI5MDQtMTk0QS1GMkVCMjUwRjVBNjhcIn0iLCJjcnQiOiJbe1wiYXNzZXRJZFwiOlwiUkVQTEFZLWI0NzA2YzIwLWNkOWUtNDE3Zi05MGE4LTZiNTg3ZWM0Zjc2NlwiLFwicmVmXCI6XCI5Y2I5Y2VjNS05Y2EyLTQ4ZGEtYWI5ZC03OWU4MGIzNDQzYTFcIn1dIn0.KrHGWMq20MvfDVNRQpAdJW2FWYPlnoG1Ri2n5fmqYr2MFbLMsW0K_VXR2-9_M4uQjspilZSTwJOiYnFVP2O3og', }
[Attachment 72943 - Click to enlarge]
As you say, I'm sure that these key sites are wont to go offline at any time, so having a personal CDM at your disposal is certainly preferable.
Mostly, I just wanted to come back to take the time to thank everyone again for all of the help here. As the saying goes; give a man a fish and he eats for a day. Teach a man to fish and he eats for life. -
Do you have this one too?
https://ssc-news-on-prem-ak.akamaized.net/out/v1/f2c4d3235fc24094a27c2d07ecb3069d/index.mpdLast edited by InternetPeon; 30th Oct 2023 at 16:30.
Similar Threads
-
Need help on downloading from sports.nhk.or.jp
By jgronwall in forum Video Streaming DownloadingReplies: 81Last Post: 25th Mar 2023, 00:57 -
Sports Editing Software
By gr8tnezz in forum Newbie / General discussionsReplies: 9Last Post: 8th Aug 2020, 00:51 -
Removing announcer voice from sports videos?
By rowjekto in forum Newbie / General discussionsReplies: 1Last Post: 1st Mar 2020, 01:54 -
Difficulty with NBC Sports Gold
By cbnstropsdlog in forum Video Streaming DownloadingReplies: 2Last Post: 22nd Mar 2019, 00:41 -
Best x265 configurations for sports videos
By horus_ in forum Newbie / General discussionsReplies: 6Last Post: 25th Mar 2018, 23:02