f1viewer icon indicating copy to clipboard operation
f1viewer copied to clipboard

Widevine DRM enabled for streams

Open maturd opened this issue 2 years ago • 69 comments

Please check the FAQ and search existing issues before you submit a new one!

Describe the bug Whatever live feed I try to open (MPV, IINA, VLC) I only get a grey screen with no audio. If I try to copy to clipboard and open the link in Safari I don't get a video there too but it download a .mpd file that is unplayable.

To Reproduce Steps to reproduce the behavior:

  1. Select any live feed 2. Try to open it with any player or copy the link to open it in a browser

Expected behaviour Play feed

Screenshots If applicable, add screenshots to help explain your problem.

F1TV account plan Pro Account. No VPN

Desktop (please complete the following information):

  • macOS
  • Brew
  • 2.7.0

Logs If applicable please provide the relevant portion of your logs. You can find them by running f1viewer -logs.

maturd avatar Apr 08 '22 03:04 maturd

Same thing here. Gray screen, flood of ffmpeg errors together with some 404 error from F1viewer itself when playing the Australian GP Practice 1 LIVE.

nicholascw avatar Apr 08 '22 03:04 nicholascw

Yes, unfortunately this seems to be a problem with DRM, which they have started implementing. That really sucks, because there is no fix.

Better explained by the creator of Race Control (which also suffers from this problem):

https://github.com/robvdpol/RaceControl/issues/413

pizza461 avatar Apr 08 '22 03:04 pizza461

What a shame, I had my own build that I could watch from my Ipad , the only reason is use it is because the f1 player is so terrible and using f1viewer proxy ensures I always get 4k. Now the mpd file doesnt open in safari and on VLC / MPV just a grey screen with garbled vertical lines.

destroy-everything avatar Apr 08 '22 03:04 destroy-everything

To whom it may concern, **** you! Seriously I know F1 is reading this, at least before you disable this app make the IOS app workable , its so terrible I will be happy if you get rid of the adaptive quality that never works even on my 10Gig connection. When I use custom players I can watch in 4k without a hitch.

destroy-everything avatar Apr 08 '22 03:04 destroy-everything

1080p50 is the highest quality, my friend.

But I agree, we need the 3rd party players! This is so not right xD

pizza461 avatar Apr 08 '22 03:04 pizza461

https://www.bento4.com/documentation/mp4decrypt/ From the index.mpd ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="1*****5-2**6-4***4-B**7-4*********7" xmlns:cenc="urn:mpeg:cenc:2013"

Don't have much time, but think there are still some options. But they make it harder.

DoeEensGek avatar Apr 08 '22 04:04 DoeEensGek

Same here. MPD files with no audio and 'gray' video....

enginefeeder101 avatar Apr 08 '22 06:04 enginefeeder101

https://www.bento4.com/documentation/mp4decrypt/ From the index.mpd ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="1*****5-2**6-4***4-B**7-4*********7" xmlns:cenc="urn:mpeg:cenc:2013"

Don't have much time, but think there are still some options. But they make it harder.

Sorry to say but this method still requires a way to actually get the master content key from Widevine DRM to make it work.

Basically, the media is encrypted using a static key. This key is processed by Widevine CDM (content decryption module) on the client device by talking with the Widevine server or doing some secret key stuff (this part is typically heavily obfuscated so difficult to reverse engineer) and actually performs the AES-128 CTR decryption on the content so the master key does not leak.

If you can get the content's master key (there used to be ways, Google it - Widevine had a huge 'security issue' not too long ago which allowed extracting the master keys by chrome extension (!), but now it's very hard again) you can decrypt the content without doing the Widevine stuff (its actually built-in for some players, including ffmpeg). That's also how those 'illegal streaming websites' keep on popping up using the actual CDN of the streaming service itself. But then again; this assumes those master content keys are not random and they never change..

Alternatively, instead of trying to find the master keys skipping Widevine completely, you may be able to implement some version of the CDM library like https://gist.github.com/ruario/3c873d43eb20553d5014bd4d29fe37f1 and then make a wrapper that calls the library to use the decryption part, the same way they do it for Kodi; https://github.com/emilsvennesson/script.module.inputstreamhelper/blob/master/lib/inputstreamhelper/widevine/widevine.py. But I wouldn't get my hopes up. It will be painstakingly hard.

