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 asocketIdand ausername'/api/users/updateIsTyping': Expects asocketIdand aisTyping'/api/messages/list': Expects asocketId. List of messages in the current room.'/api/messages/submit': Expects asocketIdparameter and abodyparameter'/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 asocketIdand avideoURL'/api/player/submitState': Expects asocketIdand 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
