plex-tools/bash/plex-library-stats.sh
deathbybandaid 847fe399f3 test
2024-02-21 11:06:39 -05:00

63 lines
2.8 KiB
Bash

#!/bin/bash
# Generate Plex Library stats
# ChuckPa already wrote a great function for getting host info
source ./HostConfig.sh
HostConfig
logfile="$DBDIR/plexstats.log"
db="$DBDIR/com.plexapp.plugins.library.db"
echo "$(date "+%d.%m.%Y %T") PLEX LIBRARY STATS" | tee -a "$logfile"
echo "Media items in Libraries" | tee -a "$logfile"
query="SELECT Library, Items \
FROM ( SELECT name AS Library, \
COUNT(duration) AS Items \
FROM media_items m \
LEFT JOIN library_sections l ON l.id = m.library_section_id \
WHERE library_section_id > 0 GROUP BY name );"
"$PLEX_SQLITE" -header -line "$db" "$query" | tee -a "$logfile"
echo " " | tee -a
echo "Time to watch" | tee -a "$logfile"
query="SELECT Library, Minutes, Hours, Days \
FROM ( SELECT name AS Library, \
SUM(duration)/1000/60 AS Minutes, \
SUM(duration)/1000/60/60 AS Hours, \
SUM(duration)/1000/60/60/24 AS Days \
FROM media_items m \
LEFT JOIN library_sections l ON l.id = m.library_section_id \
WHERE library_section_id > 0 GROUP BY name );"
"$PLEX_SQLITE" -header -line "$db" "$query" | tee -a "$logfile"
echo " " | tee -a
query="select count(*) from media_items"
result=$("$PLEX_SQLITE" -header -line "$db" "$query")
echo "${result:11} files in library" | tee -a "$logfile"
query="select count(*) from media_items where bitrate is null"
result=$("$PLEX_SQLITE" -header -line "$db" "$query")
echo "${result:11} files missing analyzation info" | tee -a "$logfile"
query="SELECT count(*) FROM media_parts WHERE deleted_at is not null"
result=$("$PLEX_SQLITE" -header -line "$db" "$query")
echo "${result:11} media_parts marked as deleted" | tee -a "$logfile"
query="SELECT count(*) FROM metadata_items WHERE deleted_at is not null"
result=$("$PLEX_SQLITE" -header -line "$db" "$query")
echo "${result:11} metadata_items marked as deleted" | tee -a "$logfile"
query="SELECT count(*) FROM directories WHERE deleted_at is not null"
result=$("$PLEX_SQLITE" -header -line "$db" "$query")
echo "${result:11} directories marked as deleted" | tee -a "$logfile"
query="select count(*) from metadata_items meta \
join media_items media on media.metadata_item_id = meta.id \
join media_parts part on part.media_item_id = media.id \
where part.extra_data not like '%deepAnalysisVersion=2%' \
and meta.metadata_type in (1, 4, 12) and part.file != '';"
result=$("$PLEX_SQLITE" -header -line "$db" "$query")
echo "${result:11} files missing deep analyzation info." | tee -a "$logfile"
exit