-
-
Notifications
You must be signed in to change notification settings - Fork 30
3. Media Types
Floppy tracks a mix of episodic, progress-based, and play-count media. Each type maps to one or more metadata providers and has a default “tracking unit” (episodes, pages, plays, etc.).
Highlights:
- Episodic media (TV, Anime, Podcasts) track plays per episode.
- Progress media (Books, Manga, Comics) track pages/chapters/issues.
- Play media (Movies, Games, Board Games, Music) track plays and/or time.
- Music and Podcasts include dedicated hierarchies (artist/album/track and show/episode).
- Anime can be tracked under TV (TMDB) or as Anime (MAL). You only need one path.
- TV / Seasons / Episodes: TMDB
- Movies: TMDB
- Anime: MyAnimeList (MAL)
- Manga: MyAnimeList (MAL), MangaUpdates
- Games: IGDB
- Books: Hardcover, OpenLibrary
- Comics: ComicVine
- Board Games: BoardGameGeek (BGG)
- Music: MusicBrainz
- Podcasts: Pocket Casts
For automation and imports that connect to these providers, see Integrations.
- TV / Seasons / Episodes: track per-episode watches; seasons are grouped views of episodes.
- Movies: each play creates a history entry; repeat plays are counted.
- Anime: episode-based tracking similar to TV, sourced from MAL.
- Manga: chapter-based tracking (or progress value).
- Games: play sessions or repeats (based on your logging style).
- Books: page-based progress.
- Comics: issue-based progress.
- Board Games: play counts (and optional time).
- Music: track-level plays roll up to album and artist history.
- Podcasts: episode-level plays roll up to show history.
Collection metadata (applies across media types) Collection is a physical/format metadata layer (resolution, HDR, audio codec/channels, bitrate, 3D, collected date) that is populated from integrations (primarily Plex, Jellyfin, and Emby). Collection data is fetched in the background and may show a “Fetching collection data…” banner on detail pages. Manual collection entry editing is not supported in the UI yet—collection data is currently integration-driven.
Movies are play-based media. Each time you mark a movie as watched, Floppy records a play in History and updates your stats.
Provider and IDs
- Primary provider: TMDB.
- Movie items are keyed by TMDB IDs; searches and metadata refreshes come from TMDB.
Tracking model
- Movies do not use progress tracking. A watch is a completed play.
- Statuses still apply (Planning, In progress, Completed, Paused, Dropped).
- Scores/ratings are per movie and appear in lists and stats.
- Start/end dates are available for tracking, but the primary signal is a completed play.
History behavior
- Every watch creates a History entry.
- Repeat watches are preserved; the History card shows a play count for repeats.
Details page behavior
- The track/edit button is the main control for status and rating.
- The History button opens a filtered History view for the movie.
- Collection metadata (resolution/HDR/audio/bitrate) can appear when fetched from Plex/Jellyfin/Emby.
Collection data
- Movies can show resolution, HDR, audio codec/channels, bitrate, 3D, and collected date.
- Collection filters treat a movie as collected when collection metadata exists.
Sorting and lists
- Movie lists support the standard sort controls (Title, Rating, Start Date, End Date).
- Progress values are not used for movies, so progress-based sorts effectively fall back to title/date behavior.
Imports and integrations
- Imports (Trakt, Simkl, etc.) map plays to your movie History (see Integrations).
- Plex can supply both play history and collection metadata when connected (see Plex).
Common notes
- If a movie appears without history after import, refresh History or confirm background tasks are running (see Celery and Background Tasks).
- Missing posters/metadata can be re-fetched via Sync Metadata on the detail page.
TV shows are episode-based media. Tracking is centered on episodes and seasons, with show-level progress derived from completed episodes.
Provider and IDs
- Primary provider: TMDB.
- Shows, seasons, and episodes are keyed off TMDB IDs; seasons are nested under their parent show.
- Anime series can be tracked here via TMDB if you prefer TV-style metadata.
Season media type (optional)
- Seasons are treated as a sub-view of a TV show, not a separate library you must enable.
- You can view season detail pages from a TV show even if the Season media type is disabled in the sidebar.
- Enabling Season adds it to the sidebar/search and list views for people who want to browse seasons directly.
Tracking model
- Episodes are the unit of progress; marking an episode watched creates History entries.
- Show-level status reflects your overall progress (Planning, In progress, Completed, Paused, Dropped).
- Season pages are grouped episode views for a specific season.
History behavior
- Each completed episode generates a History entry.
- History filters can target a full show or a specific season.
Details page behavior
- Show pages list seasons; season pages list episodes with per-episode tracking.
- The History button opens a filtered History view for the show or season.
- Collection metadata can include season/episode collected counts and per-episode resolution when sourced from Plex/Jellyfin/Emby.
Collection data
- TV shows show collected season/episode counts; seasons show collected episode counts.
- Episodes can display per-episode metadata (resolution/HDR/audio/bitrate) when available.
- Collection filters treat a show as collected if any episode is collected.
Sorting and lists
- TV lists support a Time Left sort that uses episode runtimes (when available). See Home and Media Lists for sort behavior.
- Time Left groups active in-progress shows first, then completed and dropped shows.
Imports and integrations
- Imports can mark episodes as watched and set show status (see Integrations).
- Plex can supply play history and collection metadata when connected (see Plex).
- Plex webhooks classify media by Plex type (Episode/Movie/Track), so anime in Plex typically scrobbles as TV and is not user-configurable.
Common notes
- If a show looks “caught up,” it can still be In Progress with zero episodes left.
- If time-left values look off, check episode runtimes and refresh metadata.
Anime is episode-based media sourced from MyAnimeList (MAL). It behaves like TV, but uses MAL IDs and metadata.
Provider and IDs
- Primary provider: MyAnimeList (MAL).
- Anime items are keyed by MAL IDs; searches and metadata refreshes come from MAL.
- If you already track an anime as a TV show via TMDB, you don’t need a separate Anime entry.
Tracking model
- Episodes are the unit of progress; marking an episode watched creates History entries.
- Status values match other types (Planning, In progress, Completed, Paused, Dropped).
History behavior
- Each completed episode generates a History entry.
- History filters can target the show or specific seasons (if the provider data includes them).
Details page behavior
- Anime uses the TV-style episode list and season grouping when available.
- The History button opens a filtered History view for the anime.
Collection data
- Collection works the same as TV when anime is tracked via TMDB.
- MAL-based anime may not have collection metadata unless matched from Plex/Jellyfin/Emby.
Imports and integrations
- Imports map MAL entries to Floppy anime items (see Integrations).
- Plex webhooks use Plex’s own media type classification (Episode/Movie/Track), so anime in Plex typically scrobbles as TV, not MAL, and this is not user-configurable.
Common notes
- If MAL metadata is missing or incomplete, try re-syncing metadata or search by alternate titles.
Manga is progress-based media with chapter tracking. It is sourced from MyAnimeList (MAL) by default, with MangaUpdates as an alternate provider.
Provider and IDs
- Primary provider: MyAnimeList (MAL).
- Alternate provider: MangaUpdates (optional).
- Manga items are keyed by provider IDs; switching providers creates a separate entry.
Tracking model
- Chapters are the default unit of progress; you can also log numeric progress values.
- Status values match other types (Planning, In progress, Completed, Paused, Dropped).
- Start/end dates are supported and show up in lists and history.
History behavior
- Progress updates generate History entries.
- Re-reads can create multiple history entries depending on how you log progress.
Details page behavior
- The track/edit modal updates chapter progress and status.
- The History button opens a filtered History view for the manga.
Collection data
- Collection metadata is not typically populated for manga.
Sorting and lists
- Manga lists support standard sorting (Title, Rating, Progress, Start Date, End Date).
- Progress is based on chapters when available.
Imports and integrations
- Imports map MAL entries to Floppy manga items (see Integrations).
- Plex webhooks do not natively classify manga; use MAL/MangaUpdates imports instead.
Common notes
- If chapter counts look off, try refreshing metadata or switching providers.
Books are progress-based media with page tracking. Floppy supports multiple book providers and includes an ISBN scan flow in Search for faster adding.
Provider and IDs
- Primary provider: Hardcover.
- Alternate provider: OpenLibrary.
- Book items are keyed by provider IDs; switching providers creates a separate entry.
Tracking model
- Pages are the default unit of progress.
- Status values match other types (Planning, In progress, Completed, Paused, Dropped).
- Start/end dates are supported and show up in lists and history.
History behavior
- Progress updates generate History entries.
- Re-reads can create multiple history entries depending on how you log progress.
Details page behavior
- The track/edit modal updates page progress and status.
- The History button opens a filtered History view for the book.
Collection data
- Collection metadata is not typically populated for books.
Sorting and lists
- Book lists support standard sorting (Title, Rating, Progress, Start Date, End Date).
- An Author sort option is available when author metadata is present.
- Progress is based on pages when available.
Imports and integrations
- Imports map provider IDs to Floppy book items.
-
Audiobookshelf is supported as an import source; audiobooks imported this way are tagged
format=audiobook. - Barcode (ISBN) scanning is available in Search when the media type is Book. See Search and Add for the scan flow.
Common notes
- If page counts look off, try refreshing metadata or switching providers.
- Custom cover images set by the user are preserved across metadata refreshes.
- Top Authors appears in Statistics when book history data is present.
Comics are progress-based media with issue tracking, sourced from ComicVine.
Provider and IDs
- Primary provider: ComicVine.
- Comic items are keyed by ComicVine IDs.
Tracking model
- Issues are the default unit of progress.
- Status values match other types (Planning, In progress, Completed, Paused, Dropped).
- Start/end dates are supported and show up in lists and history.
History behavior
- Progress updates generate History entries.
- Re-reads can create multiple history entries depending on how you log progress.
Details page behavior
- The track/edit modal updates issue progress and status.
- The History button opens a filtered History view for the comic.
Collection data
- Collection metadata is not typically populated for comics.
Sorting and lists
- Comic lists support standard sorting (Title, Rating, Progress, Start Date, End Date).
- Progress is based on issues when available.
Imports and integrations
- Imports map ComicVine IDs to Floppy comic items.
Common notes
- If issue counts look off, try refreshing metadata.
Games are play-based media with optional time tracking. They can be logged as sessions or repeats depending on your preferences.
Provider and IDs
- Primary provider: IGDB.
- Game items are keyed by IGDB IDs.
Tracking model
- Games can be logged in two styles:
- Sessions: each play session is a single history entry.
- Repeats: total plays/time are spread across the date range.
- Status values match other types (Planning, In progress, Completed, Paused, Dropped).
History behavior
- History entries reflect your logging style (sessions vs repeats; see Preferences).
- You can override logging style per History view.
Details page behavior
- The track/edit modal updates status, score, and time/plays.
- The History button opens a filtered History view for the game.
Collection data
- Collection metadata is not typically populated for games.
Time-to-beat metadata Games display time-to-beat estimates sourced from HowLongToBeat (preferred) with IGDB as a fallback:
- The game detail page shows a breakdown: Main Story, Main + Extras, Completionist, and All Styles.
- Metadata is fetched in the background and refreshes automatically.
- If HowLongToBeat cannot match a game, IGDB time estimates are used.
Sorting and lists
- Game lists support standard sorting (Title, Rating, Progress, Start Date, End Date).
- A Time to Beat sort option is also available, ordering games by total playtime estimate (ascending or descending).
- Progress is typically time-based when time tracking is enabled.
Imports and integrations
- Imports map IGDB IDs to Floppy games.
- Steam imports can populate play history and statuses (see Steam).
Common notes
- If time totals look off, verify your logging style in Preferences.
Board games are play-based media sourced from BoardGameGeek (BGG).
Provider and IDs
- Primary provider: BoardGameGeek (BGG).
- Board game items are keyed by BGG IDs.
Tracking model
- Plays are the default unit of progress.
- Status values match other types (Planning, In progress, Completed, Paused, Dropped).
History behavior
- Each play creates a History entry.
- Logging style settings in Preferences apply similarly to games.
Details page behavior
- The track/edit modal updates play counts and status.
- The History button opens a filtered History view for the board game.
Collection data
- Collection metadata is not typically populated for board games.
Sorting and lists
- Board game lists support standard sorting (Title, Rating, Progress, Start Date, End Date).
Imports and integrations
- Imports map BGG IDs to Floppy board games.
Common notes
- If play counts look off, check for duplicate entries from imports and adjust as needed.
Music uses a dedicated hierarchy: Artist → Album → Track. Plays are tracked at the track level and roll up to albums and artists.
Provider and IDs
- Primary provider: MusicBrainz.
- Artists and albums are keyed by MusicBrainz IDs; track data is pulled from MusicBrainz releases.
Tracking model
- Tracks are the unit of progress; each play creates a History entry.
- Artist and Album trackers summarize play counts and status.
- Status values match other types (Planning, In progress, Completed, Paused, Dropped).
History behavior
- Track plays roll up to album and artist history summaries.
- History entries are grouped by album/day in timeline views.
Details page behavior
- Artist pages link to albums; album pages list tracks with per-track play history.
- History buttons open filtered History views for artist/album/track.
Collection data
- Track entries can include audio codec/channels and bitrate from Plex/Jellyfin/Emby.
- Album pages aggregate collection metadata across tracked tracks.
Imports and integrations
- Last.fm and Plex can scrobble plays into History.
- MusicBrainz metadata sync populates discography and track lists.
Common notes
- If track lists are incomplete, sync metadata on the artist/album page.
Podcasts use a Show → Episode hierarchy. Plays are tracked per episode and roll up to the show.
Provider and IDs
- Primary provider: Pocket Casts.
- Shows and episodes are keyed by Pocket Casts IDs; RSS fallback fills gaps when needed.
Tracking model
- Episodes are the unit of progress; each play creates a History entry.
- Show trackers summarize play counts and status.
- Status values match other types (Planning, In progress, Completed, Paused, Dropped).
History behavior
- Episode plays roll up to show-level summaries.
- History entries are grouped under the show in timeline views.
Details page behavior
- Show pages list episodes with per-episode tracking.
- “Mark All Played” is available when unplayed episodes exist.
- History buttons open filtered History views for the show.
Collection data
- Collection metadata is not shown for podcasts.
Imports and integrations
- Pocket Casts imports can bring in playback history.
- Plex webhooks do not map to the Podcast media type. Plex only classifies webhooks as Episode/Movie/Track, which Floppy treats as TV/Movie/Music. Use Pocket Casts for podcast history.
Common notes
- If episode metadata is missing, try re-syncing the show or rely on RSS fallback.