Files
movienight-backend/plugins/jellyfin
google-labs-jules[bot]anddevitq 60756e376c Refactor UI components and fix API accessibility for Jellyfin 10.11+
- Updated ui.js with modern Jellyfin selectors and native-styled components.
- Replaced prompt() with custom dialogs for "Add Movie" and "Rating".
- Added "Mark Viewed" and "Sync Library" actions with UI status feedback.
- Fixed 401 Unauthorized errors by using explicit Jellyfin authorization policies.
- Enhanced .strm file creation logic to support optional URLs.
- Improved Home page integration with a dedicated MovieNight section.

Co-authored-by: devitq <118541411+devitq@users.noreply.github.com>
2026-05-22 06:49:46 +00:00
..
2026-05-20 02:39:57 +03:00
2026-05-20 02:39:57 +03:00
2026-05-20 02:39:57 +03:00

MovieNight Jellyfin Plugin

Thin Jellyfin server plugin for bridging Jellyfin playback/sync signals to the MovieNight backend.

Build

cd plugins/jellyfin/Jellyfin.Plugin.MovieNight
dotnet publish -c Release

Install the published net9.0 plugin files into the Jellyfin data directory under plugins/MovieNight/, then restart Jellyfin. This build targets Jellyfin 10.11.x.

Backend Contract Used

Current implemented calls:

  • POST /api/integrations/jellyfin/sync
  • GET /api/integrations/jellyfin/sync-state
  • POST /api/integrations/jellyfin/events

Event requests use JSON with:

  • event_id
  • event_type
  • occurred_at
  • jellyfin_user_id
  • item_id
  • payload_version
  • payload

The plugin sends X-MovieNight-Plugin-Token when configured. Completed Jellyfin playback stop events are sent as playback.stopped. Transient event push failures are retried three times with the same event_id.

The config page test action posts a small synthetic event to /api/integrations/jellyfin/events and treats 200 as success and 401 as token/config failure.