Nuvola 4.8 Adds Pocket Casts, Fixes Groove Music, Temporarily Drops Spotify and Calls For New Yandex Music Maintainer

Nuvola 4.8 was released. It introduces Pocket Casts, makes Groove Music work again, updates Amazon Cloud Player and Google Play Music scripts, and brings necessary improvements under the hood. On the other hand, Spotify is temporarily unsupported — because Spotify dropped support for WebKit browsers — and Yandex Music needs a new maintainer.

To install Nuvola, follow installation instructions at the Nuvola Apps Repository Index. To update Nuvola, run flatpak update --system && flatpak update --user in terminal (as a regular user, not root/sudo) or use a package manager which supports Flatpak (e.g. a recent GNOME Software application).

This blog post is targeted to users. If you are a developer or a packager, make sure you are subscribed to Nuvola-devel mailing list to receive a more technical release announcement.

New script: Pocket Casts

Nuvola 4.8 comes with a new script — Pocket Casts by Jiří Janoušek.

Pocket Casts is the only podcatcher you’ll ever need. Listen to your favorite shows in one place, keep in sync progress across various devices, find great new content with curated featured podcasts, currently trending podcasts and much more. Now also with desktop integration provided by Nuvola.

Pocket Casts in Nuvola 4.8.

Groove Music Works Again With 2.0 Release

Microsoft Groove Music dropped Flash-plugin-based playback a few months ago, so this streaming service stopped working in Nuvola. Nuvola 4.6 added a preliminary support for Media Source Extension (MSE) and Joel Cumberland worked hard to port the script to MSE and to fix all remaining issues since then. This effort resulted in the 2.0 release of the Groove Music script.

Microsoft Groove Music in Nuvola 4.8.

Updated Scripts

  • Amazon Cloud Player script 5.5 maintained by Andrew Stubbs integrates a track progress bar and volume controls.
  • Google Play Music script 6.0 by Jiří Janoušek uses new asynchronous API to improve responsiveness and reduce lags, but also drops support for Nuvola 4.7 and older.

Spotify Temporarily Unsupported

Unfortunately, Spotify’s Web Player no longer works on Safari and Nuvola uses a variant of Safari’s web rendering engine (WebKitGTK). There is ongoing effort to port Nuvola to Chromium backend (Issue #372) but it is going to take a few months to complete. You can subscribe to Issue #374 to be notified when Spotify works again.

Spotify no longer works on Safari or Nuvola.

Call For New Yandex Music Maintainer

Yandex Music script is currently orphaned and needs a new maintainer. The script is still shipped with Nuvola 4.8 but may be removed in the future unless somebody adopts it. If anyone with basic JavaScript skills is interested, please get in touch with me at Nuvola Devel mailing list.

It would be a pity to lose this script. However, I don’t speak Russian nor live in Russia (nor in other supported countries), so its maintenance has always been cumbersome and I simply give up. It deserves a more appropriate maintainer.

Complete Nuvola 4.8 Changelog

Nuvola 4.8 was released on September 29th, 2017.

New Features

  • New script: Pocket Casts by Jiří Janoušek. Pocket Casts is the only podcatcher you’ll ever need. Listen to your favorite shows in one place, keep in sync progress across various devices, find great new content with curated featured podcasts, currently trending podcasts and much more. Now also with desktop integration provided by Nuvola.
  • Updated script: Groove Music script 2.0 by Joel Cumberland works again in Nuvola after being ported to use Media Source Extension instead of Flash plugin.
  • Updated script: Amazon Cloud Player script 5.5 by Andrew Stubbs integrates a track progress bar and volume controls.
  • Updated script: Google Play Music script 6.0 by Jiří Janoušek uses new asynchronous API to improve responsiveness and reduce lags, but also drops support for Nuvola 4.7 and older.

Discontinued Features

  • Spotify script is temporarily unsupported until Nuvola is ported to Chromium Embedded framework because Spotify dropped support for WebKit browsers (including Nuvola and Safari).
  • Yandex Music script is currently orphaned and needs a new maintainer. The script is still shipped with Nuvola 4.8 but may be removed in the future unless somebody adopts it. If anyone is interested, please get in touch with me at Nuvola Devel mailing list.

News for Script Maintainers

  • Asynchronous variants of various JavaScript API calls were introduced deprecating original synchronous methods. The async methods return a Promise object, which is used to resolve the result of the async operation.
  • List of async methods: Notifications.isPersistenceSupportedAsync, Actions.isEnabledAsync, Actions.getStateAsync, Core.getComponentInfoAsync, Core.isComponentLoadedAsync, Core.isComponentActiveAsync, KeyValueStorage.setDefaultAsync, KeyValueStorage.hasKeyAsync, KeyValueStorage.getAsync and KeyValueStorage.setAsync.
  • New function: Nuvola.logException to log exceptions to terminal. JavaScript API reference now supports new annotations such as “Deprecated since”, “Available since” and “asynchronous” function.

Under the Hood

  • Nuvola uses new IPC API from Diorite 4.8 and replaced a lot of synchronous IPC calls between WebWorker and AppRunner processes with asynchronous variants. This should improve the performance of the WebKit WebProcess, reduce lags and prevent occasional deadlocks. However, scripts must use the newly-introduced async JavaScript API to reach the full potential. Google Play Music is the first one.

Diorite 4.8.0

  • Various IPC classes were refactored and united into new API (Rpc prefix) and it is possible to respond to IPC messages asynchronously.
  • KeyValueStorage got async equivalents of non-void methods.

Thank You for Your Support

At the time of writing, the awesome people listed bellow and a few others are Nuvola Patrons, who support the development of Nuvola Player. Thank you all!

Andrew Allen, Simon Law, Bart Libert, Bryan Wyatt, Christian Dannie Storgaard, José Antonio Rey, Ryan Wagner, Chris Beeley, David, Andrew Azores, Andrew Kvalheim, Balázs, Ben MacLeod, Martin Wimpress, Duco van Amstel, David Wiczer, Gabriele, Nathan Warkentin.

If you are a Nuvola Patron but your name is not listed, you have to enable the “Show my name and a link to my external profile page in a list of Patrons.” option in your profile settings. Obviously, it is not enabled by default to protect privacy of our patrons.