To start, I found an (admittedly old) post from someone at Netflix stating that their licensing requirements prohibited them from providing ways to control the player externally (everything needed to be wrapped up in a netflix-branded application, and providing ways to interact with the player externally would allow you to embed the netflix player in places it shouldn't go.) You can find that reply here (although it's four years old, I'd imagine not much has changed.)
I tried snooping around on the 'watch instantly' page myself, and there are objects like netflix.SilverLight and netflix.SilverLight.MoviePlayer (which has a getPlugin() method that returns some details about the plugin, and hookable events, but no methods for control,) but they mostly have to do with exposing the size of the player viewport, among other things necessary to place it on the page. I couldn't really find anything in any of the objects that suggested they interacted with the movie player that would seem to allow me access to it.
I also snagged the player binaries, and snooping through them I've found a ScriptInterface object internally with [ScriptableMember]-decorated methods in it called PlayMovie(), StopMovie(), ShowCurtain(), HideCurtain().
Then, I noticed there's another namespace in the player binaries called Netflix.Silverlight.CBPApp.HostedPlayer, which has its own interface - HostedPlayerScriptInterface. This has everything you want in it - data on play position, controls for increasing and decreasing play speed, pausing, playing, setting the play position, querying play state, etc. All of these are decorated as [ScriptableMember]s.
Now I break your heart - it looks like (for whatever reason) this interface is not exposed as a [ScriptableType], which to my understanding is a requirement for being able to access it from javascript. In fact, the only things that seem to be exposed this way are events that the player fires. My guess is that this code is for integrating with other partners, or left over from someone they inherited the original code for the video player from, but it seems intentionally that this [ScriptableType] parameter is left out. There may be a way to request a binary that's built to be 'Hosted', though I'm not sure what that means, and I also suspect it will be transparently obvious to the people watching what you're trying to do and have a stop put to it quickly.
Sorry for the long-winded response that ends in disappointment, but it appears as of right now there's not really a way to do this. I've seen some suggestions that basically amount to sending keystrokes to the browser window that emulate the keyboard controls, but this clearly isn't what you're looking for, so I'm going to go with 'no' as an answer here. :)
So, looks like you need to trick the Netflix player into thinking it's running in hosted player mode. There's some configuration options that can be passed in, but I'm not sure how, specifically, you would do that. It looks like that's all set up on player initialization - maybe some sort of bookmarklet could reload the page and inject a change? Or maybe just reload the player and change the settings.
Bear in mind I haven't done much of this javascript interop stuff so much of this is inferred from the documentation, but it does seem as if there is a javascript control API in there, it's just a matter of tricking the player into working in Hosted mode.
Going to have to stop here, but hopefully this gives you a good start. I've dumped the contents of that hosted player Javascript API file so you can see the methods that will be exposed once you manage to get the player in Hosted mode.
In Silverlight for a method to be exposed to JavaScript directly, it needs attributes [ScriptableType] on its class and [ScriptableMember] on itself. You could try opening up the XAP file for the Netflix player, disassembling the main assembly, and searching for any methods with [ScriptableMember] attached to them. This may not turn up anything useful at all, but it is something you can try nonetheless.
Some people might be apprehensive about installing new things. In section 4 Netflix helps alleviate some concerns by showing the value of the action, and assurance that this is not something that has to do with advertising, etc. They are providing you with additional information to help you make a decision and help you feel that the process is relative only to the task you requested (watch instantly).
Tim is a program manager at Microsoft, working on .NET and developer tools (formerly UI frameworks including WPF, Silverlight, UWP, and WinUI). In the past Tim worked as software developer for various healthcare and consulting companies building client and web applications. Personally Tim is an avid cyclist.
For a while now we've had a computer hooked up to our large screen television and stereo system. A couple months back I upgraded the motherboard, CPU, and memory so that we could start using the Windows 7 release candidate and Windows Media Center on it. The new hardware also meant we could play back high definition video.
Aside from playing back photos in Picasa and various video files, we also stream music using Pandora or play from our library using WinAMP or Media Center. For streaming video, we'd been using Hulu a bit (which is Flash based) and Netflix (which is Silverlight).
Yesterday we tried out Hulu Desktop and attempted to watch the Glee pilot. Hulu desktop crashed on the first run after install (could be a Windows 7 issue) but then ran fine upon restarting it. But the video quality was low and quite jerky. It used a lot of CPU too. This made me wonder if it was really taking advange of the video capabilities of our system.
It was bad enough that we switched to watching the show using the browser-based streaming. Hitting the full-screen high quality version acually played better there and used less CPU. So the desktop application clearly needs some performance tuning.
I compare all of this with Netflix streaming which uses Silverlight and the difference is clear, even in 720p resolution we tend to keep our display set to. Microsoft has done a good job of tuning Silverlight for video. If I recally, they have very good H264 support built-in.
I find your blog entry interesting, because IMO the Silverlight netflix browser plugin is unusable in full-screen mode due to screen tearing issues under both Vista and Mac OS X. This was never a problem with their previous version that I believe was flash-based.
Flash also has built in H.264, so that shouldn't matter too much. I'm curious if this is a Win7 thing, or just a Microsoft thing, because it's the exact opposite situation on OS X. Flash video runs great, Silverlight video makes me want to shoot myself in the face.
Hulu desktop isn't exactly what it should have been, I believe they're love hate relationship stems from Hulu wanting to make it an open platform but being tied down by NBC and other major broadcasters who want more draconian type restrictions.
I tried Hulu Desktop too on my Mac Mini connected to my TV. I did not care for the black UI and small thumb nails, I much prefer using a hand held mouse (gyration) and enjoying Hulu through a browser.
I had numerous issues with the Hulu Desktop. While Flash may look good because of the H.264 support, it is a horrible technology. Flash cannot make use of multiple cores (I hear that is changing in future releases... I hope it's true), and it's CPU utilization is through the roof. The instant I start watching Hulu shows (through the browser or the new Hulu Desktop), the temp goes through the roof and my fans start running like crazy. When watching Netflix movies, CPU utilization and heat are not an issue. I wish people would give Silverlight more of a chance and not hate it simply because it's a Microsoft Product, in 2 releases they are where Flash was in 5 or 6.
Another note, I am currently using XBMC on my computers, and it was nice when Hulu was working with it. It drives me nuts that they want you to use an entirely different program (that doesn't work very well) just to watch their content. I had no problem with them playing their ads when watching in XBMC, that's fine, but since they removed support for XBMC, I just use the NBC-Universal plugin to watch TV programs and they don't have commercials.
I found that removing the check from the box labeled "Enable hardware acceleration" under SETTINGS in Flash inproved performance quite a bit, both in the Hulu desktop app and through the Hulu website.
Noticed that I can go up to 5800 on the netflix app (on pc) and only up to 1750 when watching certain movies on chrome. So if you want the best quality, I suggest using the app from the marketplace. ?
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur tincidunt mollis ante non volutpat. Nam consequat diam nec leo rutrum tempus. Nulla accumsan eros nec sem tempus scelerisque. Morbi tincidunt risus magna, posuere lobortis felis.
90f70e40cf