gort818 / qtwebflix

A qt webengine program for netflix
GNU General Public License v3.0
248 stars 28 forks source link

How do you compile QtWebEngine with enable proprietary codecs? #49

Open phd21 opened 5 years ago

phd21 commented 5 years ago

Hi gort818,

I do not know of any stand-alone application other than in a browser that can run Netflix and or other similar services on Linux, so it certainly would be nice if there was an easier way to install this in Linux systems.

I read the blog link below in addition to your instructions. Netflix and Qt WebEngine 5.7 - Qt Blog http://blog.qt.io/blog/2016/06/03/netflix-qt-webengine-5-7/

Is it necessary to compile QtWebEngine with enabling proprietary codecs to use qtwebflix with NetFlix even though "widvine" is installed?

If yes or no, I would still like to know what are the exact instructions for compiling QtWebEngine with enabling proprietary codecs in Linux? I am using Linux Mint 19 and Linux Neon KDE both are based on Ubuntu 18.04 Bionic. I have already installed the QtWebEngine and related components from the "Synaptic Package Manager (SPM)". I had no problem compiling "qtwebflkix" and I don't have access to Netflix at the moment to test this, but it comes up to their login screen.

This QT is on my KDE Neon system "Qt version 5.11.2 in /usr/lib/x86_64-linux-gnu" Do I have to git clone the QtWebEngine for this specific branch version 5.11.2?

Error Message = Submodule qtwebengine-chromium does not exist. Run 'git submodule update --init'. QtWebEngine will not be built.

So, in the qtwebengine folder I ran the "git submodule update --init" which takes a while and then ran the command you gave. qmake WEBENGINE_CONFIG+=use_proprietary_codecs

Results of running your command:

Qt WebEngine: Embedded build ......................... no Pepper Plugins ......................... yes Printing and PDF ....................... yes Proprietary Codecs ..................... no Spellchecker ........................... yes Native Spellchecker .................... no WebRTC ................................. yes Use System Ninja ....................... yes Geolocation ............................ yes Use v8 snapshot ........................ yes Use ALSA ............................... yes Use PulseAudio ......................... yes Optional system libraries used: re2 .................................. no icu .................................. no libwebp, libwebpmux and libwebpdemux . yes opus ................................. yes ffmpeg ............................... no libvpx ............................... yes snappy ............................... no libsrtp .............................. no glib ................................. yes zlib ................................. yes minizip .............................. no libevent ............................. no jsoncpp .............................. yes protobuf ............................. no libxml2 and libxslt .................. yes lcms2 ................................ yes png .................................. yes JPEG ................................. yes harfbuzz ............................. yes freetype ............................. yes Required system libraries: fontconfig ........................... yes dbus ................................. yes nss .................................. yes khr .................................. yes glibc ................................ yes Required system libraries for qpa-xcb: libdrm ............................... yes xcomposite ........................... yes xcursor .............................. yes xi ................................... yes xrandr ............................... yes xtst ................................. yes

Qt is now configured for building. Just run 'make'. Once everything is built, Qt is installed. You should NOT run 'make install'. Note that this build cannot be deployed to other machines or devices.

These are the end of the results after trying to run "make".

( test -e Makefile.core_generator || /usr/lib/qt5/bin/qmake -o Makefile.core_generator /home/user69/qtwebengine/src/core/core_generator.pro WEBENGINE_CONFIG+=use_proprietary_codecs ) && make -f Makefile.core_generator Project ERROR: Unknown module(s) in QT_PRIVATE: quick-private Makefile:63: recipe for target 'sub-core_generator-pro-make_first' failed make[2]: [sub-core_generator-pro-make_first] Error 3 make[2]: Leaving directory '/home/user69/qtwebengine/src/core' Makefile:78: recipe for target 'sub-core-make_first' failed make[1]: [sub-core-make_first] Error 2 make[1]: Leaving directory '/home/user69/qtwebengine/src' Makefile:46: recipe for target 'sub-src-make_first' failed make: *** [sub-src-make_first] Error 2

I don't know if you are familiar with AppImages or OBS (Open Build System), but these do help developers in packaging their software for Linux systems. The people that created AppImages are willing to help developers if they contact them directly.

Best regards, Phil (phd21)

gort818 commented 5 years ago

@phd21 Linux Mint 19 and KDE NEON should already have qtwebengine with codecs in the repos.. You should not have to do anything.

from the readme

Ubuntu 17.04/17.10/18.04 and Linux Mint 19 - qtwebengine comes with proprietary codecs

gort818 commented 5 years ago

@phd21 Also I built a flatpak app and everything works except watching netflix, you cannot access DRM content, so it renders it pointless. I will be building .deb files though.

polarathene commented 5 years ago

I built a flatpak app and everything works except watching netflix, you cannot access DRM content, so it renders it pointless.

Is that due to something with Flatpak or what causes that restriction? I guess that applies to Snaps too?(Not asking for Snap package, just curious about the limitation)

tinywrkb commented 2 years ago

@gort818 are you still interested in Flatpak packaging? I'm adding a Widevine extension for the QtWebEngine base app.
It's still WIP, but you can try it now.
You will need the latest QtWebEngine base ap test build from the WIP PR, and then build and install the Widevine extension. The only change to an app packaging is to add the extension like this.

It would be nice to get feedback, and to know that it works for something other than qutebrowser.

Aex12 commented 2 years ago

I think a Flatpak would be amazing, it'll make it a lot easier to install on distros that don't ship qtwebengine with codecs and drm libs

Hate9 commented 1 year ago

it would be really great to have a flatpak, because personally I'd love to have qtwebflix on my steamdeck, and installing things via pacman on there can be… iffy.