tiliado / nuvolaplayer

Nuvola Player - Tight integration of web-based media streaming services with your desktop
https://nuvola.tiliado.eu/
BSD 2-Clause "Simplified" License
334 stars 27 forks source link

Check HTML5 Audio support in streaming services and disable Flash #158

Closed jiri-janousek closed 6 years ago

jiri-janousek commented 9 years ago

Some services might be able to use HTML5 Audio for playback and we could disable Flash for them.

Tasks

Temporary on hold until CEF port is complete.

  1. Install Nuvola ADK
  2. See Documentation of Web app requirement flags
  3. Try Codec[mp3]
  4. Try Codec[mp3] Feature[MSE]
  5. Use Feature[flash] as the last resort.

Status

Script Requirements Note
8tracks @fenryxo
amazon-cloud-player @a-m-s Codec[MP3] Codec[H264] Feature[Flash] tiliado/nuvola-app-amazon-cloud-player#33
bandcamp @fenryxo
bbc-iplayer Codec[MP3] Codec[H264] Feature[MSE] Feature[Flash]
deezer Feature[flash] Codec[mp3] tiliado/nuvola-app-deezer#12
google-calendar @fenryxo
google-play-music @fenryxo tiliado/nuvolaruntime#91
groove @jrosco to add MSE tiliado/nuvola-app-groove#6
jango @thepisu HTML5AudioRequiredCodec[mp3]
kexp @thenyeguy
logitech-media-server None https://github.com/tiliado/nuvolaruntime/issues/158#issuecomment-326002809
mixcloud Chromium[43] Codec[MP3]
owncloud-music @fenryxo HTML5AudioRequired
plex @skyghis
siriusxm @fenryxo
soundcloud @kixam HTML5AudioRequired → Codec[mp3]
spotify Chromium[63] Feature[widevine]
tunein @ajabot
yandex-music @fenryxo Unmaintained
youtube Chromium[63] Feature[MSE]

Feedback from Sasan Namiranian:

I'm looking for a streaming provider that can be used by Nuvola player and payback without Adobe Flash.

I tried three providers so far:

  • Spotify: could not login through Facebook. Opened an issue for that. I don't think playback functionality will be available without flash.
  • Rdio: couldn't login to this one either. Endless spinning wheel. I was hopping that I could use Rdio without flash here since their web player is perfectly working with Google Chrome and Flash disabled.
  • Google Music: I was able to login but flash is required to playback.

So anybody knows a steaming service that works with Nuvola and doesn't require Flash to playback? Maybe Deezer but it is not available in States.

  • [x] Add configuration option to disable Flash
  • [ ] Examine which streaming services really require Flash - create ticket in their repositories for it
  • [x] Implement format requirement flags for web app scripts
jnv commented 9 years ago

Google Play Music has an experimental support for HTML5 Audio (can be enabled in Settings > Labs), unfortunately I have it disabled in all browsers. I think it could be disabled for Google Play Music Unlimited subscribers since HTML5 Audio has no DRM support, thus Flash playback is enforced.

jiri-janousek commented 9 years ago

I think it could be disabled for Google Play Music Unlimited subscribers since HTML5 Audio has no DRM support, thus Flash playback is enforced.

That might be true. I think HTML5 Audio is supported only in Google Chrome as it depends on some experimental technologies included in that browser. Not sure whether these technologies also include DRM nowadays or Flash is still hard requirement for All Access subscribers.

jiri-janousek commented 9 years ago

Google Play Music has an experimental support for HTML5 Audio (can be enabled in Settings > Labs), unfortunately I have it disabled in all browsers.

Have you tried also Google Chrome? Not Chromium, as it might lack some proprietary techs needed for DRM.

jnv commented 9 years ago

Have you tried also Google Chrome? Not Chromium, as it might lack some proprietary techs needed for DRM.

Yes, in fact the screenshot above is from Google Chrome.

rosshadden commented 9 years ago

Just to shed some more light on this, the HTML5 option is disabled for me as well, even though I am a Google Play Music Unlimited subscriber. I use Google Chrome (dev), and run Arch Linux.

jiri-janousek commented 9 years ago

