This is exactly why movie and television piracy is still big.
If you pirate, you get high quality, ad-free video files that you can play on any device, anywhere, any time, forever. You can get any video resoultion and audio quality you want, and many (toggleable) subtitles which can be extended with third-party subtitles in post for languages the creators didn't bother to translate to. Every movie and TV show ever made is available through piracy, too. All for the low price of $0.
Or you can pay >$100/year to get stupid bullshit like this. It won't work on most devices, requires proprietary software to play back, can't be used offline in most cases, has questionable audio and video quality, is locked to specific regions, and will vanish when Netflix can't renew the contract.
I am a paying customer for Netflix and Primevideo and I just had to pirate the Altered Carbon tv series because I play it on a ultrawidescreen monitor (21:9, 3440x1440) and the Netflix web player is putting black bars all around the videos (horizontal and vertical black bars). This is because the video is supposed to be played on 16:9 with horizontal black bars only.
With the pirated version I can just tell MPV to apply an autocrop script and use much more space on my monitor.
I think this has something to do with the chrome viewport not being reported correctly on Windows I have no problems with either any browser or the UWP Netflix app.
Very true. Plus, neither the Netflix app on windows nor the web app are able to set an appropriate display refresh rate that fits the frame rate of the content when going into fullscreen mode. Unless I manually set the refresh rate in the OS display settings most Netflix content looks awful and micro-stutters on my projector.
I guess browser aren't able to do that but from a native app I expect better. This is a non-issue with MPC-HC, Kodi or any other decent video player, which are all abel to swith display modes as needed.
How dare they try to capitalize on the content I steal... If I wanted shady conglomerates with a loose relationship to morals and ethics to get my money I'd just be paying the MPAA directly!
Netflix should make it clear what the resolution of your current video is. I like to see the detail of the video playback.
Like you, I paid for the HD membership assuming that I'd get 1080p video in Firefox but I subsequently discovered that Firefox is only given a maximum of 720p. I see in this thread there's a Firefox version of the extension so I'll try that.
If I watch Netflix in Safari I get 1080p video and I've been using Safari exclusively for Netflix because of this. Here's the Netflix system requirements page where they outline the maximum resolution for each browser:
You can also see the details of your currently playing video by pressing Ctrl+Shift+Alt+D (and press again to dismiss it). It'd be nicer of Netflix if they made this information accessible via a menu item rather than an obscure keyboard shortcut.
I only noticed recently as they seem to have gotten even more aggressive about it. I often watch things fullscreen at 4K at my desk(49" TV being used as a monitor, it's basically 2x2 24" monitors) and 1080p streams, like Amazon, still look great but recently Netflix took a nose dive in quality and I couldn't figure out why. Using the Windows 10 app instead of my browser fixes the issue.
I doubt the majority of users even realize that. But since this is streamed media, does it really matter if it's 720p or 1080p in the end? I see artifacts in both versions.
All the more reasons to watch Planet Earth on blu-ray.
If you can't tell the difference between 720p, 1080p and 4k. Get a better tv/display. I was the same couldn't tell much difference till I got 4k hdr tv and played blueray files on it shit is different. Though maybe I notice it more because of hdr.
I'm guessing a lot of these comments are due to how streaming video works. 4K content on both Amazon and Netflix is very bitstarved - they stream at 15Mbit at most (might be better these days), which is VERY low for 4K content (for comparison, 4K Blu-Rays are usually encoded in something like 60-100Mbit/s). It's no surprise that there's not much visible difference between 1080p and 4K content in this case.
Could be similar for HD content as well - if you have a poor internet connection, you might not even be getting 1080p.
720p is easily visibly better than SDTV. I have more trouble telling 1080p from 720p, unless I'm very close to a large screen (computer monitor). I doubt I could tell the difference between 1080p and 4k, even on a 4k monitor.
You mean you think people will go back to 480p?! I'm sorry but that ship sailed about ten years ago and it would have been a ridiculous statement even then. And 4K is certainly not just a fad either, however tiny the perceived difference for most people.
The fact that gaining access to the 1080p stream is so trivial makes it hard not to suspect Netflix (or the content studios supplying them with content) from deliberately providing a poorer experience for users of open platforms — Netflix refuses to serve anything over 720p to users of Chrome and Firefox (or derivatives) — in order to goad you into using their proprietary clients. User/software freedom apparently is a threat to their business model.
It sucks being labelled an untrustworthy customer despite paying for 1080p content.
In Safari in macOS, Netflix uses about 10% CPU showing 1080p. With Chrome, it uses 40% playing 720p. With Firefox, it uses about 75% CPU and my fan turns on. I'm guessing it's higher on 1080p.
I don't think Netflix has any interest in you using a proprietary client. They don't gain money if you watch one way or another. They gain money if you keep paying them your monthly fee.
EDIT: Installing this extension took Chrome CPU usage to 75% for me.
Also, I'm not saying that users shouldn't be given the choice to use their CPU resources to run Netflix. Maybe it would be better if Netflix were just more transparent about it. "By default, we only display video with 720p in Chrome due to high processor usage. Click here to change that preference or watch with Safari whose direct rendering means 1080p video using less processor resources." That way, users understand the problem and can decide they don't mind other programs becoming sluggish or the fan running or whatnot. Of course, companies generally don't like giving users details.
> Of course, companies generally don't like giving users details.
The information is there but Netflix certainly doesn't make it obvious how to get to it. If you press Ctrl+Shift+Alt+D while playing a video you'll get a debug display which includes details on the video and audio codec bit rates and resolution.
I suspect this is the real reason why it's limited to 720p. It's on the web where it's not possible to identify that 1080p on a non-hw accelerated rendering device on a fast network won't suffer from playing the higher quality content. Browsers need to provide more feature detection APIs so that Netflix can enable higher quality when it knows it won't impact the end users system. Must be possible since YouTube knows when to upgrade?
If that is true, then why does Netflix categorically refuse to communicate with its customers about this issue? Or even just document it in their help pages and provide a semi-hidden switch for turning it on?
I always assumed the requirement was forced by MPAA or its equivalent bodies. I don't see what benefit Netflix could gain by forcing one browser or another, but this sort of nonsense is pretty consistent with what the DRM-happy, piracy-paranoid content owners have done in the past to "prevent piracy."
July 2016, Microsoft and Netflix make a deal to only stream 1080p to edge users.
November 2016, Intel and Netflix made a deal to only stream 4k on Kaby Lake processors.
So if you want to watch netflix on desktop, Microsoft brags about 1080p exclusivity and Intel brags about 4k exclusivity. Netflix makes bank in these deals as well as saving on bandwidth costs.
I can provide sources if anyone needs them, but you could just google.
This is the first time I've heard that Netflix has standalone desktop client o_O Apparently only available for Windows 10. Also the first time I've heard that Netflix HD is not 1080p except on some clients/browsers. I feel... cheated. Of course the difference between 720p and 1080p is not huge, especially at streaming bitrates, as evidenced by the fact that I haven't suspected anything. But still. Will have to remember to use Safari from now on.
Looking over the code it doesn't appear to be malicious. It's related to detecting if hardware acceleration is present. I'm not up-to-date on feature detection, so I'n not sure if there's a better way to know if it's available.
It sucks even more when, as in my case, their app stopped working on my Sony Android TV a year ago and just won't start again (even after resetting everything). My only option now is to use the browser version in a small Linux PC I have attached to my TV, but the resolution was noticeably worse - will try this extension though.
The one big plus about the Windows app is that is that it supports downloads, so if you’re going on a plane or train and not taking an iPad or something, you can download stuff for offline viewing, which is super nice.
It's a shame that Netflix is not allowing to download everything in their catalogue like Amazon Video does. A lot of movies and shows are not downloadable in my region.
I agree. When the feature launched last year, I asked Netflix about this specifically and was told it was about whatever studio agreements they could get. And even then, some Netflix Original content (Marvel), isn’t always available to download. From what I was told, the goal was certainly to get all future content as downloadable, but the politics behind that aren’t going to work with every studio.
Amazon has a more-limited library, but it was able to get download support (at least on mobile), early on as part of its contracts.
The problem with regions is an even bigger can of worms. Although Netflix is doing a better job trying to solidify its library across regions, it has to make separate licensing deals in every single markets in which it operartes. The licensing side of entertainment, especially internationally, hasn’t modernized the way you would think it has, and the companies or groups who own a license in one place often don’t own it in another. So sales teams have to negotiate every single title, often separately, in every single region. One of the reasons Netflix has prioritized its own original content is that it can guarantee it is licensed in all of its markets. But even then, in the early Netflix international days, there were a few instances where flagship Netflix original content wasn’t available in some markets because that content was actually co-financed by studios that sold the streaming/VOD/rental rights to other traditional networks or local streaming services. That was quickly resolved, but it just showcases how hard international licensing can be for content playback, let alone licensing for download. This is also one of the main reasons Netflix had to aggressively target VPN users who would access the larger content catalogs in other markets. In order to get more robust licensing (as well as to actually enter certain international markets), Netflix had to prove it was actively enforcing geo limits.
It sucks and I’m not defending it, just providing some of the business context.
Amazon is so limited in its international expansion with Prime Video that it hasn’t had to address most of these issues. As Prime inevitably expands, it will also face these same challenges. (Hulu, too. Though Hulu has made some international attempts, largely through partnerships with existing local services. Hulu’s dilemma is exacerbated by the fact that it is almost wholly owned by the major American broadcast networks, who already have their own robust international licensing and sales divisions that aren’t keen on being disrupted.)
Just look at the code, it's determining that h/w accel exists in Chrome OS. If it's not in this path it gets 720p as the highest resolution. This isn't some widevine/netflix joint effort that recently got leaked or something.
Yes fair point, that's the only thing happening client side.
But somebody else mentioned that widevine on chrome os and chrome are different. So I wouldn't have expected their servers to accept those 1080p requests for chrome's version.
Edit: says so on Github:
ChromeOS apparently has a different DRM implementation than chrome, even though both use Widevine.
There are two different things going on here. One is detecting Chrome OS and the other is determining the set of stream profiles. If you were to change your useragent to get Chrome OS, like the GitHub says, this would alter code paths in other areas related to DRM. However the fix that was found was simply pushing the stream profile into the array. This doesn't affect DRM at all.
The fix from the Netflix side would be to find a suitable alternative to user agent sniffing for h/w accel and swap that in to this code path.
What I am saying is: If they are blocking everything but chrome os intentionally, it would have been easier.
According to widevine docs [1] chrome on desktops does not support security level 1. They could have and probably did block access to 1080p content on level 3.
Which leads me to believe that netflix relaxed security to allow 1080p on level 3.
As you said the next step would be to replace the user agent detection client side.
I'm not entirely sure but I think Netflix might have just "fixed" this. After finishing one stream I got an error screen telling me to reload the page. After that the next stream switched back to 720p.
One thing I've always found annoying when playing Netflix in Chrome on Linux/Ubuntu is if you hit ctrl+alt+shift+s to get into the debug menu, the available bitrates are always lower than what you see available when running Windows (for the exact same title). I figured that out when some movie I had started watching on Windows had a noticeable quality degradation when I later booted into Ubuntu to finish watching.
But at least Netflix lets me watch videos in HD. Amazon Prime always plays in SD, citing some kind of HDCP violation, even though I'm using the closed-source Nvidia drivers and using a DisplayPort connection from my monitor to graphics card. It's obviously discriminating against Linux because if I boot into Windows I can play Prime videos in HD no problem.
Since the README.md doesn't explain how to actually install an unpacked Chrome extension, for the layman, I'll explain it here because it's quick and easy.
1. Download all the files for the extension into a directory.
2. Open chrome > Extensions window
3. Click "developer" checkbox
4. Click "Load unpacked extension" and select the directory
where you downloaded the extension files.
5. Tada, extension should show up in the extension page.
This is pretty cool. Much simpler than what I did to get 1080p working some time ago. I pulled out the widevine so directly from a CrOS image, replaced the one I had installed and spoofed my User-Agent.
This sounds really interesting (and more future-proof; Netflix can just choose to change the JS file with the extension technique). Can you please go into more detail on how you pulled out widevine from a CrOS image?
Sure. I figured out the relevant library was libwidevinecdm.so, normally located in /usr/lib/chromium/libwidevinecdm.so on Arch Linux with the chromium-widevine AUR package installed. I created a CrOS installation image for an x86_64 chromebook (not sure which one, I looked up a list of x86_64 ones a picked at random) using the official chrome extension (at the time, this was only possible to do from a Windows machine, not sure what the situation is rn). I mounted the rootfs of the installation image and located the libwidevinecdm.so file. I believe it was somewhere in /opt/google or something like that. This is probably the location on Google Chrome installs under GNU/Linux as well. Then I just replaced my libwidevinecdm.so with the new one. Spoofed my user agent to something containing CrOS and it magically worked. I was quite surprised then :D.
Anyway, if you don't feel like doing that (you should do it), trust me (which you should not) and are ok with a (probably) relatively old version of the binary (I don't know whether it still even works, I haven't used netflix in quite some time now), you can get it here: https://transfer.sh/pYsRz/libwidevinecdm.so
SHA256: d84e87d89d8e95ccfcd3dd86157dfd608a022e1e8bee397c3d4541a162bab5c2
If you have the most expensive subscription AND have hardware that has enough DRM builtin (eg. on a PC you need a Kaby Lake processor AND the native client or Edge (or Safari apparently)).
If you have the "HD" subscription, then it can be HD or full HD also depending on DRM details.
4K is only on certain TVs and set-top boxes/consoles (and you have to pay extra) and on Windows 10 in Edge and the Netflix app for Windows. It is a HVEC thing, so I’m not sure why macOS High Sierra can’t do it in Safari, but it can’t. You also need a Kaby Lake CPU or later (though if you have an Nvidia GTX 1050 or higher that works too).
Out of curiosity, is there a good reason for Netflix to do this? I.e., why would they be interested in providing 1080p to Safari but not Chrome, even if Chrome can do 1080p?
The most likely reason is that they have contractual agreements about how easy it is to be able to get at the data by unauthorized parties (read "the person watching the video") for various resolutions.
For example, their contracts could say that for 1080p the playback mechanism has to guarantee security all the way to screen (e.g no playback over digital video cables that don't support the requisite encryption primitives). Generally this requires support from the OS and hardware, and the relevant playback application using the relevant OS functionality.
This is why you get 1080p in IE and Safari, but Safari only on OS X 10.0.3 or later. You get 4K in Edge. You get 1080p on ChromeOS (where things are locked down in ways that prevent the viewer from exfiltrating data), but not in Chrome.
Similarly, last I checked, you could get higher resolution videos from the iTunes store on iOS or Apple TV than you could on desktop MacOS, because the latter is not as locked-down. That was a few years ago, though.
I basically pay for Netflix and still download Marvel show episodes from our famous sailor-themed website. Why? Because Netflix won't let me watch the show offline and I want to watch uninterrupted during my long commute.
That's minification. The actual source code almost certainly does `if (a) { ... }`, but the minifier will shorten that into `a&&...`, thereby saving multiple bytes. Accumulate this over different if-clauses, and you're looking at serious savings.
Ah, I see. Thanks. Interesting. The minifier must be smart enough to know that you're not doing anything with the return value, since the two aren't equivalent in that respect.
If you pirate, you get high quality, ad-free video files that you can play on any device, anywhere, any time, forever. You can get any video resoultion and audio quality you want, and many (toggleable) subtitles which can be extended with third-party subtitles in post for languages the creators didn't bother to translate to. Every movie and TV show ever made is available through piracy, too. All for the low price of $0.
Or you can pay >$100/year to get stupid bullshit like this. It won't work on most devices, requires proprietary software to play back, can't be used offline in most cases, has questionable audio and video quality, is locked to specific regions, and will vanish when Netflix can't renew the contract.