Playing HTML5 Video and Netflix in the Vivaldi Web Browser


I immediately fell in love with Vivaldi the first time I opened it. I knew I would. The same thing happened to me with Opera and it is envisioned by the same guy who ran Opera back when Opera was great. The workflow is simply terrific for power users. I even tried out Firefox Quantum for a month or two, loved it, and still went back to Vivaldi because of the workflow. (It’s a shame Mozilla killed panorama, the main reason I used Firefox, just to make Firefox faster.)

There is an official ebuild for Vivaldi in the portage tree, but if you install it and fire it up, it won’t be long before you realize some basic functionality is missing.

HTML5 Video

Not all HTML5 video is playable out-of-the box. I’ll use Google Drive for an example. Play an .mp4 video from Google Drive and you’ll likely get this:

As bug 580990 shows, the solution to this problem is not so obvious. This is because the problem is not necessarily in Vivaldi, it’s in your ffmpeg build. The ffmpeg ebuild has a chromium use flag. Enable that, rebuild ffmpeg, then restart Vivaldi and anything that works in Chromium should work in Vivaldi just the same.

Netflix (and Other DRM Content)

This is how Netflix looks on vanilla Vivaldi in Gentoo.

What’s missing here is the Widevine component, which is available from the www-plugins/chrome-binary-plugins ebuild. Merge this package with the widevine use flag enabled. Then we have to do a little cleanup as this ebuild is designed for Chromium, not Vivaldi. If you look at the end of the ebuild, you can see what it installs.

src_install() {
	insinto /usr/$(get_libdir)/chromium
	if use widevine; then
		doins libwidevinecdm.so libwidevinecdmadapter.so
		dosym ../chromium/libwidevinecdm.so /usr/$(get_libdir)/chromium-browser/libwidevinecdm.so
		dosym ../chromium/libwidevinecdmadapter.so /usr/$(get_libdir)/chromium-browser/libwidevinecdmadapter.so
	fi
}

We need to get that libwidevinecdm.so someplace Vivaldi can find it (it already has a libwidevinecdmadapter.so). Symlink the file to /opt/vivaldi, like so:

Crystal user root on 5 at 2018-01-20 17:25:47 in /opt/vivaldi
# ln -s /usr/lib/chromium/libwidevinecdm.so /opt/vivaldi/libwidevinecdm.so

Restart Vivaldi and enjoy yourself some Netflix!


Leave a Reply