about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/video/minitube
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/video/minitube')
-rw-r--r--nixpkgs/pkgs/applications/video/minitube/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/video/minitube/lib_media_src_mpv_mpvwidget.patch16
2 files changed, 60 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/video/minitube/default.nix b/nixpkgs/pkgs/applications/video/minitube/default.nix
new file mode 100644
index 000000000000..3caa2b7fc56c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/minitube/default.nix
@@ -0,0 +1,44 @@
+{ mkDerivation, lib, fetchFromGitHub, fetchpatch, phonon, phonon-backend-vlc, qtbase, qmake
+, qtdeclarative, qttools, qtx11extras, mpv
+
+# "Free" key generated by pasqui23
+, withAPIKey ? "AIzaSyBQvZXseEVvgu5Ega_DI-AIJ55v0OsHmVY" }:
+
+mkDerivation rec {
+  pname = "minitube";
+  version = "3.9.3";
+
+  src = fetchFromGitHub {
+    sha256 = "sha256-ROqROQsV8ddrxYT5mMdkf6rCgCoGr1jpxQ1ohcoEaQs=";
+    rev = version;
+    repo = "minitube";
+    owner = "flaviotordini";
+    fetchSubmodules = true;
+  };
+
+  patches = [
+    # Taken from FreeBSD; already merged upstream in the media submodule
+    # (https://github.com/flaviotordini/media/commit/f6b7020f273e1fc06e6e204fab37a7c8edaa857a)
+    ./lib_media_src_mpv_mpvwidget.patch
+  ];
+
+  nativeBuildInputs = [ qmake qttools ];
+
+  buildInputs = [ phonon phonon-backend-vlc qtbase qtdeclarative qtx11extras mpv ];
+
+  qmakeFlags = [ "DEFINES+=APP_GOOGLE_API_KEY=${withAPIKey}" ];
+
+  meta = with lib; {
+    description = "Stand-alone YouTube video player";
+    longDescription = ''
+      Watch YouTube videos in a new way: you type a keyword, Minitube gives
+      you an endless video stream. Minitube is not about cloning the YouTube
+      website, it aims to create a new TV-like experience.
+    '';
+    homepage = "https://flavio.tordini.org/minitube";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ ];
+    mainProgram = "minitube";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/minitube/lib_media_src_mpv_mpvwidget.patch b/nixpkgs/pkgs/applications/video/minitube/lib_media_src_mpv_mpvwidget.patch
new file mode 100644
index 000000000000..9beff68a0ec4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/minitube/lib_media_src_mpv_mpvwidget.patch
@@ -0,0 +1,16 @@
+diff -Nur a/lib/media/src/mpv/mpvwidget.cpp b/lib/media/src/mpv/mpvwidget.cpp
+--- a/lib/media/src/mpv/mpvwidget.cpp
++++ b/lib/media/src/mpv/mpvwidget.cpp
+@@ -30,7 +30,11 @@
+     qDebug() << "initializeGL" << nativeParent;
+     if (nativeParent == nullptr) qFatal("No native parent");
+ 
+-    mpv_opengl_init_params gl_init_params{get_proc_address, this, nullptr};
++    #if MPV_CLIENT_API_VERSION < MPV_MAKE_VERSION(2,0)
++	mpv_opengl_init_params gl_init_params{get_proc_address, this, nullptr};
++    #else
++	mpv_opengl_init_params gl_init_params{get_proc_address, this};
++    #endif
+     mpv_render_param params[]{{MPV_RENDER_PARAM_API_TYPE, (void *)MPV_RENDER_API_TYPE_OPENGL},
+                               {MPV_RENDER_PARAM_OPENGL_INIT_PARAMS, &gl_init_params},
+                               {MPV_RENDER_PARAM_INVALID, nullptr},