Git Product home page Git Product logo

emby-sync-watch's Introduction

Emby Sync Watch

A Chrome Extension / NodeJS Server for sync video watching on Emby. This is my first Chrome Extension so please be gentle on me. The code is far from good but it works :)

Setup Client (Extension)

  1. Emby Sync Watch got accepted into the Chrome Webstore! Go to Emby Sync Watch to download it. Skip to step 8), if you wanna download it manually continue with step 2).
  2. Download the latest Release of the Chrome Extension ("emby.sync.watch.EXTENSION. ... .zip") from the releases tab.
  3. Extract the Zip file to a Folder of your choice.
  4. Open Chrome and head to: "chrome://extensions/".
  5. Tick the "Developer Mode" box on the top right corner of the screen.
  6. Click on "load unpacked extension" and select the folder you created in step 2.
  7. The Extension now shows up in the top right corner of the screen :)
  8. Go to Usage if you want to learn more about how to connect to servers.

Setup Server

  1. Download the latest Release of the Server ("emby.sync.watch.SERVER. ... .zip") from the releases tab.
  2. Extract the Zip file to a Folder of your choice.
  3. Go to https://nodejs.org/en/download/ and install nodejs on your computer.
  4. Go to the Folder you extracted in step 2.
  5. Run npm install.
  6. Start the server: node .\index.js.
  7. If everything went correct the Server should now say "Server started" and the Port it's listening on.
  8. If you want to edit the port just open the port.json file the server created and change the port. Restart the server afterwards.
  9. If you want to use the Server over the Internet please forward TCP Port 8082 (or the port you set yourself) on your router.

Usage (Extension)

  1. On Installation the Extension should open a Webpage where you can create Profiles.
  2. Open the Emby Webpage and start the Video you want to watch.
  3. Click on the Chrome Extension on the top right Corner of your screen, if it's not there click on the puzzle piece and then on the Extension.
  4. Select a Profile you want to connect to, if you didn't create a profile yet go back to step 1). If you want to connect manually don't select a profile and just enter the Server / Port manually.
  5. Connect to the Server, if everything is setup right you should see a popup saying you're connected.
  6. Everyone else who joins in from now on has control over your video and vice versa :)

Help

What should I enter on the Options page?

  • Name
    • The Name you want to give the Profile
  • Server
    • The IP-Adress of the Server you want to connect you.
      • If you setup the Server on your PC it's "localhost".
      • If you setup the Server on a different PC it's the IP of that PC
  • Port
    • The Port of the Server you want to connect to. If you didn't change my Code it's "8082".

That didn't help me.

  • Message me on Discord @ "Quadrubo#2536". I'm sure I can help you :)

emby-sync-watch's People

Contributors

quadrubo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

emby-sync-watch's Issues

Package for Firefox

The extensions framework is mostly universal now, so with minimal changes this same addon should work for firefox.

All I had todo to get it work locally is the following
Change references to chrome-extension referenced pages to just use absolute urls
chrome-extension://${chrome.runtime.id}/options.html => /options.html

add in manifest v2 keys
"action": copied keys into => "browser_action":

"service_worker": "background.js" => "scripts": ["background.js"]

"options_page": "options.html", =>

"options_ui": {
		"page":"/options.html"
	},

Also added in a addon-id locally so that storage would work. Otherwise no changes in javascript was required.

Exclude server/node_modules from git

Nodejs node_modules should not be included in the git repository.
Users should run npm install to download them at need.

Proposed Solution

Add server/node_modules to .gitignore

Chrome Extension Doesn't work if Emby Connection uses HTTPS

By default, an insecure Websocket connection cannot be initiated when the connection is over HTTPS. The code does not appear to support connecting with a secure web socket, requiring the user to connect to the Emby server in the clear to use th extension.

Does the User matter?

I have 2 computers on the network, both on the emby page, both connected to the websocket but using the same user.
nothing happens, not sure what I'm doing to troubleshoot this?

Nothing Happens after connection

Hi Quadrubo,

I am not sure if you are still working on this? I am trying to set this up on my pc where my Emby server is and connect my laptop to it within the same wifi. I got the server running and it confirmed by connecting both devices. However when I hit play nothing happens on the other. Am I meant to see some activity on the terminal when I hit play or pause to send the message over the server?

image

Many thanks if you are free to advise me on how to work this extension out

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.