Updating Widevine for Puppy - a guide

How to do things, solutions, recipes, tutorials
Post Reply
Message
Author
User avatar
Mike Walsh
Posts: 6351
Joined: Sat 28 Jun 2014, 12:42
Location: King's Lynn, UK.

Updating Widevine for Puppy - a guide

#1 Post by Mike Walsh »

Evening, boys & girls.

Streaming media services are becoming more & more commonplace on the world-wide web these days. Many well-known services exist:_

- NetFlix
- Amazon Prime
- Hulu
- BBC iPlayer (UK)
- ITV Player (UK)


.....to name but a few. Doubtless there are many others I haven't mentioned.

Many of these require the Widevine Content Decryption Module (libwidevinecdm.so) for use with the DRM (Digital Rights Management) system, which 'protects' providers content from being 'illegally' accessed - read viewed for free, when providers wish to make you pay for the privilege of viewing it..!

One facet of this modern requirement I've noticed is that the players provided by many of these content providers are incredibly 'fussy' about the very newest version always being in use. This being the case, I thought I'd just provide a quick guide to keeping your Widevine module(s) 'up-to-date'.

-------------------------------------------

This can be broadly sub-divided into 2 sections; the Chromium-based 'clones', and the Mozilla-based browsers (where this is supported).

Chromium-based browsers

- Chrome

Linux Chrome has caught up pretty much to its Windows counterpart, with both PepperFlash & Widevine being regularly auto-updated from within the browser process.....without the user needing to lift a finger. Good news for Chrome users!

The others - Chromium itself, Slimjet & Iron - are rather more 'hands-on', unfortunately.

- Chromium

Easiest way to obtain the Widevine module is to visit AlienBob's website, here:-

http://www.slackware.com/~alien/slackbu ... ne-plugin/

.....and download the appropriate 32- or 64-bit .txz package. Best one to use is the 14.2 package. Unzip them with SFR's UExtract, then place the libwidevinecdm.so module inside the main chromium directory; this may vary in location, so you can't install the package direct (only works in the Slackos, anyway). Chromium will automatically pick it up when required.

- SlimJet

Same procedure as above. The Widevine module wants to be placed inside the main slimjet directory, wherever it's located. You may find it necessary to sym-link it to /spot/.local/lib as well (Slimjet will only run as user 'spot' these days, as is the case with Chrome, so you'll probably need to create these directories yourself, then place the symlink manually within it. It's another location where Widevine is looked-for.)

- Iron

Iron, unfortunately, is a real PITA these days. From experience, I've discovered that as of Iron 70 and onwards, the Widevine module simply isn't recognised. If you try to access DRM-controlled content with Iron, you get a message telling you to visit

chrome://components

.....access the Widevine entry in the list, then manually 'Check for update'. Which would be fine if that entry in fact existed.....but in Iron, there's no sign of it, and it appears that Iron has been coded to expect Widevine to be accessed this way only..!

The SRWare Forums remain resolutely 'schtum' on the matter. I've posed this question at least 3 times during the last 12 months, and to date, haven't received one single response yet.....so don't use Iron if you want to access the likes of NetFlix.

Iron 69 (and earlier) are trouble-free in this respect, luckily.

---------------------------------------

Mozilla-based browsers

