Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
2 of 3 tasks
jiri-janousek opened this issue Sep 7, 2015 · 21 comments
Closed
2 of 3 tasks
Labels
type: quality Improves quality of the app or the user experience.
Milestone

Comments

@jiri-janousek
Copy link
Member

jiri-janousek commented Sep 7, 2015

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 #91
groove @jrosco to add MSE tiliado/nuvola-app-groove#6
jango @thepisu HTML5AudioRequiredCodec[mp3]
kexp @thenyeguy
logitech-media-server None #158 (comment)
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.

  • Add configuration option to disable Flash
  • Examine which streaming services really require Flash - create ticket in their repositories for it
  • Implement format requirement flags for web app scripts
@jiri-janousek jiri-janousek added priority critical type: quality Improves quality of the app or the user experience. labels Sep 7, 2015
@jiri-janousek jiri-janousek added this to the September 2015 milestone Sep 7, 2015
@jnv
Copy link

jnv commented Sep 7, 2015

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
Copy link
Member Author

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
Copy link
Member Author

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
Copy link

jnv commented Sep 7, 2015

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
Copy link

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 added a commit that referenced this issue Oct 10, 2015
Issue: #158

Signed-off-by: Jiří Janoušek <janousek.jiri@gmail.com>
jiri-janousek added a commit that referenced this issue Oct 10, 2015
 * GStreamer is disabled in AppRunner and in WebWorker as well.
 * New Gtk.Switch added to FormatSupportDialog.
 * Switching handled in FormatSupport and FormatSupportCheck.

Issue: #158

Signed-off-by: Jiří Janoušek <janousek.jiri@gmail.com>
@jiri-janousek
Copy link
Member Author

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
Copy link
Member Author

Related: #191

@jiri-janousek
Copy link
Member Author

Format requirements flags will be mandatory for Nuvola Player 3.2.

There are four format requirements flags:

  • FlashAudioRequired - app requires Flash, don't check HTML5 audio support at all, enable Flash plugin
  • FlashAudioPreferred - app prefers Flash to HTML5 Audio, check support for both technologies, enable Flash plugin
  • HTML5AudioRequired - app requires Flash, don't check Flash support at all, disable Flash plugin
  • HTML5AudioPreferred - app prefers HTML5 Audio to Flash, check support for both technologies, disable Flash plugin if HTML5 Audio is supported

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.

jiri-janousek added a commit that referenced this issue Feb 17, 2017
- Add HTML5AudioRequired to WebApp.requirements
- Add rule to WebApp.html5_audio
  e.g. "WebKitGTK[2.15.3] and Codec[MP3] and Codec[H264] and Feature[MSE]"

Issue: #158

Signed-off-by: Jiří Janoušek <janousek.jiri@gmail.com>
@jiri-janousek
Copy link
Member Author

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 added a commit that referenced this issue Feb 19, 2017
The requirements specification is now described only by a single
`requirements` field of the `metadata.json` file, which replaces
`html5_audio`, `flash_enabled` and `mse_enabled` fields.

The `requirements` field contains a list of requirements separated by
a space or a semicolon, a requirement comprises of `codec`, `webkitgtk`
and `feature` checks with a parameter inside square brackets. Unless
noted otherwise, checks and their parameters are case insensitive, i.e.
you can use `WebKitGTK` instead of `webkitgtk`, etc.

Examples:

  * `Codec[MP3]` - HTML5 audio feature and MP3 codec are required
  * `Codec[H264]` - H264 codec is required
  * `Feature[Flash]` - Flash plugin is required
  * `Feature[MSE]` - Media Source Extension is required
  * `Feature[EME]` - Encrypted Media Extension is required
  * `WebKitGTK[2.15.3]` - WebKitGTK >= 2.15.3 is required

If no requirement is specified, it defaults to
`Feature[Flash] Codec[MP3]` for now for backward compatibility,
but will default to "" (no requirement, no flash, no MP3) in Nuvola 4.0.

If empty requirements string is specified, the script has no
requirements (and Flash plugin is disabled).

If requirements are not satisfied, the script shows error message and
quits.

Issue: #158

Signed-off-by: Jiří Janoušek <janousek.jiri@gmail.com>
@jiri-janousek jiri-janousek modified the milestones: May 2017, March 2017 May 10, 2017
@jiri-janousek jiri-janousek modified the milestones: June 2017, May 2017 May 29, 2017
jiri-janousek added a commit that referenced this issue Jun 3, 2017
Issue: #158

Signed-off-by: Jiří Janoušek <janousek.jiri@gmail.com>
@jiri-janousek
Copy link
Member Author

@jiri-janousek jiri-janousek modified the milestones: July 2017, June 2017 Jun 25, 2017
@jiri-janousek jiri-janousek modified the milestones: August 2017, July 2017 Jul 29, 2017
@jiri-janousek
Copy link
Member Author

Current status:

@jiri-janousek
Copy link
Member Author

jiri-janousek commented Aug 10, 2017

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
Copy link

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
Copy link
Member Author

@Tar-Dingens Thanks for info 👍

@jiri-janousek
Copy link
Member Author

Temporary on hold until CEF port is complete.

@jiri-janousek jiri-janousek removed this from the August 2017 milestone Sep 8, 2017
@jiri-janousek jiri-janousek added this to the 4.11 milestone Jan 25, 2018
@jiri-janousek
Copy link
Member Author

@jiri-janousek
Copy link
Member Author

Closing in favor of #424.

@ghost ghost removed the ready label May 9, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: quality Improves quality of the app or the user experience.
Projects
None yet
Development

No branches or pull requests

5 participants