mauricesvay / openwhyd

Discover, collect and play music from Youtube, Soundcloud, Bandcamp, Deezer and other streaming platforms

Home Page:https://openwhyd.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Openwhyd.org Travis-CI OpenCollective OpenCollective frequently asked questions Music lover club on Facebook Like Openwhyd on Facebook Follow Openwhyd on Twitter

Discover, collect and play music from Youtube, Soundcloud, Bandcamp, Deezer and other streaming platforms.

Music libraries like Spotify and Apple Music make it easy to play and collect music that is released officially by music labels.

Openwhyd, on the other hand, allows music lovers to discover, play and collect any musical gem that is available on the most popular streaming platforms, including:

  • music videos, bootlegs and specific live performances,
  • fresh tracks from new and/or local artists,
  • DJ sets and rare remixes,
  • or any song that can be found and streamed online.

Free to use at openwhyd.org, and on your iPhone.

Features

Whyd Music Demo Video

Features:

  • Playlists: made of tracks from various sources: Youtube, Soundcloud, Bandcamp, Deezer...
  • Button: Add a track from any web page, in a few clicks, using our Google Chrome extension and bookmarklet
  • Radio: Subscribe to music curators based on your musical taste, and listen to their latest discoveries
  • Fame: Get a following by creating awesome playlists, and being featured in the "Hot Tracks" ranking
  • Search: Add descriptions to your track, to make them easier to find when you need them
  • Integration: Embed your playlists on your blog or website, so your visitors can listen to it directly.

Development

Status of the project

This product is the result of years of iterative development, by the start-up company Whyd. Read the full story from Whyd to Openwhyd.

Since its code was generously open-sourced by Whyd, Adrien Joly (ex-lead developer at Whyd) has been maintaining it on his spare time (i.e. replying to user feedback on twitter and facebook, maintaing issues based on user feedback, backing up openwhyd's database, updating SSL certificates...), and coordinating contributors.

We welcome contributors, including beginners!

Tech stack

  • Node.js
  • Express-like Web Server
  • jQuery
  • HTML + CSS
  • Playemjs for streaming tracks continuously

Contribute

If you want to contribute, please:

Also, be aware that this project has become open-source very recently, so please be kind and constructive about code quality, and about the management of this project.

Thank you for your understanding! ^^

Setup (simple)

Docker makes it easy and safe to install and start the two servers required for Openwhyd: the MongoDB database server, and the whydJS web/application server. All you need is access to the shell (a.k.a. terminal), and to have Docker and Git installed on your machine.

  1. Install Docker Client and start it
  2. Install Git if you don't have it already
  3. Clone openwhyd's repository: git clone https://github.com/openwhyd/openwhyd.git, then cd openwhyd
  4. Build and launch Docker processes: docker-compose up
  5. Open http://localhost:8080 in your web browser => you should see Openwhyd's home page! 🎉
  6. When you're done, shutdown the Docker processes by pressing the Ctrl-C key combination in the shell instance where you had run docker-compose up (step 4).

Whenever you want to update your local clone of Openwhyd's repository to the latest version, run git pull from the openwhyd folder where you had cloned the repository (step 3).

Whenever you want to start the Docker processes after shutting them down (step 7), run docker-compose up again from the openwhyd folder where you had cloned the repository (step 3).

Whenever you just want to restart Openwhyd while the Docker processes are still running, run docker-compose restart web from a shell terminal.

Whenever you want to know what Docker processes are currently running: run docker-compose ps.

Setup (manual)

  • Install Node.js, MongoDB, GraphicsMagick or ImageMagick
  • Make sure that make and g++ are installed (required for building npm binaries, I had to do this and this)
  • Make sure that a MongoDB server is running
  • Make sure that the necessary environment variables are defined (see below)
  • Make sure that the database is initialized (by running mongo openwhyd_data whydJS/config/initdb.js and mongo openwhyd_data whydJS/config/initdb_team.js)
  • Make sure that dependencies are installed (npm install)
  • If you want notifications to be pushed to your iPhone app, make sure that Apple Push Notification Service (APNS) certificates are copied to /whydJS/config/apns with the following filenames: aps_dev.cert.pem, aps_dev.key.pem, aps_prod.cert.pem, aps_prod.key.pem, and Dev_Whyd.mobileprovision. (you can test them using test_apns.sh)

Usage

  • docker-compose up, or npm run run (for development), or npm start (forever daemon)
  • Open http://localhost:8080 (or WHYD_URL_PREFIX)
  • During development, you may have to restart the server to have your changes taken into account. To restart the Docker container, use docker-compose restart web.

Testing

Run unit tests only:

npm run test-unit

Run all tests, including acceptance tests (webdriver.io-based), from the whydJS folder:

# in a terminal session, start the "whydJS" application server
npm run run-for-tests
# in another terminal session, run the tests
npm test

Run all tests against the Docker container:

npm run test-docker

Environment variables

  • WHYD_GENUINE_SIGNUP_SECRET (mandatory. a secret key that is used to make sure that sign-ups are legit)
  • WHYD_SESSION_SECRET (mandatory. a secret key used to sign session cookies)
  • WHYD_DEV_APNS_PASSPHRASE (mandatory. the passphrase used to de-cypher APNS certificate and key, for iOS push notifications in DEV mode)
  • WHYD_APNS_PASSPHRASE (mandatory. the passphrase used to de-cypher APNS certificate and key, for iOS push notifications in PRODUCTION mode)
  • WHYD_ADMIN_OBJECTID (ObjectId of the user that can access to admin endpoints)
  • WHYD_ADMIN_NAME (Full-text name of the user that can access to admin endpoints)
  • WHYD_ADMIN_EMAIL (mandatory. Email address of the user that can access to admin endpoints)
  • WHYD_CONTACT_EMAIL (mandatory. email for users to contact the site's team)
  • WHYD_CRASH_EMAIL (mandatory when running with forever. email address of the site's administrator)
  • WHYD_URL_PREFIX (default: http://localhost:8080)
  • WHYD_PORT (default: 8080)
  • WHYD_DEV (default: false)
  • MONGODB_DATABASE (example: openwhyd_data, or openwhyd_test)
  • MONGODB_HOST (default: localhost)
  • MONGODB_PORT (default: 27017)
  • MONGODB_USER (default: none)
  • MONGODB_PASS (default: none)
  • SENDGRID_API_USER (mandatory. email address of sendgrid account to be used for sending emails)
  • SENDGRID_API_KEY (mandatory. key / password of sendgrid account)
  • SENDGRID_API_FROM_EMAIL (mandatory. email address of email sender)
  • SENDGRID_API_FROM_NAME (mandatory. name of email sender)
  • LAST_FM_API_KEY (mandatory. for lastfm scrobbling)
  • LAST_FM_API_SECRET (mandatory. for lastfm scrobbling)
  • ALGOLIA_APP_ID (mandatory. for search index)
  • ALGOLIA_API_KEY (mandatory. for search index)

Support Openwhyd

Backers

Support us with a monthly donation and help us continue our activities. [Become a backer]

Sponsors

Become a sponsor and get your logo on our README on Github with a link to your site. [Become a sponsor]

About

Discover, collect and play music from Youtube, Soundcloud, Bandcamp, Deezer and other streaming platforms

https://openwhyd.org/

License:MIT License


Languages

Language:JavaScript 65.8%Language:HTML 21.5%Language:CSS 12.1%Language:Shell 0.5%Language:Makefile 0.0%