arpiecodes avatar Apr 08 '22 08:04 arpiecodes

But I agree, we need the 3rd party players! This is so not right xD

I see what you did there 💥🎧💥

pvanb avatar Apr 08 '22 14:04 pvanb

Let's say I had the keys (completely possible and it's one WV master key), anyone aware of any players for Mac that support playback with key? Something like the adaptive.license plugin for Kodi?

notarobot1337 avatar Apr 09 '22 06:04 notarobot1337

Is this a global issue or a european issue due to DSGVO? Just observed that If I start a screenshot tool like greenshot the stream in the webbrowser of F1TV get black to prevent screenshots from the screen. I expect this is something regarding Copyright (Urheberrecht) which is huge changed in DSGVO.

CastorSmith89 avatar Apr 09 '22 07:04 CastorSmith89

Let's say I had the keys (completely possible and it's one WV master key), anyone aware of any players for Mac that support playback with key? Something like the adaptive.license plugin for Kodi?

If you have the master keys, you should use a player that supports CENC decrypting (common encryption, AES-128 CTR) with the key. Alternatively, you could use ffplay/ffmpeg to open the stream, then pipe the audio/video output to another player of your choice (see https://stackoverflow.com/questions/44939166/ffmpeg-how-to-produce-mp4-cenc-common-encryption-videos/44949160#44949160 -decryption_key argument).

You can also let ffmpeg write the stream into an UDP Multicast group, so you can also access it from other players in your network. Or to an RTMP stream for example.

arpiecodes avatar Apr 09 '22 09:04 arpiecodes

https://stackoverflow.com/questions/44939166/ffmpeg-how-to-produce-mp4-cenc-common-encryption-videos/44949160#44949160

Unfortunately not that easy as it falls over once it starts pulling the mp4 segments (HTTP Error 400, Bad Request), I'm guessing it's missing some header information, I'll have a play about with it further and report back

notarobot1337 avatar Apr 09 '22 09:04 notarobot1337

Unfortunately not that easy as it falls over once it starts pulling the mp4 segments (HTTP Error 401), I'm guessing it's missing some header information, I'll have a play about with it further and report back

IIRC streams gotten through f1viewer might give you a 401 if the kid GET argument is missing (it seems the value does not really matter, even empty works in my testing).

Might be easier to copy a link from a browser session into ffmpeg and see if that works? Or changing the user-agent from ffmpeg to something less trivial to block. :-)

EDIT: Nevermind above. I see what you mean now. DASH streaming is protected by setting a cookie from the manifest request forward. I guess you need cookies support in ffmpeg (which does not exist), or a proxy that adds the cookies for you. You could also try to put the cookies in manually by looking at the cookies set for your browser session.

arpiecodes avatar Apr 09 '22 09:04 arpiecodes

Ok with one massive line into FFplay with all the headers it attempts to play but I'm getting 'Option decryption_key not found', perhaps I need a different version of FFplay, again I'll report back.

notarobot1337 avatar Apr 09 '22 09:04 notarobot1337

Ok with one massive line into FFplay with all the headers it attempts to play but I'm getting 'Option decryption_key not found', perhaps I need a different version of FFplay, again I'll report back.

Guess you need the module 'crypto' built in. Which might also require building from source. ffmpeg -protocols should tell you if your version has the crypto protocol built-in.

arpiecodes avatar Apr 09 '22 09:04 arpiecodes

it has the crypto module, I'll build a new version

notarobot1337 avatar Apr 09 '22 10:04 notarobot1337

sooo close

So FFmpeg starts doing its thing, then spits out a ton of these...

