Alex313031 / Thorium-Win-AVX2

Repo to serve AVX2 Windows builds of Thorium. https://github.com/Alex313031/Thorium/
https://thorium.rocks/
BSD 3-Clause "New" or "Revised" License
358 stars 9 forks source link

Netflix doesn't work #84

Closed maxwowpow closed 10 months ago

maxwowpow commented 1 year ago

System Details

Problem Netflix Browser Error Code M7121-1331

Screenshots 2023-05-18 19_19_52-Clipboard

Additional Notes Widevine Content Decryption Module - Version: 4.10.2557.0 Status - Component already up to date

https://bitmovin.com/demos/drm

2023-05-18 19_24_02-DRM Secure Stream Test using HTML5 Video Player _ Bitmovin - Thorium

gz83 commented 1 year ago

@maxwowpow

Does version 112 have this problem?

maxwowpow commented 1 year ago

yes.

gz83 commented 1 year ago

@maxwowpow

Does it work in non-incognito mode?

Also, please open the chrome://components/ page and check the status of the Widevine Content Decryption Module component to see if it is up to date and if you can get the version number.

maxwowpow commented 1 year ago

No. Incognito is mentioned because it supposed to be clean as possible without cookies and userdata.

Widevine Content Decryption Module - Version: 4.10.2557.0 Status - Component already up to date

nicklvh commented 1 year ago

i have this issue too

gz83 commented 1 year ago

Is there still a problem that Netflix cannot play? If it still exists, please open the following two pages when the problem occurs, and upload all the content under these two pages to here, so as to locate the problem

chrome://media-internals/#cdms

chrome://histograms/#Media.EME

@maxwowpow @nicklvh

nicklvh commented 1 year ago

image image image image

gz83 commented 1 year ago

@nicklvh

Is it convenient for you to check the widevine components according to the guidelines in this reply?

https://github.com/Alex313031/Thorium-AVX2/issues/84#issuecomment-1557250742

nicklvh commented 1 year ago

@nicklvh

Is it convenient for you to check the widevine components according to the guidelines in this reply?

#84 (comment)

i dont understand? image if this is what ur talking about then here

gz83 commented 1 year ago

You need to go to the following page to confirm the status of the widevine component chrome://components/

@nicklvh

maxwowpow commented 1 year ago

PS: same on the Mac M2 version 112

gz83 commented 1 year ago

@maxwowpow

Is it convenient for you to follow the instructions in the comments below to troubleshoot?

https://github.com/Alex313031/Thorium-AVX2/issues/84#issuecomment-1574893704

maxwowpow commented 1 year ago
Clear Key ("org.w3.clearkey") is always supported and not listed here.
Empty video codec profile list means we are not differentiating and assume all profiles are supported.
Codecs marked with "*" signals clear lead not supported.
Key System: com.widevine.alpha
Robustness: Software Secure
Name: Widevine Content Decryption Module
Version: 4.10.2557.0
Path: /Users/x/Library/Application Support/Thorium/WidevineCdm/4.10.2557.0/_platform_specific/mac_arm64/libwidevinecdm.dylib
Status: Enabled
Capabilities: {"Audio Codecs":["aac","vorbis","flac","opus"],"Encryption Schemes":["CENC","CBCS"],"Session Types":["temporary","persistent-license"],"Video Codecs":{"av1":[],"h264":[],"vp8":[],"vp9":[]}}

histograms.txt

gz83 commented 1 year ago

There is a suspected exception with the widevine component, I will discuss this with Alex

Alex313031 commented 1 year ago

@gz83 @maxwowpow @nicklvh We will be releasing M113 for MacOS soon.

You guys can try it and see if it fixes the problem.

@midzer When you build, can you make sure the widevine args are correct.

Also, @maxwowpow why did you file this issue in this repo, if you are on Mac?

Alex313031 commented 1 year ago

https://github.com/Alex313031/Thorium-Win/issues/48

gz83 commented 1 year ago

image

