Medialytics

A free analytics tool for Plex servers

This tool is not associated with Plex, and is intended only for private and non-commercial use

Credentials unset. Please edit scripts.js to set your server IP and token. Please consult the README for more information on how to locate these values.

Debug mode enabled, open developer tools (F12) for more info

Targeted Server:

{{ serverIp }}

Available Libraries

Statistics for {{ selectedLibrary }}

Total Size: {{ selectedLibraryStats.totalItems.toLocaleString() }} movies

Total Size: {{ selectedLibraryStats.totalItems.toLocaleString() }} shows / {{ selectedLibraryStats.seasonSum.toLocaleString() }} seasons / {{ selectedLibraryStats.episodeSum.toLocaleString() }} episodes

Watched: {{ selectedLibraryStats.watchedCount ? selectedLibraryStats.watchedCount.toLocaleString() : '0' }} / {{ selectedLibraryStats.totalItems || '0' }} ({{ watchedPercentage }}%)

Total Duration: {{ selectedLibraryStats.totalDuration }}

Longest {{ selectedLibraryStats.type }}: {{ selectedLibraryStats.longestTitle }} ({{ Math.floor(selectedLibraryStats.longestDuration / 60000) }} mins)

Longest {{ selectedLibraryStats.type }}: {{ selectedLibraryStats.longestTitle }} ({{ selectedLibraryStats.longestDuration.toLocaleString() }} episodes)

Oldest {{ selectedLibraryStats.type }}: {{ selectedLibraryStats.oldestTitle }}

{{ selectedLibraryStats.sortedGenresWatchedCounts }}

Unmatched Items ({{ selectedLibraryStats.unmatchedItems.length }}):

{{ selectedLibraryStats.unmatchedItems.join(', ') }}

Movie Attribute Analysis

Total Matches: {{ filteredMoviesTotal.toLocaleString() }} movies

Title Year Height Width Dimensions Container Video Codec Audio Codec Frame Rate Resolution Bitrate File Size
{{ movie.title }} {{ movie.year || 'Unknown' }} {{ movie.height ? (movie.height + 'px') : 'Unknown' }} {{ movie.width ? (movie.width + 'px') : 'Unknown' }} {{ movie.dimensions || 'Unknown' }} {{ movie.container }} {{ movie.codec }} {{ movie.audioCodec || 'Unknown' }} {{ movie.frameRate || 'Unknown' }} {{ movie.resolution }} {{ movie.bitrate ? (movie.bitrate + ' kbps') : 'Unknown' }} {{ formatMovieFileSize(movie.fileSize) }}
Page {{ currentPage }} of {{ totalPages }}

{{ selectedLibraryStats.type }}s by Resolution / File Size / Bitrate / Container

Largest File: {{ selectedLibraryStats.largestFile }} - {{ formatFileSize(selectedLibraryStats.largestFileSize) }} ({{ selectedLibraryStats.largestFileResolution }})

Smallest File: {{ selectedLibraryStats.smallestFile }} - {{ formatFileSize(selectedLibraryStats.smallestFileSize) }} ({{ selectedLibraryStats.smallestFileResolution }})

Highest Bitrate: {{ selectedLibraryStats.highestBitrateFile }} - {{ selectedLibraryStats.highestBitrate }} kbps

Lowest Bitrate: {{ selectedLibraryStats.lowestBitrateFile }} - {{ selectedLibraryStats.lowestBitrate }} kbps

(Click item or group to zoom in, click group header to zoom out)

Color by:
Bitrate Thresholds:

Shows by Episode Count and Audience Rating

Show with Most Episodes: {{ selectedLibraryStats.mostEpisodesShow || 'N/A' }} ({{ selectedLibraryStats.mostEpisodesCount || 0 }} episodes)

Show with Most Seasons: {{ selectedLibraryStats.mostSeasonsShow || 'N/A' }} ({{ selectedLibraryStats.mostSeasonsCount || 0 }} seasons)

(Click show to zoom in, click show header to zoom out)

Audience Rating
Low High

{{ selectedLibraryStats.type }}s per Audience Rating VS Content Rating

Highest Rated: {{ selectedLibraryStats.ratingsHighest }}

Lowest Rated: {{ selectedLibraryStats.ratingsLowest }}

Watched

Unwatched

{{ selectedLibraryStats.type }} Additions Over Time  ?

