A synced multiuser youtube player
The master branch is directly deployed to heroku: https://synced-youtube.herokuapp.com/
- Run
npm-install
- Run
node app.js
- Go to http://localhost:3000
- Node.JS
- Express
- socket.io
'/'
: Endpoint for connecting to the socket.io server'/'
: Also returnsindex.html
(angular app)'/api/users/list'
: Expects asocketId
. Returns list of the users in the current room.'/api/users/rename'
: Expects asocketId
and ausername
'/api/users/updateIsTyping'
: Expects asocketId
and aisTyping
'/api/messages/list'
: Expects asocketId
. List of messages in the current room.'/api/messages/submit'
: Expects asocketId
parameter and abody
parameter'/api/messages/clear'
: Expects asocketId
. Clears all messages.'/api/player/info'
: Expects asocketId
. Gets the current room player info (current video, time and state)'/api/player/setVideo'
: Expects asocketId
and avideoURL
'/api/player/submitState'
: Expects asocketId
and astate
'/api/player/submitCommand'
: Expects asocketId
, astate
, and atime
'/api/server/info'
: Returns info about the server (eg. port)
The following scripts are referenced directly in public/index.html
- Angularjs 1.3.14
- Angular's Boostrap UI 0.12.1
- Bootstrap CSS 3.3.4
- HTML 5 (canvas)
- socket.io 1.3.5
- toaster (notifications) 0.4.12
- scrollglue (scroll to bottom of divs)
- Youtube player API ("iframe_api")
- angular-youtube-embed (angular directive for iframe_api)
- Consider the "buffering" state
- Player's timeline control
- Player's volume control
- Player's currentTime/totalTime indicator