RaceControl icon indicating copy to clipboard operation
RaceControl copied to clipboard

[BUG] DRM Enabled on Live Sessions and Instant VOD

Open anthonylavado opened this issue 2 years ago • 33 comments

Describe the bug Attempting to play the race for the Saudi Arabian GP results in a garbled feed, if it plays at all. The error persists with MPV, VLC, and the built in player.

To Reproduce Steps to reproduce the behavior:

  1. Open RaceControl and log in.
  2. Select 2022 Season, Saudi Arabian Grand Prix, and Race session.
  3. Click button to watch any of the listed feeds.
  4. See error, or no playback.

Expected behavior The video feed should playback as it normally would.

Screenshots playbackissue

Desktop (please complete the following information):

  • Windows edition and version: Windows 10 Pro, 21H1 (19043.1586)
  • System type (32 or 64 bit): 64 bit
  • Version (see title bar): 2.63 (also tested in 2.6.2 and 2.6.1).

F1TV account

  • Subscription type (none, Access, Pro): Pro
  • Country: Canada
  • Using VPN or proxy?: No

Additional context Clicking the Copy button to get a URL for the race session is a link to an MPD as opposed to an M3U. In the web player, it's currently known that Saudi Arabia is the first race replay to keep the DRM active, as opposed to Bahrain. All other sessions seem to work and return M3U URLs, but not the race.

Update: DRM appears to also be active on the Post-Race Show as well.

anthonylavado avatar Apr 04 '22 21:04 anthonylavado

I was afraid this would happen sooner or later. I guess the MPD-file is needed for DRM and they are gradually implementing it. As far as I know FFMpeg does not (or can not) support DRM, so we're kind of screwed here.

One option I have been playing around with in the past is using an Edge webbrowser control that contains a VideoJS control. It seemed to work fine so I might have to look into it again. This should be able to support DRM as well.

robvdpol avatar Apr 05 '22 07:04 robvdpol

Random spontaneous update - it seems to be working now. I'm not sure why. The DRM has been turned off and now an M3U URL is being returned.

Edit: So the DRM has been disabled on the race session, but it's still present on the Post-Race Show. I'm trying to save the network calls now to have something to compare with.

anthonylavado avatar Apr 05 '22 07:04 anthonylavado

To whom it may concern **** you. Seriously I know F1 is reading this, at least before you do this 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

Uh-Oh, the DRM seems to be back for the Australian race. I'm unable to watch via RaceControl and get a black screen with glitches.

Creativesz avatar Apr 08 '22 06:04 Creativesz

As far as I know FFMpeg does not (or can not) support DRM, so we're kind of screwed here.

If I've seen it correctly certain builds of ffmpeg have configuration called "--decryption_key". Might be worth looking into it.

D3XX3R avatar Apr 10 '22 07:04 D3XX3R

--demux-lavf-o=decryption_key=<key> this should fix it for mpv i think

morgun avatar Apr 10 '22 09:04 morgun

One option I have been playing around with in the past is using an Edge webbrowser control that contains a VideoJS control. It seemed to work fine so I might have to look into it again. This should be able to support DRM as well.

I did install the Microsoft Edge WebView2 Runtime on my system and use RC 2.6.4. But todays race I had this DRM issue, any thoughts if I can do something about it? IMG_20220410_085122

rvdeijk avatar Apr 10 '22 10:04 rvdeijk

Is still still persistent right now? I had it this morning but could watch normally after a bit. Only things I did were:

  • Watch the race through the F1 website for a bit
  • Relog in Race Control

Spexxel avatar Apr 10 '22 10:04 Spexxel

I had the same this morning, ended up watching the race in webbrowser

BeanXOfficial avatar Apr 10 '22 11:04 BeanXOfficial

Just as an information, I tried to cast the International stream for the race of the Australian GP. The chromecast never started the playback.

However, since Chromecasts actually supports Widevine, you might be able to fix it more easily than Desktop playback.

sidewinder94 avatar Apr 11 '22 18:04 sidewinder94

Hi Rob, Maybe this helps you.

widevine-l3-decryptor https://github.com/cryptonek/widevine-l3-decryptor

Widevine in MPV https://github.com/mpv-player/mpv/issues/8286 Digital Rights Management (DRM) content --demux-lavf-o=decryption_key= should work.

rickschwarz avatar Apr 20 '22 12:04 rickschwarz

Hi @robvdpol , Leonardoxh seems to have found a solution for the DRM issue. https://github.com/leonardoxh/race-control-tv/releases/tag/v2.6.2

At least in the AndroidTV app. Perhaps this solution could put you in the direction of a solution for DRM issue in RaceControl.

Edit: update! Seems that https://github.com/leonardoxh/race-control-tv/releases/tag/v2.6.2 als still has DRM issues. Only FP1 on friday worked fine (possibly without DRM from the side of F1TV?), but since Sprint on friday live sessions don't show in RaceControl.

mhil70 avatar Apr 22 '22 10:04 mhil70

Damn, FOM really removed Widevine there quickly. Already giving an .m3u8 for me, both Post-Race show, AND GP