Date Range: {{ selectedLibraryStats.firstAddedDate ? selectedLibraryStats.firstAddedDate.toLocaleDateString().replace(/\//g,'-') : '' }} to {{ new Date().toLocaleDateString().replace(/\//g,'-') }}

Total Items: {{ selectedLibraryStats.totalItems }}

Earliest Addition: {{ selectedLibraryStats.firstAdded }} ({{ selectedLibraryStats.firstAddedDate ? selectedLibraryStats.firstAddedDate.toLocaleDateString().replace(/\//g,'-') : 'Unknown' }})

Latest Addition: {{ selectedLibraryStats.lastAdded }} ({{ selectedLibraryStats.lastAddedDate ? selectedLibraryStats.lastAddedDate.toLocaleDateString().replace(/\//g,'-') : 'Unknown' }})

Collections in Library

Total Collections: {{ collectionsData.totalCollections }}

Total Items in Collections: {{ collectionsData.totalItemsInCollections }}

Largest Collection: {{ collectionsData.largestCollection }} ({{ collectionsData.largestCollectionCount }} items)

{{ selectedLibraryStats.type }}s per Genre (Top {{ selectedLibraryStats.genreLimit }})

Total Genres: {{ selectedLibraryStats.totalGenreCount }}

Top Genre: {{ selectedLibraryStats.topGenre }} ({{ selectedLibraryStats.topGenreCount }})

{{ selectedLibraryStats.type }}s per Country (Top {{ selectedLibraryStats.countryLimit }})

Total Countries: {{ selectedLibraryStats.totalCountryCount }}

Top Country: {{ selectedLibraryStats.topCountry }} ({{ selectedLibraryStats.topCountryCount }})

{{ selectedLibraryStats.type }}s per Decade

{{ selectedLibraryStats.type }}s in {{ decadeDrilldown.decade }}

← All Decades › {{ decadeDrilldown.decade }}

Total Decades: {{ selectedLibraryStats.totalDecadeCount }}

Top Decade: {{ selectedLibraryStats.topDecade }} ({{ selectedLibraryStats.topDecadeCount }})

(Click a bar to drill into individual years)

(Click any bar to return to decade view)

{{ selectedLibraryStats.type }}s per Studio (Top {{ selectedLibraryStats.studioLimit }})

Total Studios: {{ selectedLibraryStats.totalStudioCount }}

Top Studio: {{ selectedLibraryStats.topStudio }} ({{ selectedLibraryStats.topStudioCount }})

{{ selectedLibraryStats.type }}s per Content Rating (Top {{ selectedLibraryStats.contentRatingLimit }})

Total Content Ratings: {{ selectedLibraryStats.totalContentRatingCount }}

Top Content Rating: {{ selectedLibraryStats.topContentRating }} ({{ selectedLibraryStats.topContentRatingCount }})

{{ selectedLibraryStats.type }}s per Actor (Top {{ selectedLibraryStats.studioLimit }})

Total Actors: {{ selectedLibraryStats.totalActorCount }}

Top Actor: {{ selectedLibraryStats.topActor }} ({{ selectedLibraryStats.topActorCount }})

{{ selectedLibraryStats.type }}s per Writer (Top {{ selectedLibraryStats.studioLimit }})

Total Writers: {{ selectedLibraryStats.totalWriterCount }}

Top Writer: {{ selectedLibraryStats.topWriter }} ({{ selectedLibraryStats.topWriterCount }})

Only available for movie libraries

{{ selectedLibraryStats.type }}s per Director (Top {{ selectedLibraryStats.studioLimit }})

Total Directors: {{ selectedLibraryStats.totalDirectorCount }}

Top Director: {{ selectedLibraryStats.topDirector }} ({{ selectedLibraryStats.topDirectorCount }})

Only available for movie libraries

{{ selectedLibraryStats.type }}s per Resolution (Top {{ selectedLibraryStats.resolutionLimit }})

Total Resolutions: {{ selectedLibraryStats.totalResolutionCount }}

Top Resolution: {{ selectedLibraryStats.topResolution }} ({{ selectedLibraryStats.topResolutionCount }})

Only available for movie libraries

{{ selectedLibraryStats.type }}s per Container (Top {{ selectedLibraryStats.containerLimit }})

Total Containers: {{ selectedLibraryStats.totalContainerCount }}

Top Container: {{ selectedLibraryStats.topContainer }} ({{ selectedLibraryStats.topContainerCount }})