robvdpol / RaceControl

Race Control is a standalone, open source F1TV client for Windows, written in C# on the .NET platform.
GNU General Public License v3.0
1.19k stars 95 forks source link

[BUG] 2022 Australian Practice 2 sessions play static #417

Open d-henness opened 2 years ago

d-henness commented 2 years ago

*Describe the bug** Instead of playing the 2022 Australian Practice 2 sessions (F1 Live, International, driver cams, etc.) static is shown instead. Other sessions, (P1, other years, etc.) do not seem to be affected.

To Reproduce Steps to reproduce the behavior:

  1. 2022 Australian Practice 2 session.
  2. Try to watch any video

Expected behavior See bug description

Desktop (please complete the following information):

F1TV account

Additional context Add any other context about the problem here.

anthonylavado commented 2 years ago

This is because the FP2 session still has DRM enabled on it. We'll have to see if it gets removed in a few more hours. Partial duplicate of #413.

zRo-ToLeRaNcE commented 2 years ago

This is because the FP2 session still has DRM enabled on it. We'll have to see if it gets removed in a few more hours. Partial duplicate of #413.

Is this something we need to lobby F1 to remove?

I actually came to report the same bug. It's only happening on Live events.

Update - I read the connected threads and understand the issue a little more.

anthonylavado commented 2 years ago

@zRo-ToLeRaNcE Well, you could contact them, but I doubt they'd listen. Anyway, Rob (the developer of this app) is working on a way to support the protected streams, so we'll just have to be patient. This issue (and comments like it) are only just adding more notifications sadly.

T0m0rr0w commented 2 years ago

Well you're a step ahead then because i cant even start RaceControl due to the login issue. Perhaps that should be the priority to fix. Atleast people could see older streams that do not have the DRM.

I played around with RaceControl.settings.json and manually adding SubscriptionToken and LastLogin values but it still errors out. If i close the login box then the whole program shuts down. So in it's current state it is unusable regardless of livestream DRM.

WesselKroos commented 2 years ago

I've been able to create a working Windows application with support for multiple screens as a personal replacement while Rob is fixing the Race Control app. It is missing a lot of features of the Race Control app and I'm not planning to implement all his features. It's just a replacement for this race weekend.

The app is open source, named Race TV Multiplayer and you can download it here: Race TV Multiplayer - Installation instructions

I had to wrap the F1 TV site and implement support for the Widevine DRM to make it work.

PS: @robvdpol Feel free to remove my comment if links to temporary alternative apps are unwanted on your github issues.

imnotnoa commented 2 years ago

Well you're a step ahead then because i cant even start RaceControl due to the login issue. Perhaps that should be the priority to fix. Atleast people could see older streams that do not have the DRM.

I played around with RaceControl.settings.json and manually adding SubscriptionToken and LastLogin values but it still errors out. If i close the login box then the whole program shuts down. So in it's current state it is unusable regardless of livestream DRM.

DRM will still be an issue, i've made a build of the latest source which fixes login but not DRM, so you can't view live broadcasts yet.

https://github.com/dhuit90/RaceControl/releases/tag/2.6.3-unofficial

JustJoostNL commented 2 years ago

@dhuit90 the login screen is blank for me, what to do?

robvdpol commented 2 years ago

@dhuit90 the login screen is blank for me, what to do?

That's an issue I'm trying to solve, seems to be a problem with WebView2. And the reason the release is not out yet ;)

JustJoostNL commented 2 years ago

@dhuit90 the login screen is blank for me, what to do?

That's an issue I'm trying to solve, seems to be a problem with WebView2. And the reason the release is not out yet ;)

Ahh, I understand, good luck fixing it Rob!

imnotnoa commented 2 years ago

@dhuit90 the login screen is blank for me, what to do?

I'll look into this, something userdata / cache folder related I guess

robvdpol commented 2 years ago

@dhuit90 the login screen is blank for me, what to do?

I'll look into this, something userdata / cache folder related I guess

I changed the code yesterday to put userdata folder in local appdata, but that still didn't solve it for me. It seems to happen when you install Race Control into Program Files.

imnotnoa commented 2 years ago

@dhuit90 the login screen is blank for me, what to do?

I'll look into this, something userdata / cache folder related I guess

I changed the code yesterday to put userdata folder in local appdata, but that still didn't solve it for me. It seems to happen when you install Race Control into Program Files.

Correct, but running it in production seems to ignore the UDF set,

e.g.:

    private async Task InitializeWebViewAsync()
    {
        var userDataFolder = FolderUtils.GetWebView2UserDataPath();
        var environment = await CoreWebView2Environment.CreateAsync(userDataFolder: @"D:\test");
        await WebView2.EnsureCoreWebView2Async(environment);
    }

This creates an EBWebView folder (with content) in D:\test\ while running in VS, but not while running in prod.

robvdpol commented 2 years ago

The problem I'm running into is that it can't find the WebView2Loader.dll when I install Race Control using the MSI, even though the DLL is there (in runtimes\win-x64\native). When I simply run Race Control from the publish folder it works fine... very weird since that's the exact folder structure the MSI installs. When I copy WebView2Loader.dll to the main Race Control folder then the MSI version also works.

I'm trying to create a copy task in postbuild or postpublish event but the problem is that the installer doesn't include the copied file, only the files that were part of the original build and publish targets.

Edit: found a workaround