Please open the chrome://flags page and open the three experimental flags shown in the image to see if it solves the problem you are experiencing.

@maxwowpow @nicklvh

maxwowpow commented 1 year ago

same error / not solved. ps: macos is only added for the fullness. the original problem is with windows.

Alex313031 commented 1 year ago

I will be migrating the windows builds to a non-component widevine, and see if it fixes the problem.

Alex313031 commented 1 year ago

@maxwowpow @nicklvh Try 114 release, it should be fixed now.

MulverineX commented 1 year ago

@Alex313031 I tried the latest release on Windows 11, Thorium doesn't start

gz83 commented 1 year ago

If it is the windows version, only the avx2 version has been released, if your hardware does not support it or there are problems with the system, then the browser will definitely not open properly, the regular avx version for windows system will be released in the near future.

@MulverineX

maxwowpow commented 1 year ago

Thanks,

first try not successful, same error.

Key System: com.widevine.alpha
Robustness: Software Secure
Name: Widevine Content Decryption Module
Version: 4.10.2557.0
Path: ...\Thorium\USER_DATA\WidevineCdm\4.10.2557.0\_platform_specific\win_x64\widevinecdm.dll
Status: Enabled
Capabilities: {"Audio Codecs":["aac","vorbis","flac","opus","dts","dtsx-p2","dtse"],"Encryption Schemes":["CENC","CBCS"],"Session Types":["temporary","persistent-license"],"Video Codecs":{"av1":[],"h264":[],"vp8":[],"vp9":[]}}
Key System: com.widevine.alpha
Robustness: Hardware Secure
Name: Google Widevine Windows CDM
Version: 1.0.2512.0
Path: ...\Thorium\USER_DATA\MediaFoundationWidevineCdm\x64\1.0.2512.0\Google.Widevine.CDM.dll
Status: Enabled
Capabilities: "No Capability"
Key System: com.widevine.alpha
Robustness: Software Secure
Name: Widevine Content Decryption Module
Version: 4.10.2652.1
Path: ...\Thorium\USER_DATA\WidevineCdm\4.10.2652.1\_platform_specific\win_x64\widevinecdm.dll
Status: Enabled
Capabilities: {"Audio Codecs":["aac","vorbis","flac","opus","dts","dtsx-p2","dtse"],"Encryption Schemes":["CENC","CBCS"],"Session Types":["temporary","persistent-license"],"Video Codecs":{"av1":[],"h264":[],"vp8":[],"vp9":[]}}

histograms.txt

gz83 commented 1 year ago

Try uninstalling the existing version and reinstalling it, also there is a problem with widevine in the M114 branch according to the upstream bug report.

By the way, would you mind sending the URL of the netflix video that is not playing properly?

@maxwowpow

MulverineX commented 1 year ago

@gz83 it would be any episode/movie on the site. Only the non-drm preview videos load.

maxwowpow commented 1 year ago

Using portable version (zip).

Alex313031 commented 1 year ago

@MulverineX @maxwowpow @gz83 This is pissing me off that it's not working!!

@gz83 Im going to make a debug build and test Netflix in a Windows 11 VM

maxwowpow commented 1 year ago

The question in the room: did it ever worked with any chromium based browsers? I mean yes on Linux some 2 years ago, but don't want to provide wrong facts. Personally I'd not be excluding the the active blocking by netflix.

Alex313031 commented 1 year ago

@maxwowpow I have watched netflix on linux and windows with both chromium and thorium, as recently as last month.

This is a new issue, and is either the widevine media foundation path is not working, or netflix tightened their restrictions on widevine verified media path. Since thorium is not signed (like google chrome), if this is netflix's fault, then there isn't anything I can do.

MulverineX commented 1 year ago

In that event could it be spoofed?

etil2jz commented 1 year ago

I'm experiencing the same issue with other DRM websites. Tried to manually install the WidevineCdm plugin, unsuccessful.

maxwowpow commented 1 year ago

tested portable version of chrome and it doesn't work either.

