Node.JS Server and JavaScript/HTML Client for synchronizing online media
Go to file
calzoneman b7cdc0c056 Force channel names to be lowercase
Since MySQL is case-insensitive, treating varying cases as unique names was a prroblem.
Existing channels with uppercase names should not be affected as the database lookup finds a match without case sensitivity.
2013-04-05 14:03:35 -05:00
www Fix issue#24 2013-04-04 17:54:05 -05:00
LICENSE Change license to MIT 2013-03-23 21:28:20 -05:00
README.md Transition to using bcrypt for password hashing/storage 2013-03-26 14:12:02 -05:00
auth.js Wrap bcrypt in a try-catch 2013-03-27 15:02:43 -05:00
channel.js patch a couple of bugs 2013-04-04 18:22:11 -05:00
chatcommand.js Fixes and stuff 2013-04-04 14:56:43 -05:00
config.js Change quotes to be consistent 2013-03-24 12:23:48 -05:00
database.js Force channel names to be lowercase 2013-04-05 14:03:35 -05:00
get-info.js Implement YouTube search, minor fixes, remove "Play Next" button 2013-04-04 11:39:43 -05:00
logger.js Improve logging 2013-03-27 14:28:51 -05:00
media.js Continue refactoring 2013-04-02 22:56:44 -05:00
poll.js Finish refactoring 2013-04-03 12:47:41 -05:00
rank.js Fixes and stuff 2013-04-04 14:56:43 -05:00
run.sh Fix bad MySQL results crashing it 2013-03-18 12:17:56 -05:00
server.js Force channel names to be lowercase 2013-04-05 14:03:35 -05:00
user.js Force channel names to be lowercase 2013-04-05 14:03:35 -05:00

README.md

calzoneman/sync

About

Sync is a server/client combination I wrote to synchronize media playback among clients. It's inspired by Synchtube, but I wanted to make the interface simpler, add a searchable library for each channel, and it's just a fun challenge.

The serverside is written in JavaScript and runs on Node.JS. It makes use of a MySQL database to store user registrations, cached media metadata, and data about each channel.

The clientside is written in JavaScript and makes use of Socket.IO and jQuery. The web interface uses Bootstrap for layout and styling.

Sync currently supports YouTube, Soundcloud, Vimeo, Dailymotion, Livestream, and TwitchTV.

Installing

This assumes you have Node.JS installed. I'm using v0.10, please feel free to report which versions do/do not work

1. Clone this repository
2. `cd` to the directory containing the source files
3. Install socket.io: `npm install socket.io`
4. Install connect: `npm install connect`
5. Install your distribution's `libmysqlclient` package
6. Install the libmysql node module: `npm install mysql-libmysqlclient`
7. Install bcrypt: `npm install bcrypt`
8. Install node_hash: `npm install node_hash`
9. Edit `config.js` and input your database details and connection port
10. Edit `www/assets/js/iourl.js` and change the value of `IO_URL` to `yourhostname:port` where `port` is the port defined in `config.js`

Running

Start the server: node server.js You should now be able to connect via yourhostname:port where port is the port you defined in config.js

Feedback

Please open a GitHub Issue.

License

Licensed under MIT See LICENSE for the full license text