Stream mapping: Stream #0:5 -> #0:0 (copy) Stream #0:6 -> #0:1 (copy) Press [q] to stop, [?] for help [dash @ 0x7fb417004280] No longer receiving stream_index 02 bitrate=347523.4kbits/s speed=0.0237x [dash @ 0x7fb417004280] No longer receiving stream_index 1 [dash @ 0x7fb417004280] No longer receiving stream_index 2 [dash @ 0x7fb417004280] No longer receiving stream_index 3 [dash @ 0x7fb417004280] No longer receiving stream_index 4 [NULL @ 0x7fb41704fc80] illegal reordering_of_pic_nums_idc 17 [NULL @ 0x7fb41704fc80] non-existing PPS 1 referenced [NULL @ 0x7fb41704fc80] non-existing PPS 2 referenced [NULL @ 0x7fb41704fc80] non-existing PPS 1 referenced [NULL @ 0x7fb41704fc80] non-existing PPS 42 referenced [NULL @ 0x7fb41704fc80] non-existing PPS 2 referenced [NULL @ 0x7fb41704fc80] non-existing PPS 7 referenced [NULL @ 0x7fb41704fc80] non-existing PPS 2 referenced [NULL @ 0x7fb41704fc80] non-existing PPS 1 referenced [NULL @ 0x7fb41704fc80] non-existing PPS 2 referenced

notarobot1337 avatar Apr 09 '22 10:04 notarobot1337

Those warnings could also well be non-fatal. For example; sometimes in the stream audio tracks can be added or removed dynamically, depending on the broadcast. In such case, track indexes might change.

Does it actually produce a playable video/audio output if you try to write it to a file?

Maybe you can try -ss 0 to have it start at the beginning of the broadcast/stream?

arpiecodes avatar Apr 09 '22 11:04 arpiecodes

Those warnings could also well be non-fatal. For example; sometimes in the stream audio tracks can be added or removed dynamically, depending on the broadcast. In such case, track indexes might change.

Does it actually produce a playable video/audio output if you try to write it to a file?

Maybe you can try -ss 0 to have it start at the beginning of the broadcast/stream?

Excellent explanation, I sent the output to a local rtmp server so I could watch the stream as it came in, unfortunately it just gave a green screen however the bitrate, resolution and fps were all correct, which leads me to believe the code is correct except for how it's handling the WVkey, so next I'll dump it to a .mp4 and see if mp4decrypt can process it. I'm 99% certain the key is correct as it matches up to the KID etc and I've obtained keys using the same method many times before.

notarobot1337 avatar Apr 09 '22 11:04 notarobot1337

For some weird reason, the HLS variant (if you use Safari as playback client) seems to be unencrypted again now for Qualifying Australia..

I also noticed it uses the same kid. So if DASH does not work, it might be possible to use the same key for the HLS variant as they are usually encrypted using the same content key within the same origin.

EDIT: Nevermind, this is probably just the content moving from 'restart' (e.g. recording of the live stream) to 'video-on-demand' after processing. However I noticed kid 1042, which might be interesting to try with a future live stream. Though that probably won't really work.

Above comment about trying HLS if the kid matches does still stand, though.

arpiecodes avatar Apr 09 '22 12:04 arpiecodes

the WV kid is what I'm referring to from within the mpd, from what I've tested so far they seem to use 1 kid, pssh and master key for all streams and it changes daily. Am I right in thinking the HLS url is the same but with m3u8 extension?

EDIT: Yeah the m3u8's play any, they're not using DRM encryption.

notarobot1337 avatar Apr 09 '22 12:04 notarobot1337

Usually, there is one master content key (the same origin software is usually responsible for encrypting and packaging HLS/DASH variants of the same source).

