Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: Netflix Party – Synchronize Netflix Video Playback (stephanboyer.com)
58 points by curryhoward on Dec 29, 2015 | hide | past | favorite | 30 comments


"The basic architecture of Netflix Party is a client-server model. The clients connect to the server to synchronize their playback state. For the server, I wanted something low-latency that many clients could connect to at a time. Node.js fit the bill nicely."

Given the the model is traditional request/response (no push), wouldn't literally any web server tech fit this bill?


It looks like the backend is "dumb", and doesn't handle persistence (as it's not really needed), so using node allows the OP to simply store session state for clients on the stack as a global variable, so the server is completely independent and doesn't rely on any additional infrastructure. Most other backend techs (PHP, Ruby, most Python) simply handle the Request/Response cycle, with memory being cleared and allocated each time. Other web techs can do this, but node madebit easy " out of the box".


Well, PHP comes with an opcode cache than can be used across requests.


> Jiggle the mouse so the playback controls appear. Wait 10ms for the UI to respond. 1ms is apparently not enough.

It doesn't seem necessary for the controls to be visible, to be able to interact with them?

    $('.player-control-button.player-play-pause.pause').click();
and

    $('.player-control-button.player-play-pause.play').click();
seem to work (in the console) whether the controls are visible or not?

> Netflix doesn’t expose any JavaScript functions for manipulating video playback

Apparently the player used to be at netflix.cadmium.objects.videoPlayer() but it seems to not be there anymore.

netflix.player.diag.togglePanel("log") overlays a detailed log of a lot of things happening in the player.

netflix.player.getVersion() shows the current version of the player; mine is "2.0000.453.011".

Edit: showgoers.tv that aims to do the same thing, has a script for controlling the player at http://assets.showgoers.tv/sync2.js (minified) and as far as I can tell they too simulate clicks on the interface.


Can't edit my original comment above anymore, but the video element listens for events play and pause; so, after adding jQuery to the page, you can do

  $("video").trigger("play")
and

  $("video").trigger("pause")
to play and pause the video.

Don't know about seek, but it's probably in there somewhere (minified: http://secure.netflix.com/en_us/ffe/player/html/cadmium-play...).


i would assume mouse controls are used because they are less likely to have a breaking change pushed out silently by netflix than the "private" JavaScript APIs.


True, but the classes that qualify the buttons can be changed by Netflix just as easily as anything else...


I'd love for this to be native in the Netflix apps and to function between accounts in two different countries. Watching TV with friends and family back home would be wonderful.


Isn't it a bit strange that after so many years, Netflix's player is as basic as anything? Even YouTube offers more. Yeah I'm sure Netflix has all sorts of non-visible stuff to make it work well but it's like they don't even consider the player to be a place they can deliver features.


I really want companies to stop stuffing features into their product.

I want them to develop something that works, and works very well, and then optimise it carefully.

Nice to have but non essential features should be offered in an experimental, unsupported, panel. "Try this, you might like it, but it might not work and we don't provide any support if it doesn't work".

There's a long list of software that was good, that improved to be great, and then continued to "improve" and became huge buggy laggy messes.


OK. But Netflix doesn't even have a decent player. No audio boost. No picture controls. Doesn't even have subtitle controls. I mostly don't use Netflix (their selection went to hell and they seem intent on shoving 1-star stuff in my face) but on the rare occasion I do, it's generally subpar. They're at no risk of turning terrible.


Subtitles are available on both web and mobile apps, most (if not all) titles have subtitles available.


In the settings for your account on the website, you can adjust subtitle appearance.


For those who don't know, you can force quality settings by pressing shift+ctrl+alt/option+S


I completely agree. An email button would be nice.


Although my parents and grandparents are long gone at this point, I don't want Netflix to make their core apps any more complicated that what they are now. Just for the sake of every one who still has to help their parents/grandparents figure out how to play a movie.


True, but I think if you made a video shareable by providing a straight up arrow icon that would then show a secondard submenu above it with the word sync as one of the options that would generate a hardlink that you could then email to them, that might be a good interface for our generation.

Then the more aged user would get the link, click on it, and it would open a browser window and inform them that this was a movie being shared with you by (your name) and to click on a link to join the viewing party. It would not be like the normal Netflix interface as you'd not be able to escape the shared viewing to browse, etc. and the title of the window would be "Shared Video: (name)" or similar in case it were bookmarked. You could go back to that shared video at anytime, similar to how Google Hangouts can reuse a hangout.

That should be simple enough in-theory for older people to get, at least as many of them that would be using it.

Unfortunately, it wouldn't work with all of the Netflix-ready devices. :( That's the problem with smart TVs and set top devices vs. browsers- you just can't innovate like that as easily.

But, it shouldn't stop Netflix from providing this feature in their browser and app versions that they have the ability to update.


My girlfriend and I just went "3 2 1 play" on Skype.

Hardest part is picking the same movie.

Back when hulu had 1 15 second commercial, we would always pause after the commercials so we could do another countdown (another reason Netflix wins out). I paused and waited and waited and waited. And my girlfriend is being very serious, after I was laughing during a very funny scene. Turns out we started talking about one movie, then another, and one of us started the first and the other started the 2nd, and their first commercials were several minutes apart. We both had a good laugh over it!


My girlfriend (who lives a few states away) and I have been using http://showgoers.tv for the same thing for a bit. Are there any advantages of Netflix Party over Showgoers?


It seems like you'd be the most qualified to tell us.


My reason for asking is because I didn't see any advantages, but I wasn't sure if I was missing something. At a glance, Showgoers seems a bit more mature of a solution than Netflix Party; they've had head-start time to integrate simple text chat and friendly UI, where Netflix Party seems more raw by nature of being newer to the space.

I guess I was just looking for a "I had this problem, looked around and found Showgoers, but it was missing _______, so I built this to fill that need", but it looks like the case is more "I had this problem, so I just went and built something," which is not necessarily bad either.


As somebody in a long distance relationship, thank you :)


Very nice! Is there a good solution like this for Spotify or other streaming music services? One that doesn't just rebroadcast a private audio stream?


I experimented with making one for Spotify.

You can control the desktop player with the undocumented WebHelper API.

http://cgbystrom.com/articles/deconstructing-spotifys-builti...

Me and a friend could run a custom node.js script locally and control each other's players.

However I never figured out half the polish OP did to get sync really tight, nor packaged and published my solution.


I created Rabbit[0] which allows me to stream h.264/mp3 encoded videos and synchronize the video with a partner. I recently added a feature that overlays a video chat using some simple WebRTC code.

[0] https://github.com/marvelm/rabbit-ex


Nice, another one exists for YouTube videos and pretty much any online HTML5 videos http://togethr.tv/


didn't the xbox do this 3 or 4 years ago?


They used to have this at least 6-7 years ago but took it away. Everyone had to have a netflix account so I don't know why it went away.


Undoubtedly because no one used it.


I have no clue how popular it was. I do know that my friends and I used it around once or twice a week during the school year, more during the summer. This was also during the time where Netflix online selection really wasn't great so whatever bad movie/show you watched (and I don't mean "so bad its good"), it probably wasn't worth watching with friends.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: