パッケージの詳細

google-music-electron

twolfson249Unlicense2.20.0

Desktop app for Google Music on top of Electron

google, music, electron, atom-shell

readme

google-music-electron Build status

Desktop app for Google Music on top of Electron

Features:

  • Google Music as a standalone application
  • Tray for quick play/pause/quit and tooltip with information
  • Media key shortcuts
  • MPRIS integration (for GNU/Linux desktop environments)

Screenshot

This was written as a successsor to google-music-webkit. When upgrading between versions of nw.js, there were regressions with taskbar and shortcut bindings. We wrote this as an alternative.

Requirements

Getting Started

google-music-electron can be installed globally via npm:

# Install google-music-electron via npm
npm install -g google-music-electron

# Run google-music-electron
google-music-electron

When the application has launched, it will appear in your taskbar and via a tray icon, tray icon.

Screenshot

Newsletter

Interested in hearing about updates and new releases of google-music-electron?

Subscribe to our newsletter!

MPRIS integration

If you are on GNU/Linux and your desktop environment supports MPRIS, you can install our MPRIS integration via:

google-music-electron install-mpris
# Once this succeeds, MRPIS will be integrated on `google-music-electron` restart

MPRIS screenshot

Updating

google-music-electron can be updated via npm:

# Update google-music-electron to a newer version via npm
npm update -g google-music-electron
# Alternatively, the following can be used as well to specify a version
# npm install -g google-music-electron@latest

Documentation

CLI

We have a few CLI options available for you:

  Usage: google-music-electron [options] [command]


  Commands:

    install-mpris   Install integration with MPRIS (Linux only)

  Options:

    -h, --help                  output usage information
    -V, --version               output the version number
    -S, --skip-taskbar          Skip showing the application in the taskbar
    --minimize-to-tray          Hide window to tray instead of minimizing
    --hide-via-tray             Hide window to tray instead of minimizing (only for tray icon)
    --allow-multiple-instances  Allow multiple instances of `google-music-electron` to run
    --verbose                   Display verbose log output in stdout
    --debug-repl                Starts a `replify` server as `google-music-electron` for debugging

Development

Running locally

To get a local development copy running, you will need:

  • npm, usually installed with node. Same npm that is used during installation
  • git, version control tool

Follow the steps below to get a development copy set up:

# Clone our repository
git clone https://github.com/twolfson/google-music-electron.git
cd google-music-electron/

# Install our dependencies and dev dependencies
npm install

# Start up `google-music-electron`
npm start

After running the above steps, a copy of google-music-electron should begin running.

Screenshot

Adding local setup as a global installation

After getting our local development set up, we can go one step further and get google-music-electron working on our CLI as if it were installed via npm install -g.

# Link local copy as a global copy
# WARNING: Make sure that `npm install` has been run before this point
#   or your local copy's permissions may get messed up
npm link

# Run `google-music-electron` for local copy
google-music-electron

More information on npm link can be found in npm's documentation:

https://docs.npmjs.com/cli/link

Icons

Source images are kept in the resources/ folder. Icons are maintained via Inkscape and the play/pause buttons are isolated in layers.

To generate icons:

  1. Export each of the play/pause/clean variants as a .svg file
  2. Load the icons via GIMP as a 32x32 SVG
  3. Export via GIMP as a .png

At the time of writing, Inkscape and Image Magick seemed to be generating non-transparent backgrounds upon converting SVG to PNG.

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint via npm run lint and test via npm test.

Donating

Support this project and others by twolfson via donations.

http://twolfson.com/support-me

Attribution

Headphones designed by Jake Dunham from the Noun Project

Unlicense

As of May 16 2015, Todd Wolfson has released this repository and its contents to the public domain.

It has been released under the UNLICENSE.

更新履歴

google-music-electron changelog

2.20.0 - Moved to fake user agent to trick Google auth, via https://github.com/MarshallOfSound/Google-Play-Music-Desktop-Player-UNOFFICIAL-/commit/a6065183e767e48a34a3f57eea852d69d13bc007

2.19.0 - Upgraded to electron@7.1.4 to fix playback issues

2.18.0 - Upgraded to electron@1.8.4 to fix GitHub vulnerability warning

2.17.1 - Replaced Gratipay with support me page

2.17.0 - Added macOS hide controls via @RickyRomero in #46

2.16.1 - Fixed Node.js supported versions for Travis CI

2.16.0 - Repaired arrow bindings timings

2.15.0 - Upgraded to electron@1.6.2 to attempt to finally repair 2FA

2.14.0 - Fixed missing and small arrows

2.13.0 - Fixed navigation arrow size for new Google Music UI

2.12.1 - Corrected forward/back enabled/disabled after page reload

2.12.0 - Added enabling/disabling of forward/back buttons when available/not

2.11.0 - Followed back rename of gmusic.js to google-music

2.10.1 - Repaired google-music-electron failing to launch due to a lack of window-info

2.10.0 - Added window size/location preservation via @JordanRobinson in #42

2.9.0 - Updated deprecated requires and Electron methods

2.8.0 - Added Edit menu for OS X editing support via @chushao in #36

2.7.0 - Upgraded to electron@0.36.2 to patch OS specific crashes. Fixes #29

2.6.0 - Relocated install-mpris command from running inside electron to node launcher (part of #25)

2.5.1 - Followed renamed google-music to gmusic.js

2.5.0 - Upgraded to google-music@3.3.0 to receive error noise patches

2.4.0 - Increased min-width of arrow container to prevent shrinking arrows. Fixes #26

2.3.0 - Added truncation to tooltip to stop Windows crashes. Fixes #24

2.2.1 - Corrected license to SPDX format by @execat in #23

2.2.0 - Added support for paper-icon-button navigation

2.1.1 - Upgraded electron-rebuild to fix node@4.0 (in Electron) issues

2.1.0 - Upgraded to google-music-electron@3.2.0 for cross-version selectors and added setTimeout loop for binding initialization

2.0.1 - Added Node.js version to about window

2.0.0 - Moved to using single instance by default. Fixes #19

1.23.1 - Repaired respecting CLI overrides

1.23.0 - Added CLI options to preferences

1.22.0 - Added configuration bindings for shortcuts

1.21.0 - Upgraded to electron@0.34.0 to pick up Windows hide patches. Fixes #16

1.20.0 - Added icon to browser window. Fixes #17

1.19.1 - Added foundry for release

1.19.0 - Repaired missing forward/back buttons

1.18.1 - Added newsletter subscription to README.md

1.18.0 - Upgraded to google-music@3.1.0 to repair duplicate playback events and detect stops

1.17.2 - Repaired lint error

1.17.1 - Updated MPRIS screenshot

1.17.0 - Added playback time tracking for MPRIS

1.16.0 - Added album art, duration, exit, and raise events/actions to MPRIS

1.15.0 - Added MPRIS support via @jck in #10

1.14.1 - Added documentation on how to upgrade via @Q11x in #9

1.14.0 - Added "Forward/Back" navigation buttons. Fixed #6

1.13.0 - Added --minimize-to-tray via @kempniu in #8

1.12.0 - Added --hide-via-tray CLI option

1.11.0 - Upgraded to electron@0.26.1 and added tray click for minimization

1.10.1 - Added documentation for development

1.10.0 - Repaired separator menu bug for OSX via @arboleya in #5. Fixes #4

1.9.0 - Added support for Chromium flags

1.8.0 - Added debug repl option

1.7.0 - Refactored again to keep all application state/methods under one roof

1.6.0 - Repaired bug with restoring minimized window from tray

1.5.1 - Updated CLI documentation

1.5.0 - Added winston as our logger

1.4.0 - Repaired electron PATH issues

1.3.0 - Added --version and --skip-taskbar support

1.2.0 - Added menu item for show/hide application window

1.1.0 - Abstracted menu/tray/shortcut hooks into separate modules

1.0.1 - Added missing bin script

1.0.0 - Initial release