Accessing DRM-controlled content is a much more recent prospect for the Mozilla-based browsers. To the best of my knowledge, only Firefox itself (and possibly the Palemoon derived Basilisk browser) are capable of playing such. Palemoon never will support it (I've been told that in no uncertain terms on the Palemoon Forum), and neither will Seamonkey.

Fortunately, the Mozilla DRM mechanism is a lot easier to administer. To enable it, all you need to do is go into 'Preferences' in the menu (the 'hamburger' symbol, top-right). Under 'General', scroll down to the section titled 'Digital Rights Management (DRM) Content', and tick the checkbox for 'Play DRM-controlled content'. This will download, and install, the Widevine module. After a re-start of the browser, the DRM stuff is up-and-running.

I'm not certain whether the Widevine module is auto-updated during the frequent browser updates or not. In Quantum itself, these occur fairly regularly; in the ESR (Extended Support Release) versions, not so often.

It's perfectly possible to force a manual 'update' of Widevine yourself. (You can watch this in action, if you want to. Go into your profile, and enter the 'gmp-widevine-cdm' directory. Within, you'll find another directory, marked with a number - currently, 4.10.1440.19. Inside this, you'll find libwidevinecdm.so, and a couple of text documents.)

As you untick the DRM checkbox, this numbered directory will disappear. Shut the browser down, either re-boot, or restart 'X' (I do the former. but the latter will probably do what's necessary), then open Firefox, go into 'Preferences' again, and re-tick that checkbox. Doing so will cause the browser to search for, download and install the most up-to-date version of the Widevine module. Simples! :)

This same procedure works identically for Firefox ESR, too.

Here in the UK, the BBC iPlayer is accessed purely and simply via HTML5, with no DRM in sight. You do, however, need an up-to-date TV licence. The ITV Player, on the other hand, like NetFlix requires Widevine, since it's DRM-controlled.

I opened an account for this just a couple of days ago, and earlier today it quit working on me. By carrying-out the above Mozilla 'workaround', access was restored.....just like that. So it obviously wanted a newer version of Widevine to be present on the system.

-------------------------------------------------------

Hopefully, this short guide will help those of you who access DRM-controlled content to remain up-to-date, and a wee bit more secure into the bargain.....as well as allowing you to continue enjoying your chosen media streams. :D


Mike. :wink:

User avatar
666philb
Posts: 3615
Joined: Sun 07 Feb 2010, 12:27
Location: wales ... by the sea

#2 Post by 666philb »

hi mike,

i've never had any luck getting chromium to run netflix. after putting libwidevinecdm.so in my chromium-browser folder and restarting it still doesn't work.

it does work with vivaldi though.

any ideas?

cheers
Bionicpup64 built with bionic beaver packages http://murga-linux.com/puppy/viewtopic.php?t=114311
Xenialpup64, built with xenial xerus packages http://murga-linux.com/puppy/viewtopic.php?t=107331

User avatar
Mike Walsh
Posts: 6351
Joined: Sat 28 Jun 2014, 12:42
Location: King's Lynn, UK.

#3 Post by Mike Walsh »

Hiya, Phil.

Hmm.... You might get more joy from Peter - he's the Chromium 'guru' for Puppy!

I started a thread, a few years ago, all about testing out the Widevine modules in Chromium.....this was around the Chromium 49/50 time-frame:-

http://www.murga-linux.com/puppy/viewtopic.php?t=106339

.....but most of the procedures don't really hold water any more, unfortunately. From what I can gather, the Chromium code-base has undergone a lot of radical changes since those far-off days. I can't get Widevine to function in any of the current Chromium-based 'clones' at all; AFAICT, the browser is now set-up to expect to obtain the Widevine module via an internal process. You're supposed to visit

Code: Select all

chromium://components
.....and 'update' Widevine from an entry in the list, but in Puppy, at least, that entry doesn't exist. And the browser won't recognise Widevine via any other method, it seems.

There's a ton of 'flags' that can be used in the launch-wrapper to alter browser behaviour; Peter would definitely know more about that than me. Personally, I suspect it's an 'option' at build-time..... (*shrug*) Either that, or Google have 'requested' The Chromium Project to tighten-up on security procedures with regard to Widevine/DRM-related stuff. Can't say.....and it seems that even those who know about these things are no longer talking.

Sorry I can't be of more help.


Mike.

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#4 Post by technosaurus »

Back when flash player was a thing, I wrote a script to replace the version number in the plugin module to trick the players into thinking they had the latest version 99% of the time it still worked fine.

Something like that could be useful for the 32bit version of chromium.
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

User avatar
Mike Walsh
Posts: 6351
Joined: Sat 28 Jun 2014, 12:42
Location: King's Lynn, UK.

#5 Post by Mike Walsh »

@ technosaurus:-

That's certainly a possibility.....though I get the impression, from experimentation, that there's a bit more to it than just the version number. Widevine's a rather different beast to Flash/PepperFlash, and I believe that sites look for certain 'internal' WideVine components in addition to the version.

It's worth a try, though.


Mike. :wink:

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#6 Post by technosaurus »

That's what LD_PRELOAD is for... once you reverse engineer what functions they are looking for. There's a similar project that adds GNU libc stuff to musl - I don't recall the name.
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

Post Reply