The DRM system is actually only in charge of giving you the correct content decryption key, it does not really do more than that (but in reality it has to because it cannot risk to leak the master key, so hardware/software implementations usually also take care of decryptingthe media and securely playing back the video - which is why you cannot screenshot/record the framebuffer output as it's virtually not there and using a 'secure' path to the graphics card).

Thanks to CENC (=Common Encryption) standard almost all streaming formats could in theory use the same encryption method. Usually, it is quite common that content is using the same master key across all streaming formats. But, these are all assumptions of course.

Am I right in thinking the HLS url is the same but with m3u8 extension?

Also unable to check right now as the platform does not seem to deliver the URL's for the actual 'live' stream variants anymore, just the replay versions, which makes comparing them hard..

EDIT: Yeah the m3u8's play any, they're not using DRM encryption.

I guess when they 'archive' something as 'replay' content, they are using another way of serving the content. In Chrome, it also gives you a HLS type stream. This content hasn't got any DRM on it indeed.

Though, when a broadcast is 'live', they seem to use Fairplay on the HLS stream. Which is Apple's Widevine responsible of giving the client the key. Which might coincidentally be the same CENC key you extracted from the DASH WV stream.

arpiecodes avatar Apr 09 '22 12:04 arpiecodes

The real problem however is that sharing the master content key is actually considered circumventing 'effective' DRM which is illegal to do in most countries. Having said that, kinda in it to see if you can get it working. Which would be awesome. But still, not really practically usable for a typical f1viewer user.

arpiecodes avatar Apr 09 '22 12:04 arpiecodes

it can be scripted to work with F1viewer or at least that's my intent, now I'm just waiting for streams offered in the new format to test with,

notarobot1337 avatar Apr 09 '22 16:04 notarobot1337

Still not working here, verry bad guy's..... any idea how to slove the issue for live F1.. to watch back works just live not... f1viewer

jackmillu avatar Apr 10 '22 05:04 jackmillu

Ok, so I've managed to get it to pull/push the feed with the relevant header info etc. BUT I can't find a version of ffmpeg for Mac that supports the -decryption_key operation before the input :-/ Anyone good with ffmpeg? Or is there anyway to pass the mpd with key to VLC?

notarobot1337 avatar Apr 10 '22 05:04 notarobot1337

I have the same issue for windows. Or can I pull the the current repo and build for windows and this will work? Issue 236 is linked to this issue as well and this was opened for windows as well.

CastorSmith89 avatar Apr 10 '22 05:04 CastorSmith89

I try it on Macbook and Windows both same issue... LIVE EVENTS DON'T WORK... ANY SOLUTION GUYS...

jackmillu avatar Apr 10 '22 05:04 jackmillu

Ok, so I've managed to get it to pull/push the feed with the relevant header info etc. BUT I can't find a version of ffmpeg for Mac that supports the -decryption_key operation before the input :-/ Anyone good with ffmpeg? Or is there anyway to pass the mpd with key to VLC?

try with ffmpeg full version from this site: https://www.gyan.dev/ffmpeg/builds/

user2705 avatar Apr 10 '22 09:04 user2705

Ok, so I've managed to get it to pull/push the feed with the relevant header info etc. BUT I can't find a version of ffmpeg for Mac that supports the -decryption_key operation before the input :-/ Anyone good with ffmpeg? Or is there anyway to pass the mpd with key to VLC?

If you share what you have, we can all try to work on it if you'd like? We could probably hotwire in a drm tester.. https://bitmovin.com/demos/drm or such

howlett avatar Apr 10 '22 11:04 howlett

I'm not sure I can share here, what I have is the Widevine Keys etc that can be used to decrypt the video etc (I can explain this is private message etc), but it just requires pssh, licence server and headers including tokens etc.

So in order to grab and parse the mpd you just need to add the headers (can be found via dev tools), so what I need to complete this is a way to then insert the keys into playback via ffplay/ffmpeg but at the moment all versions of ffmpeg I've tried with the -decryption_key xxxxxx control give an unknown output error.

I'm sure someone with knowledge of ffmpeg should be able to help here.

Or if someone is good with scripting this, we could download the mp4/m4a segments, decrypt with mp4decrypt and then pipe out the decrypted files. I've seen this done with other services.

notarobot1337 avatar Apr 10 '22 13:04 notarobot1337

it looks like mpd uses "--demuxer-lavf-o=decryption_key=" as the option. I think ffplay takes the decryption_key argument, not sure about ffmpeg?

howlett avatar Apr 10 '22 13:04 howlett

ffmpeg does take the decryption_key argument. It is fussy about the ordering thought. It seems it needs to be after the -i argument and the -decryption_key does not have a = after it. Hope that helps

howlett avatar Apr 10 '22 14:04 howlett

I now need to wait again to get a valid MPD to test with, unfortunately they seem to move the replays to the older system that works just fine, unless anyone has a valid mpd url from today?

notarobot1337 avatar Apr 10 '22 15:04 notarobot1337

@notarobot1337 no unfortunately there isn't any mpd link, we have to wait till Imola.. What's the way to contact you via private message? Can't find the option on github! 😂

ricky732 avatar Apr 11 '22 20:04 ricky732

I might use the same username on Telegram....

notarobot1337 avatar Apr 11 '22 20:04 notarobot1337

@notarobot1337 There is an .mpd link, at Post-Race Show Australia, if you want to test with.

crisgsm33 avatar Apr 12 '22 05:04 crisgsm33

I now need to wait again to get a valid MPD to test with, unfortunately they seem to move the replays to the older system that works just fine, unless anyone has a valid mpd url from today?

wish could go back to the Schumacher days where we could test whenever we wanted.

callumparr avatar Apr 12 '22 05:04 callumparr

@notarobot1337 There is an .mpd link, at Post-Race Show Australia, if you want to test with.

Thank you.

So upon testing I was able to grab the video from the mp4, decrypt it and play it back in VLC https://snipboard.io/aMCDo4.jpg <--- as shown here.

So I have everything needed for a live stream to work, this then leads me back to not having the correct syntax when using FFmpeg, so if anyone has experience with this please let me know, as we can script this into the F1viewer app and I can go back to having my front room as race control during the live events, using the official app is painful at best.

EDIT: Also before anyone comments 'where's the audio in that screenshot?' I didn't merge the files back together as I know for sure that'll work.

notarobot1337 avatar Apr 12 '22 08:04 notarobot1337

Unfortunately, I'm not good at syntax for FFmpeg either, maybe the developer can help us by implementing Widevine code directly into the application, both for live stream and download.

crisgsm33 avatar Apr 12 '22 08:04 crisgsm33

Unfortunately, I'm not good at syntax for FFmpeg either, maybe the developer can help us by implementing Widevine code directly into the application, both for live stream and download.

That's extremely doubtful, but perhaps he could make it so users could add their own legit CDM and it work through the process?

For now I'd be happy just scripting it to run from within F1viewer with no actual ties to the app (if legality is an issue)

notarobot1337 avatar Apr 12 '22 09:04 notarobot1337

By the way, yesterday's token was no longer valid today, it seems that it also changes randomly.

crisgsm33 avatar Apr 12 '22 09:04 crisgsm33

That's exactly what I meant about implementation, legality must be taken into account, but we could get around this by introducing an additional field where we could enter the key, each of us in our own way.

crisgsm33 avatar Apr 12 '22 09:04 crisgsm33

By the way, yesterday's token was no longer valid today, it seems that it also changes randomly.

They expire every 24 hours, that part is controlled via HMAC

notarobot1337 avatar Apr 12 '22 09:04 notarobot1337

That's exactly what I meant about implementation, legality must be taken into account, but we could get around this by introducing an additional field where we could enter the key, each of us in our own way.

First things first lets get it to stream live, if ffmpeg doesn't support 'on the fly' decryption then we could find something that does, or the really long method would be to script it to download segments, decrypt then then create a new stream with the decrypted segments.

notarobot1337 avatar Apr 12 '22 09:04 notarobot1337

By the way, yesterday's token was no longer valid today, it seems that it also changes randomly.

They expire every 24 hours, that part is controlled via HMAC

In my case it was unchanged from Saturday until today.

crisgsm33 avatar Apr 12 '22 09:04 crisgsm33

By the way, yesterday's token was no longer valid today, it seems that it also changes randomly.

They expire every 24 hours, that part is controlled via HMAC

In my case it was unchanged from Saturday until today.

Not sure on that then, from experience it's been 24hours for me

notarobot1337 avatar Apr 12 '22 09:04 notarobot1337

This is the smallest problem, I would say, Bento4-SDK needs to be integrated into the script, the order of events being download, decrypt, play...

crisgsm33 avatar Apr 12 '22 09:04 crisgsm33

The script could also extract the token automatically, without our intervention, using the Firefox library.

crisgsm33 avatar Apr 12 '22 09:04 crisgsm33

This is the smallest problem, I would say, Bento4-SDK needs to be integrated into the script, the order of events being download, decrypt, play...

Yes, but that still requires knowing how the mpd segments fall, as this seems different in archive to race day

notarobot1337 avatar Apr 12 '22 12:04 notarobot1337

The information is in the header, only the decryption key can decipher the order and size of the chunks, which is between 2 and 4 sec for .mpd files. Also, .mpd files do not have a codec, it is set by FFmpeg after the script, so it does not work with a simple video and audio copy.

crisgsm33 avatar Apr 12 '22 13:04 crisgsm33

There are some dowloader software, like youtube-dl, that works with command prompt, that would know how to download .mpd in chunks, I don't know how much and how it would work live.

crisgsm33 avatar Apr 12 '22 13:04 crisgsm33

Is tvOS (Apple TV) working .mpd files differently (and in an easier way)? VroomTV (F1AppleTV) stopped to work after the token issue first, and re-introduction of DRM after, but @NoahFetz worked out a solution in such short time. Issue 55

maturd avatar Apr 12 '22 14:04 maturd

Is tvOS (Apple TV) working .mpd files differently (and in an easier way)? VroomTV (F1AppleTV) stopped to work after the token issue first, and re-introduction of DRM after, but @NoahFetz worked out a solution in such short time. Issue 55

All Apple clients (Safari Browser, iPhone, AppleTV etc.) get m3u8 encrypted with Apple's DRM called FairPlay. As far as I know this only works on Apple devices.

NoahFetz avatar Apr 12 '22 14:04 NoahFetz

Noah is correct. F1TV puts out two DRM streams. One is Widevine, the other is FairPlay. Widevine is used for most clients (web, Android, Android TV, Fire TV devices), and FairPlay is used exclusively for Apple devices/software (Safari, iOS/iPadOS/tvOS app).

On the Apple side, it's a little bit easier to deal with since there are system modules you can call to handle it.

anthonylavado avatar Apr 15 '22 23:04 anthonylavado

Noah is correct. F1TV puts out two DRM streams. One is Widevine, the other is FairPlay. Widevine is used for most clients (web, Android, Android TV, Fire TV devices), and FairPlay is used exclusively for Apple devices/software (Safari, iOS/iPadOS/tvOS app).

On the Apple side, it's a little bit easier to deal with since there are system modules you can call to handle it.

So right now, it could be possible to let f1viewer users on Mac to use this different DRM stream easily? Could be a possible scenario @SoMuchForSubtlety ? Or is a difficult workaround to introduce just for Mac users?

maturd avatar Apr 19 '22 16:04 maturd

@maturd Not to respond for the maintainer but, when I say "system modules", I'm referring to an app written in Apple's own Objective-C or Swift languages. VROOM TV is a native app on Apple TV, that's why it can do that. It's not as easy as enabling something for a Mac build. F1Viewer just launches playback though - it's not trying to be the player. It's not the stream URL retrieval that needs DRM support, it's the player.

I wonder if setting the useragent to be the iOS F1TV app will provide a FairPlay stream that could be viewed in QuickTime though.

anthonylavado avatar Apr 19 '22 16:04 anthonylavado

Is there a branch to test for this weekend?

howlett avatar Apr 19 '22 17:04 howlett

Is there a branch to test for this weekend?

Probably not. DRM is probably extremely hard to bypass

PostMalone avatar Apr 22 '22 08:04 PostMalone

Is there a branch to test for this weekend?

Probably not. DRM is probably extremely hard to bypass

DRM isn't hard to bypass (WV at least isn't), getting ffmpeg to playback encrypted with the key is where I'm falling down, but I know it will work if someone with FFmpeg knowledge has some time to take a look.