anyone know what's the default path for the widevine plugin? a symlink could be a workaround if it's the culprit.

C:\path_to_chrome+cdn <<==>> <your_external_location>

Alex313031 commented 1 year ago

@maxwowpow @MulverineX @nicklvh @etil2jz @gz83 Upon further investigation, this is not a bug in Thorium. All Thorium builds will have this issue, and all Chromium builds (like from woolyss) will have this issue.

It is related to Google tightening restrictions with the latest Widevine release, and some streaming sites updating at the same time (as per internal guidance from Google, who makes widevine, no doubt) to now require VMP (Verified Media Path), which requires signing your application with a .sig file from widevine, something very expensive to do.

For example the comment about the default path to widevine or symlink, this is not the issue. Widevine is installing and registering properly.

Sites that work just fine: Hulu, Apple Music, Paramount Plus.

Sites that do not work: Netflix, Spotify.

If you want to watch Netflix, you will either have to use Chrome or Firefox, or, I made a streaming app based on Castlabs Electron fork, which they offer a VMP signing service. However, this service only works on their fork (which is not open source), so it's not like I could use it to (illegally mind you, even if it did work) sign thorium for free.

Anyway, the app is called Quark Player, and I use it on Windows for Netflix > https://github.com/Alex313031/quark-player

TLDR: Netflix is permanently broken on Chromium and Thorium, due to factors outside of my control. Use Chrome, Firefox, or Quark Player for Netflix.

MulverineX commented 1 year ago

So someone would have to essentially reverse engineer the compiled Castlabs binaries. Yikes, this is really terrible for the open internet. Pirates will always find a way, all they're doing is making the experience worse for end users. DRM sucks.

MulverineX commented 1 year ago

This could be done "legally" if a patch tool was created that downloaded the Castlabs binary on the fly and patched the target browser, but thats very contrived and would take way more effort than eg. Spigot Buildtools.

Alex313031 commented 1 year ago

@MulverineX I'm thinking of seeing how their signing python script works. I know it checks for a magic string that is only present in their electron binaries. I tried running the signing script on thorium, and vanilla electron, with it reporting a "binary not valid" error. If I could somehow spoof the string, or even compile it into thorium, it might be possible to do it. But then we are getting into illegal territory. I might see how much it would cost to get a widevine license for thorium, and maybe set up a gofundme or something. I know that brave browser signs their binaries (both signing with widevine, and signing the installers with a microsoft cert). Maybe I could ask them how they went about it. But even though they are open source, they still get quite a bit of money from ad revenue and donations, so they can afford it.

And yeah DRM sucks. But I see both sides of the coin. If netflix for example, had no widevine at all, and just streamed the videos as a normal \<video> html element, nothing would stop everyone from simply right clicking and "save video as". Then netflix would not make any money, and the companies producing the content would not get any money. So then what's their incentive to produce anything or continue as a company.

And yeah, pirates will always find a way. Their are underground warez groups that post movies and shows from streaming sites to yify and piratebay. They either use a hacked capture card, or (at least in the past), their have been made cracks for widevine. Thats one of the reason widevine is updated every couple of months.

vairag22 commented 11 months ago

I might see how much it would cost to get a widevine license for thorium, and maybe set up a gofundme or something. I know that brave browser signs their binaries (both signing with widevine, and signing the installers with a microsoft cert). Maybe I could ask them how they went about it. But even though they are open source, they still get quite a bit of money from ad revenue and donations, so they can afford it.

About 2yrs ago same thing was discussed in the ungoogled-chromium repo. You might want to check it out. ungoogled-chromium Issue#1258

TLDR; you need to be a registered company and pay Google a lot of money to get a VMP cert.

Alex313031 commented 11 months ago

@maxwowpow @nicklvh @MulverineX I have contacted both Widevine.org directly, and CastLabs (Which makes the Electron fork with Widevine that is signed, that I use for Quark Player and other projects use as well like Apple Music), and the price for a license is above 5,000 $US.