SamPro910 avatar Apr 24 '22 17:04 SamPro910

I am guessing this is the right thread, as a bunch of others reference this one.

Basically right now i cannot watch the pre qualy live show for miami, is no error, just no stream starts neither sound or video, empty video window.

However I can watch VOD's fine, using 2.6.4. and webview is installed.

chrcoluk avatar May 07 '22 19:05 chrcoluk

Any luck yet for an update for the DRM issue ?

rickschwarz avatar May 08 '22 14:05 rickschwarz

Ok so F1TV killed the app that made it all worth it. Too bad, If I have to screw around with browsers to achieve the same I can stick with viaplay and cancel the subscription.

knokerwt avatar May 08 '22 17:05 knokerwt

For what it's worth, I raised this in chat with F1TV support and received this in response:

The information you provided is actually accurate and I truly apologize for the inconveniences you are currently experiences in watching F1 live races. Our technical team are working on some improvements and coordinating with certain people to somehow let our customers still access in F1 in different devices as well as race control. This is for us to continue to protect our services F1 recently implemented measures to ensure we are well protected against bot attacks.

Bolded sounds of interest if true. I know the Race Control User-Agent used to be exempted from some checks (I don't recall which, exactly) and perhaps they're working with @robvdpol on something? Here's hoping..

rglastra avatar May 14 '22 11:05 rglastra

Hi Rob, sounds promisses !

rickschwarz avatar May 14 '22 13:05 rickschwarz

Promissing

rickschwarz avatar May 14 '22 13:05 rickschwarz

For what it's worth, I raised this in chat with F1TV support and received this in response:

The information you provided is actually accurate and I truly apologize for the inconveniences you are currently experiences in watching F1 live races. Our technical team are working on some improvements and coordinating with certain people to somehow let our customers still access in F1 in different devices as well as race control. This is for us to continue to protect our services F1 recently implemented measures to ensure we are well protected against bot attacks.

Bolded sounds of interest if true. I know the Race Control User-Agent used to be exempted from some checks (I don't recall which, exactly) and perhaps they're working with @robvdpol on something? Here's hoping..

Any further information about this?

JustJoostNL avatar May 28 '22 09:05 JustJoostNL

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 14 '22 13:06 f1multiviewer

@robvdpol The DRM issue (playing 'live' sessions) is resolved by @leonardoxh in : https://github.com/leonardoxh/race-control-tv/releases/tag/2.7.0 https://github.com/leonardoxh/race-control-tv/issues/119

Perhaps the solution there is usable for RaceControl as well?

mhil70 avatar Jul 02 '22 11:07 mhil70

This is really great. I hope f1viewer (Linux) and RaceControl (Windows) gets the proper updates to bypass DRM.

Hopefully f1viewer and RaceControl developers are still available to continue upgrading these great tools.

Vallesuski avatar Jul 02 '22 16:07 Vallesuski

I hope f1viewer (Linux) and RaceControl (Windows) gets the proper updates to bypass DRM.

I just want to make sure we're clear here, neither MultiViewer nor Race Control TV "bypass" DRM. These players both just support DRM-protected playback, because they both use Widevine CDM. They added the needed configuration for Widevine here. This requires the player to have a way to playback DRM-protected content in the first place. MultiViewer uses electron-ecs to be able to do that, and I think Android includes it by default (since Google is the owner of Widevine, that makes sense).

@leonardoxh if you want to talk or exchange information, on the website I've got a Discord invite and a #technical channel. If you're interested. I might not have open sourced anything yet, but I don't have anything to hide either :)

f1multiviewer avatar Jul 03 '22 10:07 f1multiviewer

In all honesty the configuration with Android exo player was a breeze I just had to set the correct URL and headers in order to make it work.

What I understood from this project is that there is a need to swap the player because the current one doesn't support it, so going to a web player seems the way.

@f1multiviewer sure, I can join the discord channel and help where needed (if I can)

leonardoxh avatar Jul 04 '22 10:07 leonardoxh

@leonardoxh awesome! If you do consider adding similar functionality as F1MV, such as live timing overlays, let me know, happy to share all the info I've gathered so far :)

f1multiviewer avatar Jul 04 '22 10:07 f1multiviewer

hi all, isn't there any progress on racecontrol anymore?

zierbeek avatar Aug 22 '22 10:08 zierbeek

I was planning on taking a crack at it this or next week to see if we can get a temp workaround

Spexxel avatar Aug 22 '22 11:08 Spexxel

hi all, isn't there any progress on racecontrol anymore?

Not at the moment, I don't really have much time to work on it right now. I did some fiddling around with an Edge Webview2 control but I couldn't get it to work.

If @Spexxel can come up with a solution that would be very welcome of course.

robvdpol avatar Aug 23 '22 08:08 robvdpol

Let me know if I can help, and feel free to join the #technical channel on Discord (https://discord.gg/HwnFWCf8Ht) to discuss more technically. @robvdpol does Webview2 ship with a Widevine CDM?

f1multiviewer avatar Aug 23 '22 08:08 f1multiviewer