GithubHelp home page GithubHelp logo

webdj's Introduction

Web DJ

With Web DJ you and your friends can all create a shared playlist and listen to the songs in sync. Think of it as a radio station where you are the hosts. The music is streamed from publicly available sites such as Sound Cloud and Youtube.

webdj's People

Contributors

jayvan avatar

Stargazers

 avatar

Watchers

 avatar

webdj's Issues

Add Song in Background Worker

Rather than the web process hitting the provider get_info APIs, use a worker to do this. This won't be necessary for a while, but it's something to be aware of.

Trim room queues

Right now songs are just appended to the room queue.
They should be trimmed periodically to only contain songs ending in the future

In page search

You should be able to search for youtube/soundcloud content from within the web page, clicking a song should add it to the queue

Volume Slider

Put a volume slider on the page that controls the volume of all current and future songs playing

Enqueue CSRF Token

When sending the enqueue POST include the CSRF token, Rails is making a new session-id right now which is causing the active users to be higher than it should be.

Write room garbage collector

  1. Write a method for rooms that removes session ids from the sorted set that are older than a minute
  2. Write a garbage collect method that calls the above function AND the queue trim method

Credit Artists/Sources

Show youtube/soundcloud/bandcamp logos
Clicking the artists name should open their page in a new tab

Facebook/Google account integration

Don't post anything to walls or feeds. Just use this as an easy way to identify users. Listening shouldn't require login, adding songs should.

New UI

Design and implement a nice UI and workflow

Atomically add songs

Since we need to get the time stamp of the last song in order to queue a new one there will be issues if 2 are queued at the same time. The best way to handle this is a lua script. Also atomically trim the queue with LUA.

Soundcloud is handled serverside

Apparently soundcloud encourages you to use your apps API key on the client side in their docs. It makes life easier to fetch stream URLs from the client-side anyway, so move the soundcoud search & stream url fetch to the client from the api controller and song helper.

Add "buffer" buffer

Right now songs are queued up to play the second the previous song finishes, but buffering generally takes a second or two. Add a 2 second buffer between songs for buffering.

Vote to Skip

If enough people (40%, 50%?) want to skip the song, we should skip it.

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.