I was able to download an existing mpd, decrypt it, then play it back with no issues.

notarobot1337 avatar Apr 22 '22 14:04 notarobot1337

@notarobot1337 that means good things, no? Not an expert, but I mean we're at least 10% there, surely?

SamPro910 avatar Apr 24 '22 17:04 SamPro910

Can we can use mpv to view it with --demux-lavf-o=decryption_key=<key>? (--mpv-demux-lavf-o=decryption_key=<key> on iina) https://github.com/mpv-player/mpv/issues/8286

Psidium avatar Apr 25 '22 22:04 Psidium

mpv-player/mpv#8286

Not testing, there's been some progress made elsewhere though, perhaps the author could get in touch.

If you wanna test this with key msg me on TG

notarobot1337 avatar May 06 '22 21:05 notarobot1337

mpv-player/mpv#8286

Not testing, there's been some progress made elsewhere though, perhaps the author could get in touch.

If you wanna test this with key msg me on TG

This is good news. You should provide more details so author can review it.

Vallesuski avatar May 07 '22 14:05 Vallesuski

Alternatively, you could use ffplay/ffmpeg to open the stream, then pipe the audio/video output to another player of your choice (see https://stackoverflow.com/questions/44939166/ffmpeg-how-to-produce-mp4-cenc-common-encryption-videos/44949160#44949160 -decryption_key argument).

@synegic please don't suggest this option. From my research, no one has been able to successfully use FFmpeg to decrypt any Widevine, even with a valid key. If you have done it, please post proof.

He’s completely right for this suggestion as it does work with the correct set up.

As for posting proof on a public GitHub… I don’t see that as a good idea….

notarobot1337 avatar May 11 '22 08:05 notarobot1337

disclosure: I'm the developer of MultiViewer for F1, hope this is ok to post here

Since other 3rd-party apps were rendered useless for live broadcasts, I started working on my own application, which uses Electron (with content decryption module, from CastLabs). It uses the same player as F1TV, but it uses a different configuration that leads to a better sync, less stalling/buffering, and a more pleasant viewing experience overall. I was also able to add Live Timing overlays (on live sessions for now) that can be synced with the driver on-boards to show live telemetry on top of the OBC player. Still working on a better sync during replays and to allow live-timing to work on replays.

I hope to open-source it at some point, but it's already available to try (and many have tried last race):

https://beta.f1mv.com/ https://www.reddit.com/r/F1TV/comments/v35muj/sneak_peak_of_f1_multiviewer_a_desktop_app/ https://www.reddit.com/r/F1MultiViewer/

I'm also on Discord (invite on the beta site), to help other 3rd-party apps if they are using the same (web-based) approach.

f1multiviewer avatar Jun 15 '22 09:06 f1multiviewer

disclosure: I'm the developer of MultiViewer for F1, hope this is ok to post here

Since other 3rd-party apps were rendered useless for live broadcasts, I started working on my own application, which uses Electron (with content decryption module, from CastLabs). It uses the same player as F1TV, but it uses a different configuration that leads to a better sync, less stalling/buffering, and a more pleasant viewing experience overall. I was also able to add Live Timing overlays (on live sessions for now) that can be synced with the driver on-boards to show live telemetry on top of the OBC player. Still working on a better sync during replays and to allow live-timing to work on replays.

I hope to open-source it at some point, but it's already available to try (and many have tried last race):

https://beta.f1mv.com/ https://www.reddit.com/r/F1TV/comments/v35muj/sneak_peak_of_f1_multiviewer_a_desktop_app/ https://www.reddit.com/r/F1MultiViewer/

I'm also on Discord (invite on the beta site), to help other 3rd-party apps if they are using the same (web-based) approach.

Are you able to download the video right after live session ends with no DRM?

Vallesuski avatar Jun 16 '22 18:06 Vallesuski

disclosure: I'm the developer of MultiViewer for F1, hope this is ok to post here Since other 3rd-party apps were rendered useless for live broadcasts, I started working on my own application, which uses Electron (with content decryption module, from CastLabs). It uses the same player as F1TV, but it uses a different configuration that leads to a better sync, less stalling/buffering, and a more pleasant viewing experience overall. I was also able to add Live Timing overlays (on live sessions for now) that can be synced with the driver on-boards to show live telemetry on top of the OBC player. Still working on a better sync during replays and to allow live-timing to work on replays. I hope to open-source it at some point, but it's already available to try (and many have tried last race): https://beta.f1mv.com/ https://www.reddit.com/r/F1TV/comments/v35muj/sneak_peak_of_f1_multiviewer_a_desktop_app/ https://www.reddit.com/r/F1MultiViewer/ I'm also on Discord (invite on the beta site), to help other 3rd-party apps if they are using the same (web-based) approach.

Are you able to download the video right after live session ends with no DRM?

No, MultiViewer is meant to be a viewer only, not to aid downloading, for this, RaceControl and F1Viewer are still both great options :)

f1multiviewer avatar Jun 16 '22 19:06 f1multiviewer