Changes since last release:
- Jellyfin imports no longer require a manual TSV ritual - Floppy can import Jellyfin watch history automatically, while the associated import code was extracted into a reusable service path. The new flow still depends on a working Jellyfin Playback Reporting setup, but the operator is no longer required to perform the data equivalent of feeding punch cards into a media tracker.
- Media details gained a richer visual surface - Detail pages can expose trailers, photo galleries, lightboxes, and provider backdrops, with TMDB and IGDB artwork handling corrected along the way. External image caching, long-form image storage, and safer Audiobookshelf cover proxying make the result more resilient when providers behave like providers.
- Metadata coverage expanded across books, anime, ratings, and music - Google Books metadata, MyAnimeList ratings, IMDb detail/season ratings, MusicBrainz release selection, custom Hardcover credentials, and improved artist-bio sourcing add more useful data without requiring every provider to pretend it is the same provider.
- Rewatching and playback history are more trustworthy - Duplicate rewatch starts no longer reset an open pass incorrectly, Trakt-imported plays are deduplicated, TV/Anime migrations are safer, Stremio grouped-anime collisions are handled, and episode/game/podcast progress and history APIs expose more precise state.
- Collections, lists, and preferences became more capable - Collection completeness, user-defined custom-field groups, language selection, distinct media-type list filters, list-membership counts, and custom-list cover handling improve the everyday library surfaces. The settings modal has acquired enough responsibilities to warrant supervision.
- The API and background work kept moving toward explicit, bounded behavior - Podcast lookup and import paths were expanded, duration formatting was consolidated, game time-to-beat and episode scores are available through APIs, media/history responses avoid unbounded work, and Home filter facets load lazily instead of making every settings visit pay the full entrance fee.
- Provider correctness, deployment flexibility, and regression resistance improved - Multiple Radarr/Sonarr instances are supported, calendar and season ordering edge cases were repaired, SQLite startup diagnostics and approval-code logging are clearer, malformed provider responses and API exception leaks are handled more safely, and a substantial set of regression tests and targeted fixes landed across the compare range.
What's Changed
- Extract podcast import logic into reusable service module by @dannyvfilms in #926
- Guard against a duplicate rewatch start resetting an open pass's cutoff by @daften in #928
- serve tmdb backdrops from media detail API by @elemated in #934
- Add automatic Jellyfin watch-history import (no manual TSV needed) by @dannyvfilms in #980
- Add authenticated cover proxy for Audiobookshelf imports by @dannyvfilms in #982
- Add a read-only podcast lookup endpoint by @elemated in #987
- Merge seven duration formatters into one by @elemated in #988
- fix: distinct media types for list status filter by @joaomqc in #958
- fix IGDB game backdrop to use artwork_type=2 for Key Art by @elemated in #947
New Contributors
A Note About Floppy
I'm still not a professional developer; I'm an enthusiastic maintainer using AI coding tools to build the media tracker I want to use. Floppy is a standalone project based on the incredible work of FuzzyGrim/Yamtrack, independently maintained and supported by @dannyvfilms. Yamtrack import and documented compatibility paths remain supported, but users install Floppy directly rather than treating an upstream container replacement as a migration plan.
Docker Updates: You can pull the canonical Floppy image at any time:
ghcr.io/dannyvfilms/floppy:latest
The legacy ghcr.io/dannyvfilms/yamtrack:latest image path remains available during the transition for existing Floppy installations. Please use the supported import path when moving data from upstream Yamtrack, preserve the original database, and test on a copy first. A container image swap is a one-way migration, so if you are coming from upstream Yamtrack test in parallel and import your data. Changing your container image runs migrations you cannot roll back.
Contributing: Floppy-specific bug reports, feature requests, integration ideas, and pull requests are welcome in this repository. Thanks to @daften, @elemated, and @joaomqc for the work included here, and to everyone who reported problems or suggested improvements during another unusually active week.
If you have time to help answer questions in the Discord, that would be appreciated. I’ll try to be active there, but GitHub is still keeping most of my attention, so additional support from contributors will help.
Thanks for understanding, and happy tracking!
Full Changelog: v26.8.20...v26.8.27