diff --git a/home/programs/media/jellyfin-mpv-shim.nix b/home/programs/media/jellyfin-mpv-shim.nix
new file mode 100644
index 0000000..6852fa5
--- /dev/null
+++ b/home/programs/media/jellyfin-mpv-shim.nix
@@ -0,0 +1,116 @@
+{pkgs, ...}: {
+  home.packages = [pkgs.jellyfin-mpv-shim];
+  xdg.configFile."jellyfin-mpv-shim/conf.json".text = ''
+    {
+          "allow_transcode_to_h265": false,
+          "always_transcode": false,
+          "audio_output": "hdmi",
+          "auto_play": true,
+          "check_updates": false,
+          "client_uuid": "a4204cae-4a0a-47cb-8147-6f3e92efdefb",
+          "connect_retry_mins": 0,
+          "direct_paths": false,
+          "discord_presence": false,
+          "display_mirroring": false,
+          "enable_gui": false,
+          "enable_osc": false,
+          "force_audio_codec": null,
+          "force_set_played": false,
+          "force_video_codec": null,
+          "fullscreen": true,
+          "health_check_interval": 300,
+          "idle_cmd": null,
+          "idle_cmd_delay": 60,
+          "idle_ended_cmd": null,
+          "idle_when_paused": false,
+          "ignore_ssl_cert": false,
+          "kb_debug": "~",
+          "kb_fullscreen": "f",
+          "kb_kill_shader": "k",
+          "kb_menu": "c",
+          "kb_menu_down": "down",
+          "kb_menu_esc": "esc",
+          "kb_menu_left": "left",
+          "kb_menu_ok": "enter",
+          "kb_menu_right": "right",
+          "kb_menu_up": "up",
+          "kb_next": ">",
+          "kb_pause": "space",
+          "kb_prev": "<",
+          "kb_stop": "q",
+          "kb_unwatched": "u",
+          "kb_watched": "w",
+          "lang": null,
+          "lang_filter": "und,eng,jpn,mis,mul,zxx",
+          "lang_filter_audio": false,
+          "lang_filter_sub": false,
+          "local_kbps": 2147483,
+          "log_decisions": false,
+          "media_ended_cmd": null,
+          "media_key_seek": false,
+          "media_keys": true,
+          "menu_mouse": true,
+          "mpv_ext": true,
+          "mpv_ext_ipc": false,
+          "mpv_ext_no_ovr": true,
+          "mpv_ext_path": "${pkgs.mpv}",
+          "mpv_ext_start": true,
+          "mpv_log_level": "info",
+          "notify_updates": false,
+          "play_cmd": null,
+          "playback_timeout": 30,
+          "player_name": "tsuki",
+          "pre_media_cmd": null,
+          "prefer_transcode_to_h265": false,
+          "raise_mpv": true,
+          "remote_direct_paths": false,
+          "remote_kbps": 10000,
+          "sanitize_output": true,
+          "screenshot_dir": null,
+          "screenshot_menu": true,
+          "seek_down": -60,
+          "seek_h_exact": false,
+          "seek_left": -5,
+          "seek_right": 5,
+          "seek_up": 60,
+          "seek_v_exact": false,
+          "shader_pack_custom": false,
+          "shader_pack_enable": true,
+          "shader_pack_profile": null,
+          "shader_pack_remember": true,
+          "shader_pack_subtype": "lq",
+          "skip_credits_always": false,
+          "skip_credits_prompt": false,
+          "skip_intro_always": false,
+          "skip_intro_prompt": true,
+          "stop_cmd": null,
+          "stop_idle": false,
+          "subtitle_color": "#FFFFFFFF",
+          "subtitle_position": "bottom",
+          "subtitle_size": 100,
+          "svp_enable": false,
+          "svp_socket": null,
+          "svp_url": "http://127.0.0.1:9901/",
+          "sync_attempts": 5,
+          "sync_max_delay_skip": 300,
+          "sync_max_delay_speed": 50,
+          "sync_method_thresh": 2000,
+          "sync_osd_message": true,
+          "sync_revert_seek": true,
+          "sync_speed_attempts": 3,
+          "sync_speed_time": 1000,
+          "thumbnail_enable": true,
+          "thumbnail_osc_builtin": true,
+          "thumbnail_preferred_size": 320,
+          "transcode_4k": false,
+          "transcode_av1": false,
+          "transcode_dolby_vision": true,
+          "transcode_hdr": false,
+          "transcode_hevc": false,
+          "transcode_hi10p": false,
+          "transcode_warning": true,
+          "use_web_seek": false,
+          "write_logs": false
+      }
+  '';
+}
diff --git a/home/programs/media/mpv.nix b/home/programs/media/mpv.nix
new file mode 100644
index 0000000..f5d50b4
--- /dev/null
+++ b/home/programs/media/mpv.nix
@@ -0,0 +1,25 @@
+{pkgs, ...}: {
+  programs.mpv = {
+    enable = true;
+    scripts = with pkgs; [
+      mpvScripts.uosc
+      mpvScripts.mpris
+      mpvScripts.smartskip
+      mpvScripts.thumbfast
+      mpvScripts.videoclip
+    ];
+    scriptOpts = {
+      thumbfast = {
+        spawn_first = true;
+        network = true;
+        hwdec = true;
+      };
+    };
+    config = {
+      osc = false;
+      osd-bar = false;
+      volume = 60;
+      save-position-on-quit = true;
+    };
+  };
+}