DEV Community

Lucy Night
Lucy Night

Posted on

I built a tool to diff video, image, audio, subtitles and text files — all in one place

The problem

Every time I needed to compare two video renders, two exported images,
or two subtitle files — I ended up with three different tools open,
none of them showing me exactly what changed.

So I built DiffALL.

What it does

Drop any two files. It picks the right engine automatically and gives
you a structured diff in seconds.

Video

  • Frame-by-frame SSIM & PSNR scoring
  • Synchronized 3-panel live player (expected / heatmap / actual)
  • Bounding boxes around every changed region
  • Per-second similarity graph — catches transient drops a single score would miss
  • Worst-moment timestamp so you jump straight to the bug  Images
  • Pixel-level difference heatmap
  • Standard mode: Expected | Difference | Actual side by side
  • Flexible mode: ORB feature matching + homography alignment for photos taken at different angles or lighting

Audio

  • MFCC spectral similarity (50% weight)
  • Spectral centroid + RMS energy
  • Mel spectrogram diff overlay
  • Browser playback of both files for manual listening

Subtitles (SRT / VTT)

  • Word Error Rate (WER)
  • Line-by-line diff with insertions and deletions highlighted
  • Timing drift analysis — average, max, and std dev of ms offsets

Text / JSON / CSV / XML / YAML

  • Semantic line diff with inline character-level highlighting
  • JSON mode: recursive flatten into dotted paths, then structural diff

Tech stack

  • Python / Flask on Render free tier
  • OpenCV + scikit-image for image and video analysis
  • librosa for audio (MFCC, spectral centroid)
  • difflib SequenceMatcher for text
  • Chart.js for the SSIM timeline
  • Supabase for auth

Try it

diffall.onrender.com

Free — no sign-up needed for the first comparison.

Would love feedback on what's missing or broken.

Top comments (0)