GithubHelp home page GithubHelp logo

dekryptor / peertunes Goto Github PK

View Code? Open in Web Editor NEW

This project forked from benjaminlawson/peertunes

0.0 1.0 0.0 10.05 MB

A P2P music synchronization service.

License: MIT License

JavaScript 78.93% CSS 7.15% HTML 13.91%

peertunes's Introduction

PeerTunes

PeerTunes is a Peer-to-Peer social DJ'ing experience for the browser. Peers take turns playing songs and chat about them. Still very much in alpha!

Alt text

Development

  • Automatically build changes to src/main.js : npm run-script watch
  • Start local web server: npm start
  • Dev: npm run dev

How

  • Users join bittorrent swarm where peers announce rooms
  • Users join swarm with gossipped room state
  • Host peer controls song playing, DJ queue

Why

  • Hosting this type of real-time service with the client-server design is EXPENSIVE
  • Business model shown to be unprofitable time and time again
  • Websites keep popping up and shutting down, this will be permanent

Features

  • $0 to host (static files => host on IPFS, gh-pages, bitbucket.io, electron app, etc.)
  • YouTube video support
  • YouTube search
  • Chat with full emoji support
  • Animated avatars
  • Rating system
  • Ability to play mp3 files
  • Bittorent tracker based peer discovery
  • Public room listing
  • Basic player info/controls
  • Basic persistent song queue organizer

Planned

  • Security
  • Playlists
  • Soundcloud support
  • Friend system using RSA keys (exchange public keys, then have potential friend sign to confirm identity)
  • Profiles (ask peer for info about themself)
  • custom backgrounds set by host (upload to imgur)
  • custom avatars set by user (upload to imgur)
  • moderation controls (kick, ban, skip, max song length, max room size, etc.)
  • Advanced player controls (quality, refresh, hide video, etc.)
  • Export all data
  • import playlists (from export file, youtube playlist, soundcloud playlist, dubtrack.fm, plug.dj)

Problems

  • Can't have persistant rooms
  • Can't store points (without trusting client)
  • Can't reserve usernames/accounts (but can still confirm identities with keys)
  • More open to abuse / security issues
  • Uses new technology (WebRTC, MediaSource) not supported by some browsers

Alternatives (AKA why this project needs to exist)

peertunes's People

Contributors

benjaminlawson avatar

Watchers

BulgPride avatar

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.