That said, unless Thorium becomes really big (relatively) like Brave or Vivaldi, there's no way I could get enough community funding for this. And it is not something I can pay out of pocket for, considering it's an open source hobby project and I don't even have a car right now.

So, sadly, the only thing to do is use a big name browser, use quark player or another app similar to it, or sail the high seas.

MulverineX commented 11 months ago

The easiest way to stop piracy is not by putting anti-piracy technology to work. It's by giving those people a service that's better than what they're receiving from the pirates.

Gabe Newell

Gotta love how quickly media company's forgot this lesson a few short years after Steam & Netflix taught it.

maxwowpow commented 11 months ago

irony of irony - I didn't open this to watch netflix myself (I rarely do), but rather make the Thorium better. Anyone has 2-3+ browsers, so the pain is manageable :) Let's close this? The issue still can be searched and linked.

kkm commented 11 months ago

image I think there are new chrome with new widevine from google widevine.

image

Alex313031 commented 11 months ago

@kkm That is the media foundation widevine, which is seperate from the main one. In any case, it is a combination of both Widevines being updated, and some streaming services (like Netflix) requiring VMP (read comments above about that).

Lukas-drz commented 9 months ago

@maxwowpow @MulverineX @nicklvh @etil2jz @gz83 Upon further investigation, this is not a bug in Thorium. All Thorium builds will have this issue, and all Chromium builds (like from woolyss) will have this issue.

It is related to Google tightening restrictions with the latest Widevine release, and some streaming sites updating at the same time (as per internal guidance from Google, who makes widevine, no doubt) to now require VMP (Verified Media Path), which requires signing your application with a .sig file from widevine, something very expensive to do.

For example the comment about the default path to widevine or symlink, this is not the issue. Widevine is installing and registering properly.

Sites that work just fine: Hulu, Apple Music, Paramount Plus.

Sites that do not work: Netflix, Spotify.

If you want to watch Netflix, you will either have to use Chrome or Firefox, or, I made a streaming app based on Castlabs Electron fork, which they offer a VMP signing service. However, this service only works on their fork (which is not open source), so it's not like I could use it to (illegally mind you, even if it did work) sign thorium for free.

Anyway, the app is called Quark Player, and I use it on Windows for Netflix > https://github.com/Alex313031/quark-player

TLDR: Netflix is permanently broken on Chromium and Thorium, due to factors outside of my control. Use Chrome, Firefox, or Quark Player for Netflix.

Is there a version that can be installed and works without VMP ?

gz83 commented 9 months ago

VMP validation is mandatory and cannot be disguised or bypassed. If Widevine exists, there must be VMP.

@Lukas-drz

Lukas-drz commented 9 months ago

Thanks Then how do VMP is processed ? What do I need to do/wait for it to be on my browser and start using Spotify ?

gz83 commented 9 months ago

Currently, Spotify can only be used using browsers or software that can pass VMP verification.

@Lukas-drz

Lukas-drz commented 9 months ago

Thorium can't pass it ? I managed to have it working

gz83 commented 9 months ago

Thorium currently cannot pass VMP verification. If it could pass VMP verification, there would not be so many feedback related to Widevine.

@Lukas-drz

Lukas-drz commented 9 months ago

Okay then see that : passed not_passed I don't know how but sometimes after rebooting the thorium browser, the folder : ~/.config/thorium/WidevineCdm/ is no more empty and contains :

├── 4.10.2710.0 │   ├── LICENSE │   ├── manifest.fingerprint │   ├── manifest.json │   ├── _metadata │   │   └── verified_contents.json │   └── _platform_specific │   └── linux_x64 │   └── libwidevinecdm.so └── latest-component-updated-widevine-cdm

5 directories, 6 files And now it works on spotify

MulverineX commented 9 months ago

IIRC lots of sites haven't updated to use VMP yet, thats why this issue is specifically titled for Netflix. Widevine support isn't completely broken as you've shown, but all sites are likely to transition to VMP eventually.