CBS All Access serves ads, but not content, to Linux users

Enlarge / No CBS All Access on Linux makes elderly Picard cry. Aurich Lawson / CBS / Getty

As of this month, the CBS All Access streaming-video platform—home of popular shows including The Late Show with Stephen Colbert and now Star Trek: Picard—stopped 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 streaming—it's apparently something to do with the DRM itself. Jim Salter
  • 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). Jim Salter
  • Unlike Google Chrome, Firefox doesn't ship with DRM functionality enabled by default—and it needs to be enabled to play content on streaming services. Jim Salter
  • 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. Jim Salter

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 right—but 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 work—but 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 issue—despite Google Chrome itself being extremely similar on all platforms. Jim Salter
  • 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. Jim Salter
  • 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! Jim Salter

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 issue—changing User-Agent in either Chrome or Firefox doesn't have any effect on the string of errors when attempting to play content.

CBSi uses Widevine—a fully cross-platform DRM protocol, created by Google. Somehow, it's broken anyway.
EnlaRead More – Source