Netflix's new player breaks the ability to modify the seeking of a playing video
plopdown.video
plopdown.video
Some engineer was asked to make a feature. That feature happened to break 3rd party seeking. It probably wasn't intentional, just incidental.
Because they have no internal requirement to support this, nor anyone/anything testing for it, it silently broke.
It was probably not malicious, even if it feels like a step backwards to this extension developer.
Whether it _should_ be fixed of course, is a different matter, but when I see statements like "DRM vendors REALLY want you to buy a smart TV"[1] I frown, as it is contains an assumption of intent that I suspect isn't there.
[1] https://news.ycombinator.com/item?id=28896614
Edit: The title of the article (and original title here) is "Netflix's new player is an open web nightmare". My response is written in response to this sort of inflammatory language.
The strange thing was that people from all over the internet wanted to get in on the controversy and anger, even when they didn’t use the software that broke. This created a weird incentive for software authors to complain loud and wide about any breaking changes because it became free advertising for their software. We tried quietly helping some of them fix their software with hints, but that quickly became an avenue for “<company> caves to pressure from angry customers” stories that only made our problem worse.
Over time this created a weird, unhealthy dynamic where parts of the community felt entitled to special treatment from the company. Some of them felt like they were stakeholders in the company and that we were obligated to incorporate them into the development process.
At worst, it reminded me of some of the “parasocial” relationships described in social media situations, where the followers start to feel like they were owed much more than regular customers due to their dedication as super customers. Even worse, some of them had their own YouTube channels, newsletters, or Discord communities for our products and would often threaten to turn them against us if we didn’t do what they wanted. That part was especially saddening.
So the controversy can start sooner?
>The problems occur when company thinks theyre God and their software is controllable - it's not.
This isn't some github project. This is proprietary software owned by Netflix. This isn't "the community" getting upset, this is a small group of people using closed source software in a way that wasn't intended. Most people using Netflix just use it the way Netflix wants them to.
It's unreasonable to expect Netflix to deliver a feature that they have no interest in providing and never promised to.
I use a lot of software that relies on apis like that and it breaks constantly, that's just the way it goes.
This is the part of PR that I fail to grasp. At a certain point, couldn't you just post "fuck you" on twitter and disregard the noisy mess? Would 100% of everyones' customer base actually walk away from them if they don't play "the game" on social media just right?
You might want to engage with 3rd party developers, but it's clear that it would quickly become much more work than supporting in-house clients. When the server team unintentionally breaks an in-house client, they don't start a big distracting PR war about it; and when an in-house client unintentionally breaks the server, there's leverage to fix the client (or the server) and insight into how the fixed client deployment is going.
It can also be difficult to fix sensitive or just complex issues in a coordinated way when there's unequal access as happens with in-house and 3rd party development. Being non-transparent is easier; although certainly less desirable to many.
If you have a compelling product, people often don't follow through on their plans to drop it.
So I don't see much reason for Netflix have a deprecation cycle for undocumented functionality that a third party extension relies on. If you want to rely on internals, don't be surprised when they change.
This is the issue I have with this change, I'm following all the rules here and those rules apply to every video provider on the web for rendering video.
While I don't think it was purposeful, it certainly needs to be called out that crashing the entire page is certainly nonstandard behavior for a <video> element.
I just dealt with cross-browser issues in how setting currentTime on <audio> is handled because I needed a player to resume from a preset time.
On WebKit browsers, including desktop safari and all iOS browsers, you must wait for the ‘dataloadded’ or ‘canplay’ events to fire before trying to set currentTime.
On desktop Firefox / Chrome, you must set currentTime immediately prior to .play() or it won’t pick it up.
For automation, this is likely because you company did not provide proper official API do to proper automation. Many companies do not, nexflix does not. So people have to hack around internals to make the things do what they want.
I am still at a loose why companies, and devs are such control freaks they only want people to use their software / hardware in the exact way they want them do, offering no other control options, automation API;s or any other "power" features". It is their way or the highway... and screw you if you do not like it
The GSuite (or whatever they call it these days) google groups UI is hot garbage. However, I finally figured out how to open a group -- effectively a mailing list -- to the public internet. This was carefully documented in our internal wiki because, again, UI is hot garbage.
Google has too many PMs, so someone decided to go screw with the UI. It is now not much easier, but it is different, so I had to spend another hour figuring out how to do the same thing. For your "convenience" as a customer, the change has invalidated the vast majority of help text on the internet helping users work around the deficiencies in Google's UI.
And that is why users hate change: the previous UI might not have been good, but we'd already figured out how to use it. So a change creates work with zero benefit to us.
This is part of why Windows doesn't update the old Control Panel screens - the UI is the API for automation like this, and backwards compatibility matters more than consistency.
The new UIs won't allow you to keep open the Bluetooth config panel at the same time as the Windows Update config panel, for instance, as they share the One True Config Window. You can only view one at a time. A little ironic for an operating system named for its ability to run multiple UIs at once.
Fortunately many of the old config UIs are still there on Windows 10, especially for more advanced points of configuration.
I imagine the old UIs are also more resource-efficient, for what that's worth, following the usual trend with UI toolkits.
It's like everything has to be touch friendly. Understood that this is great in some cases. But on my desktop PC it's not. I didn't buy a big screen to have half of it filled with empty space.
When social networking was nascent, there was this assumption that decentralized voices would help get truth out faster than could ever happen, and the principals of democracy would flourish. While that sometimes happens, it seems more often than not public opinion falls victim to conspiracy theories aided by cognitive biases (especially confirmation bias) and those who purposefully wish to distort.
What’s saddest to me is that I’ve come to the conclusion that the genie cannot be put back in the bottle. We cannot expect that technology will go backwards, and the only viable option is the China one of absolute information control, which itself is scary. Those who do not adopt this will be vulnerable to outside control and inside dark forces, and those who do will create a censorship authoritarian state.
There is an obviously better alternative, which is non-centralized moderation.
This is HN. It's moderated. It's not moderated by a government or Mark Zuckerberg and it has no monopoly on the dissemination of information, so if you don't like the moderation here you can go somewhere else and there are in actual fact other places to go.
That works.
The real problem right now is that the biggest platforms are too big/centralized, which means you get chokepoints that attract hamfisted bureaucratic censorship instead of vigorous competition for high quality moderation.
If all you’re depending on is others to upvote and downvote, then you information bubbles are easy to form. Facebook is notoriously bad for exactly this reason, as are forums that attract certain demographics / ideologies.
"The China one of absolute information control" doesn't fix any of that, because the censors have no better information than anyone else about what is actually true. And bad incentives to suppress things they know are true but don't want to get out.
The answer is, again, decentralized moderation. Subject matter specific discussion forums where the moderators are steeped in the subject matter and know better than the average man in the street or government bureaucrat what is and isn't malarkey.
This is emphatically not what Facebook does which is why Facebook is a dung fire.
The problem with Facebook is that they do what amounts to inverse moderation, site-wide. They promote inflammatory nonsense because it builds engagement. Ordinarily this would cause people to leave, but the site is so large that the network effect locks people in and enables the company to survive abusing its users like that.
If there was a larger number of smaller sites, or a federated network in which individual subgroups handled their own moderation, people would abandon the ones that operated like Facebook because they're severely unpleasant and the network effect wouldn't be strong enough to lock them in.
If you did, and the third party was fishing through your internals to do it instead, they're the assholes. That's generally more work than reading API documentation so if the API exists people are likely to use it, which should make this rare.
But if fishing through your internals was the only way to do it, maybe change that if your goal is to not hear from so many angry people after you move things around.
Expect people to use the undocumented unstable interface if the documented stable interface doesn't exist or doesn't work.
If you make a service with popular third party extensions and then you make a change that breaks those popular third party extensions, the users are gonna be mad. At you.
The obvious way to reduce the likelihood of that is to publish an API for the third parties to use that won't break. You can say you have no obligation to provide that, and that's fine, but then it's going to break and the users are gonna be mad. At you.
That said, there is no public API for that functionality beyond the DOM element for anyone else, so I'm not sure what was expected for any sort of integration.
Automated and thorough testing of client-side JavaScript is a huge, huge burden because you cannot simply run a script in isolation in a headless V8 instance or something: you need the entire browser and clone environment running.
Secondarily: the major tools for performing automated testing of web-applications within modern browsers are all lacking in some critical way, for example while Cypress automates Chrome fine, for some reason it loads the entire SUT into an <iframe>!!!! That alone will introduce massive differences from production, top-level browsing (the project is full of hacks that do things like re-write `window.top` so that the SUT can almost believe it's not running in an iframe, but enough differences leak through).
For all the effort Google put into Angular's Protractor, Chrome does not make this easy.
Works across browsers and lets you simulate the user and check anything you want.
The reason people assume intent is because such things often enough are intentional. Making your product harder to interoperate with outside of your control is a well-established practice for SaaS companies, particularly the big ones[0].
The reason this blog post has a story is not because this behavior is surprising, but because it's annoying, and because it can be construed as an accessibility issue - accessibility being the only excuse for having sane computing experience that won't be dismissed as "silly power users with their silly wishes".
--
[0] - See e.g. the lengths to which Facebook goes to make it hard to work with its DOM.
I'm not sure what such incentive is here for Netflix
Look for words like offended, nightmare, deeply upset, outraged - if you see a lot of that - disengage!
It's possible for most people in an organization to care about something -- in the sense that they'll tell you they care if you ask them, and if you point out a problem they'll spend some time trying to fix it -- while the organization itself doesn't actually care in the slightest. The people who care can't fix the problems if they don't see them in the first place or if other problems have already been prioritized above them.
It took me less than 1 minute to do a quick and dirty optimization bringing them down to less than 100kb each. Here you go author:
https://i.imgur.com/WGk8dBS.jpg https://i.imgur.com/pHSFsCb.jpg
Edit: updated the images, thanks again
- hey guys look at my blog post
- I'm in [a village in Tibet or whatever] and it's still loading after 30 seconds...
Definitely not indistinguishable at the default settings of all the webp encoders I have tried.
The thing to keep in mind here is that the seeking timeline of a video tag element does not need to represent the actual media timeline when you are using MSE. It can represent any time the virtual player running in JavaScript wants to maintain and is usually more related to the buffer timeline and ensuring pts continuity across segment appends. Netflix has historically had relatively simple streams which may have allowed this to be the actual seek time, but looks like some deeper streaming changes are landing. For a more complicated example take a look at how multi-asset vod and live streams in a single video tag surface times.
I don't work for Netflix, but do work in the field and since it's relatively small know some of the folks over at Netflix. They definitely aren't out to break things purposely, it's more likely not a case they exercise and broken by a change like someone else has said. If you want to patch the functionality it may be worth exploring the dispatch of mouse clicks on the seek bar. That probably does a translate to time and then calls the virtual player seek API which would be the new hook point you want.
The edge cases of varying video providers has been really eye opening when i've been doing this project, it hard to imagine how screenreader software (or any meta-software that makes it easier for the disabled) works at all.
A site like this can definitely be created without JS, but it's their site and therefore their choice.
I'm looking into some options for this with cloudflare, but it's been pretty low on my priorities for the above reasons. I'm also one of those people that turns off javascript by default, so I know your pain, but I'm also not a multi-billion dollar company.
I can see why the second one might be a deliberate design choice to push you to watch the next episode but I'm surprised the first isn't caught in user testing unless there's another shortcut. Youtube lets you press `k` to pause which seems to be reliable.
https://stackoverflow.com/questions/4155329/how-to-pause-a-h...
If you use Firefox, you can set a keyword for it, so you could hit F6 to focus the address bar and type it in.
It really shouldn't take all this to get even close, but I've never had much luck with space since it's focus dependent. Maybe you could use something like AutoHotKey to click the video area when you press a certain button/combo.
"Either the user controls the software, or the software controls the users":
We're continuously being told that we need different people to come up with different ideas. Then the same people are unimpressed that people with unconventional ideas are unconventional. SMH.
I'm positive we call them "autists" these days, not "creepy weirdos", just like we don't call low-IQ people "idiots" anymore, even though we did at some point.
It’s also not fair to say that I used it to designate someone who is “just different”. I suspect many folks would call me pretty different, but no one has ever to my knowledge called me a creepy weirdo-slash-asshole because I don’t do creepy assholish things.
Finally … “autist”, really? Being on the autism spectrum does not excuse any and all behavior. There’s a social uphill battle for some folks with autism, yes, but uphill battles are a fact of life.
Compared to "legally blind" or "Type 1 diabetic", it's virtually meaningless, on the level on "a person I don't like" -- quite literally. No, seriously, I don't see how it means anything more than that.
Why do you think it's okay to smear Stallman like this?
And for the people who apparently are supporting this smear, please take a minute to educate yourself: https://stallmansupport.org/
Neat tech but be careful what you wish for!
I was still browsing the web with links2 and a tiny text mode browser (similar to w3m) of my own writing until around the time google said "let's kill IE6." Shortly after that, the web at large started becoming unusable with simple browsers. It was still reasonably usable with script blocking, but that ship sailed too, and the vast majority of sites now absolutely require some scripts before you can see the text and images or navigate at all.
Beyond just "the right to repair" we also need "the right to access the web", and "the right to run old versions of software and OSes", and so on.
It is really sad to see what humankind is about to lose in the name of copyright and content ownership. We really could have a share everything utopia, but no, our societies are built on adversarial competition and our politicians are unwilling or simply unable to stop the unending barrage of overreaches.
For them, technology is a means to an end. Nothing more.
Users do NOT want these things, if you took the time to explain what it means, and gave them another option.
The only reason the current set of DRM malware still exists today is by artificial scarcity, and mafia-like bullying through courts. Public opinion was largely in favor of peer to peer sharing content, but that wasn’t good enough for the big boys. They wanted to be able to bring ALL other parties to their knees: cable manufacturers, display makers, computer makers, storage device makers, and of course, users. EVERYONE is now under their control.
The general public is apathetic to the issue of DRM, they certainly don’t want it. But they are not given a choice. You must have a HDCP certified computer, cable and display - otherwise no content for you.
The Soviet Union also had a similar idea... utopia can only be approached across a sea of blood, and you never arrive
> Instead of attempting to get one of [HTML/SVG/JS Canvas] to work, we implemented everything from scratch using WebGL. Our renderer is a highly-optimized tile-based engine with support for masking, blurring, dithered gradients, blend modes, nested layer opacity, and more. All rendering is done on the GPU and is fully anti-aliased. Internally our code looks a lot like a browser inside a browser; we have our own DOM, our own compositor, our own text layout engine, and we’re thinking about adding a render tree just like the one browsers use to render HTML.
For what it's worth, this isn't all that dissimilar from game development on proprietary engines, and that hasn't stopped indie game devs from experimenting. But it will be a huge problem for accessibility.
There has to be a way to phrase this that is comprehensible by humans.
This error message has appeared since I first used Netflix.
It happens about one third of all times I pause the video and then try to continue.
F5 will not fix it.
Only solution is to close the browser and open it again.
If I want to look at DVD queues (hah) I have to be on her user to do so.
I'm actually surprised how easily everyone forgave them for the bait and switch they pulled that essentially put brick and mortar video rental places out of business, though.
I can only imagine that perhaps netflix is trying to eliminate bugs caused by third party plugins that (for example) seek the htmlVideoElement, but don't trigger the network request to preload the necessary video that would normally happen as the user is dragging the scrubber.
Even google only earns $130 per user, and their ads are worth considerably more because they target the most valuable ads on user purchase intent (for search at least, where they get most revenue).
I haven't seen ads that can work around my hand covering them up (but I am sure I will eventually), but if I am forced to see ads, I won't consider paying for the service.
I can still go back or forward manually in my video if I need to
I used to watch all stuff I wanted on a MacMini attached to a dumb TV.
Suddenly, Netflix stopped working on all browsers except chrome.
Then F1TV did the same, not only that some people found out it COULD work on other browsers, but after an specific update, they added code where it detects what browser you are using, and if it is not the browser and OS they want, the whole website refuses to work.
I then decided to replace the aging MacMini with a Raspberri Pi to see if I could solve this problem, but as I researched I found out that it wouldn't solve it either, Google makes the Widevine DRM, and seemly lately it has been notorious for doing silent changes that break it on all platforms except official Chrome versions on Windows, Android and Chrome OS, people using Pi for media wrote a bunch of posts all over the internet with warnings like: "Oh, Netflix will work on the Pi some 3 months per year, it will start working after someone manages to make Widevine work with Chromium, and then after some weeks working Google will make a silent update and break it again for several months until someone figure out how to make it work with Chromium again"
Also I am still bitter that the DRM race led to the death of 3D sound cards and some cool stuff that was possible with analog video on Windows versions before Vista.
EDIT: about F1 being stupid: most DRM streaming apps have a SmartTV version. Formula 1 official doesn't. They want you to use Chrome on a PC. I just cannot understand what is wrong with them, why not allow people to watch Formula 1 on a TV like most normal people would want to?
All this in a private window.
Once I used Netflix in a normal window (Firefox or chromium) it worked.
Worth a try ?
But don't stop there. You want some documentaries? Throw in Curiosity Stream, it's pretty cheap and you'll get Nebula for free! You'll want BBC Select too, though. Oh, you like Anime? Here's Crunchyroll. A horror fan? Don't forget to sign up for Shudder!
Or you could just log into your VPN and go to Pirate Bay. I mean, if you were a dirty awful criminal.
Even if you were subscribed to every single streaming service it's now a nightmare to manage, not only do you have N payments you now have N different apps to search/browse.
Say you have 4 shows you like release on a Monday across 3 different apps. You now have to navigate your way through multiple different apps (with wildly different UIs) just to watch the things you want.
With some nice automated piracy they just download get indexed by your platform of choice (Plex, Jellyfin, Kodi, Raw filesystem etc..) and they are all available in one place with minimal fucking about.
Sure you could achieve the same with some kind of unified stream aggregator UI (kodi can do this already to an extent) but that'll never fly long term with all providers as the streaming companies would miss out on that sweet sweet userdata (only having what was watched/when/how long) and control.
The only real benefit streaming platform have right now is the lack of ads vs. cable. But remember when cable launched? It didn't have ads either and I wouldn't expect streaming providers to remain ad free either. I give it 5 years before at least 50% have ads somewhere whether in the UI or before/during/after streams.
So then we're back to piracy providing the best service to the consumer, ad free, unified UI, and most importantly all the content.
I'm honestly unsure why the music industry hasn't splintered into a million streaming services and Spotify reigns supreme. While Spotify is terrible for Artists it is a bargain for consumers. Imagine having to load up 2+ separate applications to listen to a single artists back catalogue simply because they changed labels at some point.
Oh, I get it. They're using the same zero-sum definition of "drop" that they used when calculating profits. With a convenient and well-priced legal streaming option, new consumers are less likely to seek out pirate copies. (This is true.) If you count every subscription as a "lost" pirate copy then you can describe pirating as having "fallen" from this hypothetical maximum level to the current real rate of piracy. You don't have to even bother looking at the actual rate of piracy, which may have grown over the same period. That's the kind of math they use to count how much money is "lost" to piracy; assume every downloaded movie would have been paid for if piracy didn't exist. So of course the same formula would apply to describing how valuable their platform is.
How is this possible? I was told that standardizing DRM interfaces in the browser would stop Netflix from forcing users to download native apps instead of using regular browsers and open streaming technology.
> Google makes the Widevine DRM, and seemly lately it has been notorious for doing silent changes that break it on all platforms except official Chrome versions on Windows, Android and Chrome OS
So wait, standardizing DRM interfaces didn't do anything to increase platform/browser availability for the actual DRM implementations that are only licensed to be used with certain browsers and on certain devices? No one could have predicted this.
Utterly shocking. It's almost like the standardization process for web DRM changed literally nothing about Netflix/Chrome's plans, and really only existed to provide a PR boost and the veneer of respectability to an outcome that they were always going to pursue anyway regardless of what the standard was.
Oh well, live and learn. And by "learn", I of course mean make the exact same arguments verbatim the next time we want to standardize DRM interfaces on image tags and then accuse critics of wanting the open web to die.
I share your bitterness about this same issue.
[1] - https://en.m.wikipedia.org/wiki/Aureal_Semiconductor#A3D
Next step would be to simulate and actual 3D sound environment but with GPGPU compute I don't think that needs dedicated hardware either.
This guy in the other hand, dives deep in why, how, and more. I like this guy.
So you could voice concern there, but it wouldn’t matter.
It's also an organizational problem, though. If you're, say, a doctor or an actual engineer, there are professional organizations that stand up for the professional standards and that can have your back if you're being asked to violate them.
This is especially disappointing to me given the demand for software developers. It's much easier for us to find news jobs than most people, so the risk of taking an ethical stand is much lower for us than most people. And we also have a lot to gain! So many places are poorly run that businesses and developers would all gain if we used our power to fix process and organizational issues.
I've certainly done my best to use that power well. But I would love to see cultural and organizational changes so that more of us do that.
If a software engineer writes software that hurts people, they believe in hurting people and believe people should be hurt.
If they didn’t, they wouldn’t write software that hurts people.
The impressive amount of freedom tech workers have to choose what they work on means the ethical and moral issues with their production should fall on each person’s shoulders, but it doesn’t.
I think it's more likely that their sudden inability in this one aspect is related to Upton Sinclair's observation: " It is difficult to get a man to understand something when his salary depends upon his not understanding it."
In contrast, I think that's precisely how we all feel about ourselves. Some people just have different (i.e. lower) ethical standards than you do.
> If you're, say, a doctor or an actual engineer, there are professional organizations that stand up for the professional standards and that can have your back if you're being asked to violate them.
More importantly, they're the ones that set a minimum baseline for ethical behavior. We don't have that. That's what makes it so easy to threaten to replace developers with people who will do what their told. They can do it, and easily. It would be a much more hollow threat if they were going to have to find someone willing to risk their career.
> This is especially disappointing to me given the demand for software developers. It's much easier for us to find news jobs than most people, so the risk of taking an ethical stand is much lower for us than most people.
The risk still isn't low enough. The incentives are wildly mismatched. Either I put a shitty anti-user feature in a product I'm probably never going to use, or I risk my family being homeless. It's probably a small risk, but so is dying in a plane hijacking and yet a lot of people worry about that.
> And we also have a lot to gain! So many places are poorly run that businesses and developers would all gain if we used our power to fix process and organizational issues.
I would put an extremely heavy "citation needed" around that. I don't doubt that we can all identify things that need improving at work, but having 85 different developers asking for 307 different things all at once isn't going to help.
You need something structured. A union or professional organization might be helpful. A bunch of people threatening to quit for random causes probably won't.
You also talk as if you aren't at risk of losing your job now. People lose their jobs all the time. It's something any responsible adult has to be prepared for.
And yes, of course when I say "we used our power to fix process and organizational issues" I definitely meant the "we" part of it, not some half-assed random individual behavior. A suggestion for happy dialog: try assuming the person you're talking to has thought of the obvious implications that just occurred to you.
Note that "Netflix then suspended Field along with two other employees for trying to attend a director-level meeting they weren’t invited to." is contested - they reinstated her and confirmed that she believed she was invited to the meeting because she received a link to join it. https://twitter.com/RainofTerra/status/1448097310026747908
Then they fired the leader of the ERG: https://www.theverge.com/2021/10/15/22728337/netflix-fires-o...
In the end, work is not voluntary for the majority of engineers involved in these things, and so you just have to accept that you are not going to win the argument unless you have a good argument that what you are being asked to build is not possible. Engineers often speak of how DRM is basically impossible, but that is only true in an ideal world; in practice DRM is good enough to satisfy business needs and concerns about web openness have yet to materialize (at least in a way that would undermine the business case for it). The relatively small number of hardware and software platforms one must deal with now further weakens the arguments against DRM.
I wish we just had a normal player and a normal website and not this disgustingly over-engineered ad-delivery experience. But I don't expect this to change every. Netflix will do everything they can to control their content.
DRM-controlled media content covers just a tiny fraction of what the open web offers and represents the only hard barrier to entry in development of a new browser from scratch. Yes, the technical challenge is extreme too but not impossible. There are large organizations that are making serious headway in this space right now:
https://www.ekioh.com/But naturally having to actually ship a cross browser Web UI is so much trouble. /s