nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/default.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

126 lines
3.2 KiB
Nix
Raw Normal View History

2021-03-10 13:36:44 +01:00
{ lib
, buildPythonApplication
2022-11-21 21:38:04 +01:00
, copyDesktopItems
2021-03-10 13:36:44 +01:00
, fetchPypi
, gobject-introspection
2021-03-10 13:36:44 +01:00
, jellyfin-apiclient-python
, jinja2
2022-11-21 21:38:04 +01:00
, makeDesktopItem
2021-03-10 13:36:44 +01:00
, mpv
, pillow
, pystray
2022-11-21 21:38:04 +01:00
, python
2021-03-10 13:36:44 +01:00
, python-mpv-jsonipc
, pywebview
, tkinter
, wrapGAppsHook
2021-03-10 13:36:44 +01:00
}:
2020-03-05 10:26:01 +01:00
buildPythonApplication rec {
pname = "jellyfin-mpv-shim";
2023-03-13 11:53:05 +01:00
version = "2.6.0";
2020-03-05 10:26:01 +01:00
src = fetchPypi {
inherit pname version;
2023-03-13 11:53:05 +01:00
sha256 = "sha256-90Z2vgYT/9hBQZgfXeY7l6sGwT5KEY8X4rZMgrbTwrM=";
2020-03-05 10:26:01 +01:00
};
nativeBuildInputs = [
2022-11-21 21:38:04 +01:00
copyDesktopItems
wrapGAppsHook
gobject-introspection
];
2021-03-10 13:36:44 +01:00
propagatedBuildInputs = [
jellyfin-apiclient-python
mpv
pillow
python-mpv-jsonipc
# gui dependencies
pystray
tkinter
# display_mirror dependencies
jinja2
pywebview
2020-08-04 12:41:13 +02:00
];
2020-03-05 10:26:01 +01:00
# override $HOME directory:
# error: [Errno 13] Permission denied: '/homeless-shelter'
#
# remove jellyfin_mpv_shim/win_utils.py:
# ModuleNotFoundError: No module named 'win32gui'
preCheck = ''
export HOME=$TMPDIR
rm jellyfin_mpv_shim/win_utils.py
'';
postPatch = ''
substituteInPlace jellyfin_mpv_shim/conf.py \
--replace "check_updates: bool = True" "check_updates: bool = False" \
--replace "notify_updates: bool = True" "notify_updates: bool = False"
# python-mpv renamed to mpv with 1.0.4
substituteInPlace setup.py \
--replace "python-mpv" "mpv" \
--replace "mpv-jsonipc" "python_mpv_jsonipc"
'';
2022-11-21 21:38:04 +01:00
# Install all the icons for the desktop item
postInstall = ''
for s in 16 32 48 64 128 256; do
mkdir -p $out/share/icons/hicolor/''${s}x''${s}/apps
ln -s $out/${python.sitePackages}/jellyfin_mpv_shim/integration/jellyfin-''${s}.png \
$out/share/icons/hicolor/''${s}x''${s}/apps/${pname}.png
done
'';
# needed for pystray to access appindicator using GI
preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
dontWrapGApps = true;
2021-01-04 03:27:23 +01:00
# no tests
doCheck = false;
pythonImportsCheck = [ "jellyfin_mpv_shim" ];
2022-11-21 21:38:04 +01:00
desktopItems = [
(makeDesktopItem {
name = pname;
exec = pname;
icon = pname;
desktopName = "Jellyfin MPV Shim";
categories = [ "Video" "AudioVideo" "TV" "Player" ];
})
];
meta = with lib; {
2021-04-20 08:40:29 +02:00
homepage = "https://github.com/jellyfin/jellyfin-mpv-shim";
2020-07-01 13:12:56 +02:00
description = "Allows casting of videos to MPV via the jellyfin mobile and web app";
2021-04-20 08:40:29 +02:00
longDescription = ''
Jellyfin MPV Shim is a client for the Jellyfin media server which plays media in the
MPV media player. The application runs in the background and opens MPV only
when media is cast to the player. The player supports most file formats, allowing you
to prevent needless transcoding of your media files on the server. The player also has
advanced features, such as bulk subtitle updates and launching commands on events.
'';
license = with licenses; [
# jellyfin-mpv-shim
gpl3Only
mit
# shader-pack licenses (github:iwalton3/default-shader-pack)
# KrigBilateral, SSimDownscaler, NNEDI3
gpl3Plus
# Anime4K, FSRCNNX
mit
# Static Grain
unlicense
];
2020-03-05 10:26:01 +01:00
maintainers = with maintainers; [ jojosch ];
2023-11-27 02:17:53 +01:00
mainProgram = "jellyfin-mpv-shim";
2020-03-05 10:26:01 +01:00
};
}