Pull in the watches you already have.
Floppy queues a history pull when you connect and can continue automatically every four hours. Playback Reporting preserves individual plays and rewatches when its plugin API is available.
Floppy + Jellyfin
Bring detailed history and live playback from Jellyfin into Floppy, then choose whether watched state should flow back to Jellyfin. Your server stays yours; the direction is yours too.
Connect with a server URL and API key, then let Floppy pull history on a schedule, listen for live events, and optionally push watched or unwatched state back to Jellyfin.
What Jellyfin unlocks
Jellyfin and Floppy can share more than playback. You choose the direction for watched state: Jellyfin to Floppy, Floppy to Jellyfin, both, or off.
Floppy queues a history pull when you connect and can continue automatically every four hours. Playback Reporting preserves individual plays and rewatches when its plugin API is available.
Jellyfin webhook events can update Floppy’s live playback card, current position, percentage, resume context, and history surfaces for movies and TV episodes.
Floppy can push watched or unwatched state to Jellyfin for movies and episodes, manually, hourly, after a webhook, or through the shared sync controls.
Item Added and Item Deleted events maintain Jellyfin library ownership in Floppy. This is collection presence—not a promise of full A/V format metadata.
Upload a Playback Reporting TSV export when the plugin cannot be exposed through the API. Repeated uploads are handled safely, with a 50 MB file limit.
A sensible first run
The basic connection is small. The plugins and sync direction determine how much of Jellyfin’s history and watched state Floppy can keep current.
Generate an API key in Jellyfin.
Enter the server URL and API key.
Use the correct username with an admin key.
Enable TMDB and TVDB providers.
Add webhooks and Playback Reporting as needed.
Choose provider, Floppy, both, or off.
Jellyfin currently has no library selector in Floppy. History pulls scan all Movies and Episodes visible to the connected Jellyfin user. Dashboard or admin API keys are not tied to one user, so provide the exact Jellyfin username during setup.
Two plugins, two jobs
The official and community webhook plugins are two setup paths for the same Floppy integration. Playback Reporting is a separate plugin with a different job: supplying historical per-play detail.
Use the official Stable-repository plugin when your server can access it, or the community plugin when that route fits your setup. Either path can send live events to Floppy.
When the plugin API is available to Floppy, automatic pulls can preserve individual plays, rewatches, dates, and durations. If it is unavailable, Floppy falls back to Jellyfin’s current watched state.
The data directions
Jellyfin playback, Jellyfin history, and watched-state sync should not be treated as the same thing. The distinction makes it easier to understand what Floppy can recover and what it can send back.
Pushing a watched state to Jellyfin does not recreate Floppy rewatch records, ratings, playback timestamps, or resume positions. The outbound path is intentionally narrower.
Webhook behavior
Jellyfin webhooks arrive at Floppy through a tokenized endpoint and are processed asynchronously. They cover movies and TV episodes; music and audiobook playback do not use the active Jellyfin webhook path.
Know the scope
The integration has a strong movie and TV workflow. Keeping its current limits explicit makes the two-way sync promise easier to trust.
Movies and TV episodes, automatic history pulls, Playback Reporting, live webhooks, live playback, library ownership, manual TSV imports, and watched-state sync in both directions.
No Jellyfin Watchlist sync, music or audiobook synchronization, rating synchronization, Plex-style webhook sharing, or rich Jellyfin A/V format metadata.
Floppy prefers TMDB, TVDB, and IMDb IDs, with fallback matching. Keep those providers enabled in Jellyfin; if an item still does not match, correct its metadata in Jellyfin and run another pull.
Without Playback Reporting access, Jellyfin’s current watched state cannot recover rewatches, individual play dates, durations, or older plays that are no longer represented by the server.
Security and operations
The Jellyfin API key is encrypted before storage. Connection health, pull and push timestamps, errors, and Playback Reporting availability are surfaced so a quiet integration does not have to be a mysterious one.
The webhook endpoint is authenticated by the Floppy token in its URL. Treat it as a secret. Regenerating the token means updating Jellyfin and any other integration webhooks that use it.
Floppy records connection health, last pull and push times, last errors, and Playback Reporting availability. Changing the server or Jellyfin user resets incremental sync state safely.
Choose the direction
Connect Jellyfin for detailed history and live playback, then choose whether Floppy, Jellyfin, both, or neither should own watched state.