Enlarge/ No CBS All Access on Linux makes elderly Picard cry.
175 with 118 posters participating, including story author
Update, January 31: After this story went live earlier in the week, an Ars reader reached out to speculate that the problem was most likely due to enabling VMP (Verified Media Path) on CBSi’s Widevine server. Verified Media Path, similarly to UEFI Secure Boot, makes certain that content will only be delivered to browsers with sanctioned, verifiable “authentic” framework; this is a configurable behavior, and by default, unverified platforms are allowed to receive licenses.
This morning we asked CBSi executives to check with their engineers and see if this was the problem. While we never received a response, two hours later, CBS All Access was playing successfully on Google Chrome on multiple Linux distributions. (Firefox still crashes.) For now, we have verified that the fixwhich, again, may or may not actually have involved VMPcovers all of CBS’ content and not merely the first episode of Picard, which CBS released yesterday on YouTube for a limited time. If we hear official word from CBS regarding what happened behind the scenes, we’ll update this post accordingly. The original story appears unchanged below.
As of this month, the CBS All Access streaming-video platformhome of popular shows including The Late Show with Stephen Colbert and now Star Trek: Picardstopped working on Linux PCs, regardless of the choice of browser. Ten years ago, this would have been just another day in the life of a Linux user, but it’s a little surprising in 2020. We were originally tipped off to the issue by a few irate readers but quickly found it echoed in multiple threads on Reddit, Stack Exchange, and anywhere else you’d expect to find Linux users congregating.

  • Trailers and ads all work fine on CBS All Access, in any browser. The problem isn’t the streamingit’s apparently something to do with the DRM itself.
  • When attempting to play the actual video in a Linux browser, this is all you get: blank, black screen with non-functional controls (and parental rating badge).
  • Unlike Google Chrome, Firefox doesn’t ship with DRM functionality enabled by defaultand it needs to be enabled to play content on streaming services.
  • Behavior after installing the DRM plugin in Firefox is different on different systems. On an Ubuntu 18.04 machine, it was a plain black screen. On this 19.10 system, the DRM plugin crashed.

I’m both a Linux user and a CBS All Access subscriber myself, but I had been unaware of the problem since I do all my own watching on a Roku. Technically, the Roku is a Linux PC in its own rightbut CBS has its own app in the Roku store, which works perfectly.
Moving back to one of my own PCs, I was quickly able to confirm the issue: trailers autoplay properly, and even the ads workbut the actual content won’t play on a Linux desktop PC on any browser including Google Chrome. Diving into the Chrome Web Console, we can see HTTP 400 (Bad Request) errors when the browser attempts to fetch a license from CBS’ Widevine back end.

  • HTTP 400 (Bad Request) errors when trying to retrieve a license from widevine appears to be the heart of the issuedespite Google Chrome itself being extremely similar on all platforms.
  • In the past, many sites have deliberately blocked Linux in a mistaken attempt to make their own lives easier. That doesn’t appear to be the case here, since changing User-Agent doesn’t change the errors.
  • CBS All Access also breaks under “Edgium,” Microsoft’s new Chromium-based version of the Edge browser. At least Edge users get a proper, user-visible error out of it!

Historically, some sites and services have deliberately blocked Linux User-Agent strings from accessing them, under the mistaken belief that doing so would reduce their support load when the service itself actually worked fine. This does not appear to be the case with the CBS All Access issuechanging User-Agent in either Chrome or Firefox doesn’t have any effect on the string of errors when attempting to play content.
Enlarge/ CBSi uses Widevinea fully cross-platform DRM protocol, created by Google. Somehow, it’s broken anyway.
The curious thing about these DRM errors is that Widevinethe DRM system CBS All Access is usingis a Google creation. It normally works perfectly well on just about any platform you can think of. Disney+, Netflix, Google Play Movies, and Hulu all use Widevineand all of those work just fine in Google Chrome running under Linux. So we’re a little puzzled about just what happened on CBS All Access’ end to break things, even though the service does explicitly state that it doesn’t support Linux.
In further testing, we can confirm that CBS All Access does not work in Google Chrome on Android or Safari on iOS devicesalthough specific apps are available on both platforms, which do work. We also discovered that the service is broken under Microsoft’s new Chromium-based version of Edgewhich, it’s worth noting, is likely to soon be the default browser for nearly every new Windows PC sold.
In the meantime, Linux users do have one functional workaroundCBS All Access is available as an add-on subscription to Amazon Prime streaming video. So if you need All Access on your Linux PC, you can unsubscribe from your existing subscription, log in to Prime, and start a new subscription therewhere the content will play back perfectly well, using Amazon’s system instead of CBS Interactive’s.

  • Dropping your direct-to-CBS subscription and replacing it with a sub-subscription from Amazon Prime results in working video playback, using Prime’s site and service.
  • Streaming also works fineincluding audio!from Chrome in a Windows 10 VM, under the Linux Kernel Virtual Machine. (Most systems won’t have enough grunt to pull this off without some frames dropping, though.)

Ars reached out to CBS Interactive for comment; an executive responded, but no answers were available at press time.