Skip to content

Utilities

compare_encodes.py

A standalone diagnostic script that compares source and destination folders to report encoding coverage.

# Command-line usage
python scripts/compare_encodes.py --source /media/movies --dest /media/movies-720p

# Inside a running container
docker exec quality-gate-encoder python3 /app/scripts/compare_encodes.py

# Output as JSON or CSV
python scripts/compare_encodes.py -s /media/movies -d /media/movies-720p --format json
python scripts/compare_encodes.py -s /media/movies -d /media/movies-720p --format csv

# Include files that were skipped (already 720p or lower)
python scripts/compare_encodes.py -s /media/movies -d /media/movies-720p --show-skipped
Option Env Variable Description
-s, --source SOURCE_FOLDER Source folder with original videos
-d, --dest DEST_FOLDER Destination folder with encoded videos
-f, --format OUTPUT_FORMAT Output format: text, json, csv
--show-skipped SHOW_SKIPPED Include skipped low-quality files in the report
--ignore IGNORE_PATTERNS Additional regex patterns to ignore (comma-separated)
Example output
================================================================================
ENCODING COMPARISON REPORT
================================================================================

Source folder:      /app/source
Destination folder: /app/destination

----------------------------------------
SUMMARY
----------------------------------------
Total source files:     4
Total destination files: 3
Matched (encoded):      3
Missing encodes:        1
Orphaned encodes:       0
Skipped (low quality):  0

----------------------------------------
MISSING ENCODES (1 files, 90.9 MiB total)
----------------------------------------
  [    90.9 MiB] Elephants Dream (2006)/Elephants Dream (2006).mkv

================================================================================
STATUS: Issues found - 1 missing encodes
================================================================================

That is the report from the four-film demo library in Getting started. Elephants Dream shows as missing although the encoder skipped it: the report judges quality from markers in the file name (720p, 480p, dvdrip and similar), not with ffprobe, so a 576p file named without one is counted as a missing encode.