The format support dialog (Menu → Format support) contains two new options to disable Flash plugin and/or GStreamer HTML5 Audio backend. These options are intended for web app script maintainers to find out whether a streaming service requires Flash plugin or supports HTML5 Audio.

jiri-janousek commented 8 years ago

Related: #191

jiri-janousek commented 8 years ago

Format requirements flags will be mandatory for Nuvola Player 3.2.

There are four format requirements flags:

The semicolon-separated flags are specified in the "requirements" string field in metadata.json:

{
    "id": "test",
    "name": "Test",
    "requirements": "FlashAudioRequired;AnotherFlag;Whatever",
    ...
}

To obtain a proper format requirement flag for your service, follow this procedure:

  1. Make sure both the Flash plugin and HTML5 Audio support are installed (see Format support dialog).
  2. Disable the Flash plugin in the Format Support dialog and restart Nuvola Player. Does your service play without any issues?
    • No => Your flag is FlashAudioRequired.
    • Yes => Enable the Flash plugin and disable HTML5 Audio in Format Support dialog. Restart Nuvola Player. Does it play without any issues?
      • No => Your flag is HTML5AudioRequired.
      • Yes => Your flag is HTML5AudioPreferred.
thepisu commented 8 years ago

When adding this new "requirements" flag to metadata.json of Service Integration, do I also have to update api_minor? Currently I have api_major = 3 and api_minor = 0.

jiri-janousek commented 8 years ago

When adding this new "requirements" flag to metadata.json of Service Integration, do I also have to update api_minor? Currently I have api_major = 3 and api_minor = 0.

You should update API version only if your script doesn't work with older API. For example, if Nuvola Player adds a new feature into API 3.X that is so essential for your script that it cannot function properly without it, you will increase API requirement to 3.X. However, all Nuvola Player versions with API less then 3.1 won't be able to load your script any more. In conclusion, the format requirement flag is not a reason to increase API requirement.

jiri-janousek commented 8 years ago

From tiliado/nuvolaplayer#91 - please post your feedback to that ticket, not here.

[Google Play Music with] HTML5 Audio seems to work in Nuvola Player 3.1 in Debian Jessie for songs in the library, not sure about All Access Music subscription. Can anybody interested investigate? First, disable the Flash plugin in App menu/Gear menu → Format support → Web plugins → Toggle "Load web plugins (Flash)" off, then restart Nuvola Player.

jiri-janousek commented 7 years ago

It is necessary to have more detailed format requirements because the degree of HTML5 Audio support depends on WebKit's version and various technologies, e.g. Media Source Extensions and Encrypted Media Extension. For example, Google Play Music's requirements would be as follows (providing MSE lands in WebKitGTK+ 2.16.0).

{
    "id": "google_play_music",
    "name": "Google Play Music",
    "requirements": "FlashAudioPreferred",
    "checks": {
        "html5audio": "codec(mp3) && webkit(2.16.0) && mse",
        "flashaudio": "flash(any)"
    }
}

Checks:

jiri-janousek commented 7 years ago

On the second thought, it could be simplified to "requires": "WebKitGTK[2.15.3] Codec[MP3] Codec[H264] Feature[MSE] Feature[Flash]" etc.

jiri-janousek commented 7 years ago

Documentation of Web app requirement flags

jiri-janousek commented 7 years ago

Current status:

jiri-janousek commented 7 years ago

Tasks

Temporary on hold until CEF port is complete.

  1. Install Nuvola ADK
  2. See Documentation of Web app requirement flags
  3. Try Codec[mp3]
  4. Try Codec[mp3] Feature[MSE]
  5. Use Feature[flash] as the last resort.
Tar-Dingens commented 7 years ago

The Logitech Media Server service is a special case because it doesn't use any form of local playback. It doesn't require any codec.

jiri-janousek commented 7 years ago

@Tar-Dingens Thanks for info :+1:

jiri-janousek commented 7 years ago

Temporary on hold until CEF port is complete.

jiri-janousek commented 6 years ago

Chrome Flash removal roadmap

jiri-janousek commented 6 years ago

Closing in favor of #424.