Web app for collecting, playing and sharing music from various streaming platforms.
JavaScript HTML CSS Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


OpenWhyd.org (formerly whyd.com)

Collect, play and share music from various streaming platforms

Openwhyd's curating platform (website + iphone app) allows music lovers to find and play very specific versions of songs that their love, and are not available on major music platforms such as Spotify or iTunes. E.g. rare remixes, DJ sets, bootlegs and epic live performances.


  • a bookmarklet / chrome extension for adding music tracks from the web (e.g. a Youtube page)
  • add tracks to playlists, from heterogeneous streaming platforms
  • social curation: users can subscribe/follow you, so that your latests tracks can be played from their stream
  • you can add a description to each track
  • supports music from youtube, soundcloud, vimeo, bandcamp, and MP3 files (as long as they are hosted on the web)

You can use it on openwhyd.org.

Latest stats, analytics and demographics: Openwhyd data report, mid-october 2016

Like us on Facebook, and follow us on Twitter.

Important notes

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! ^^


  • Node.js
  • MongoDB
  • GraphicsMagick or ImageMagick
  • make and g++ (for building npm binaries, I had to do this and this)


  • Make sure that MongoDB is running
  • Make sure that the necessary environment variables are defined (see below)
  • Make sure that the database is initialized (provided scripts: initDB and initTeam, after updaing the email and pwd fields for the admin account)
  • Make sure that dependencies are installed (npm install)
  • Make sure that Apple Push Notification Service (APNS) certificates are copied in /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)


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)
  • WHYD_USE_GRAPHICS_MAGICK (if set to false, imagemagick will be used instead of image manipulation)
  • MONGODB_DATABASE (default: openwhyd_data)
  • 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)