Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # CSV Header
- echo "Movie,File Size,HDR Type,Dolby Vision Profile Detail,DM Version" > _library_info.csv
- # Get the total number of folders
- total_folders=$(find . -maxdepth 1 -type d | wc -l | tr -d '[:space:]')
- current_folder=0
- # Iterate through folders
- for folder in */; do
- current_folder=$((current_folder + 1))
- # Display progress
- echo "Processing folder $current_folder of $total_folders: $folder"
- # Extract folder name
- movie_name="${folder%/}"
- cd "$folder"
- # Find MKV file
- mkv_file=$(find . -name "*.mkv" -print -quit)
- # Get file size in human-readable format
- file_size=$(ls -lh "$mkv_file" | awk '{print $5}')
- # Get Dolby Vision Profile
- video_info=$(mediainfo "$mkv_file")
- hdr_format=$(echo "$video_info" | grep "HDR format" | head -1)
- dv_profile=$(echo "$hdr_format" | sed 's/^HDR format[[:space:]]*:[[:space:]]*//')
- # Initialize variables
- dv_profile_detail=""
- dm_version=""
- # Check if Dolby Vision Profile exists
- if [ ! -z "$dv_profile" ]; then
- # Extract RPU data
- ffmpeg -hide_banner -loglevel panic -t 1 -i "$mkv_file" -c:v copy -vbsf hevc_mp4toannexb -f hevc - | dovi_tool extract-rpu - -o "$movie_name.RPU.bin"
- dovi_info=$(dovi_tool info "$movie_name.RPU.bin" -s)
- # Parse dovi_tool output
- dv_profile_detail=$(echo "$dovi_info" | sed -n 's/.*Profile: \(.*\)/\1/p' | sed 's/^[ \t]*//;s/[ \t]*$//')
- dm_version=$(echo "$dovi_info" | sed -n 's/.*DM version: \(.*\)/\1/p' | sed 's/^[ \t]*//;s/[ \t]*$//')
- fi
- # Fix for commas
- formatted_movie_name="\"$movie_name\""
- formatted_file_size="\"$file_size\""
- formatted_dv_profile="\"$(echo "$dv_profile" | sed 's/^=//')\""
- formatted_dv_profile_detail="\"$dv_profile_detail\""
- formatted_dm_version="\"$dm_version\""
- # Write to CSV
- echo "$formatted_movie_name,$formatted_file_size,$formatted_dv_profile,$formatted_dv_profile_detail,$formatted_dm_version" >> ../_library_info.csv
- cd ..
- # Cleanup
- rm -f "${folder}"*.bin
- # Progress
- echo "Completed $current_folder of $total_folders"
- done
- echo "Processing complete. CSV file generated."
Advertisement
Add Comment
Please, Sign In to add comment