commit 85c36ec3a73a98afd7536773b61cf91d0dd99689aa66ca88899bba0b6ab521ca
Author: cybrkyd <noreply@cybrkyd.com>
Date: Mon Feb 9 19:40:48 2026 +0000
movie_info
diff --git a/movie_info.sh b/movie_info.sh
new file mode 100644
index 0000000..f152813
--- /dev/null
+++ b/movie_info.sh
@@ -0,0 +1,35 @@
+ #!/bin/bash
+
+ MOVIE_DIR="/media/movies"
+ OUTPUT_FILE="video_info.csv"
+
+ # Write CSV header
+ echo "Filename,Size,Resolution" > "$OUTPUT_FILE"
+
+ # Recursively find all MKV, MP4, and AVI files
+ find "$MOVIE_DIR" -type f \( -iname "*.mkv" -o -iname "*.mp4" -o -iname "*.avi" \) | while read -r FILE
+ do
+
+ FILE_SIZE_BYTES=$(stat --printf="%s" "$FILE")
+
+ # Convert to human-readable MB or GB with 1 decimal
+ if [ "$FILE_SIZE_BYTES" -ge 1073741824 ]; then
+ SIZE_HUMAN=$(awk "BEGIN {printf \"%.1fGB\", $FILE_SIZE_BYTES/1073741824}")
+ else
+ SIZE_HUMAN=$(awk "BEGIN {printf \"%.1fMB\", $FILE_SIZE_BYTES/1048576}")
+ fi
+
+ # Get resolution (width x height)
+ RESOLUTION=$(ffprobe -v error -select_streams v:0 \
+ -show_entries stream=width,height \
+ -of default=noprint_wrappers=1:nokey=1 "$FILE" | paste -sdx -)
+
+ # Escape filename for CSV
+ FILE_NAME=$(basename "$FILE" | sed 's/"/""/g')
+
+ # Write to CSV
+ echo "\"$FILE_NAME\",\"$SIZE_HUMAN\",\"$RESOLUTION\"" >> "$OUTPUT_FILE"
+ done
+
+ echo "Video info written to $OUTPUT_FILE"
+
diff --git a/readme.txt b/readme.txt
new file mode 100644
index 0000000..d32cc3e
--- /dev/null
+++ b/readme.txt
@@ -0,0 +1,7 @@
+ ---------------
+ movie_info.sh
+ ---------------
+
+ Get the filename, file size and resolution of video files in a directory and
+ output to a CSV.
+