Skip to content

mountainash/Mixcloud-Play

 
 

Repository files navigation

Mixcloud Play

Application wrapper for Mixcloud

Mixcloud Play is the missing desktop experience for Mixcloud.com with support for media controls and showing current track in menu bar. Enjoy listening to hours of new music...

screenshot

Features

  1. Media Controls: ⏪ ⏯️ ⏩ (⏪ requires Mixcloud PREMIUM or SELECT)
  2. Menu Bar track title
  3. Song info in OS Notifications
  4. Stores login in local keystore/keychain
  5. Last.fm Scrobbing (coming soon)

Enable Media Controls

To allow the media key events to be passed through to the app on macOS:

  1. open System Preferences
  2. open Security & Privacy
  3. scroll down and select Accessibility
  4. Use + or drag&drop in the Mixcloud Play.app

Open the app and try using the media keys.

Development

Building

npm install
npm run build

OR

npm run start

Use the compile macOS .app with Chromium Dev Tools and some extra debugging enabled:

npm run build:debug

Docker Compose

docker-compose build
docker-compose run --rm mixcloud-play {any command here}

Built app will output to ./dist/mac/Mixcloud Play.app

Auto Update Publishing (Github)

Publish app updates is set-up as per the GithubOptions for Electron Builds Auto Update.

  1. Update the app version number in both package*.json files.
export GH_TOKEN={token_with_repo_scope}
npm run publish

A release in the specified GitHub repo should be drafted and ready for release.

Development Tips

Asar Extraction

Linking/locating files inside the build can be hard to know what's going on inside the app.asar (inside Electron). Us the following commands to extract the contents of the .asar.

  1. Build the app fist docker-compose run --rm mixcloud-play
  2. docker run --rm -it -v $(pwd):/project electronuserland/builder:14-05.21 to enter bash inside the container
  3. npm install -g asar
  4. asar extract dist/mac/Mixcloud\ Play.app/Contents/Resources/app.asar app_contents will extract the MacOS "dist" contents to /app_contents/