Tools

Motion Scout 50

Find motion files under a size limit you choose, and review them before copying.

Working Available to download. Below, a sample run from the terminal.

The problem

Pulling every motion file under a size limit out of years of project folders takes a day of sorting by hand.

What I built

A command line tool that finds the motion files, explains each choice, and copies only what fits, without touching a source file.

  • Explains why each file was picked
  • Unsure files go to review
  • Copies, never moves or deletes

DownloadSee it run

Features and limits

Built and tested

  • Scores each video as motion or not, from name, folder, format and duration, and prints the reasons.
  • Sorts into ready, too large and review. Unsure means review, never a guess.
  • Dry run by default; --apply copies, never moves, deletes or overwrites.
  • Optional re-encode with ffmpeg, kept only if the result fits the limit.
  • CSV report of every file, its score, reasons and action.
  • Skips render cache and proxy folders; refuses an output folder inside a scanned folder.

Limits

  • Classification reads names and duration, not the picture. Badly named files land in review.
  • Tested on Linux with Python 3.13 and ffmpeg 7. macOS and Windows not yet tested.
  • Re-encode targets size, not quality: a long clip under a small limit will look soft, or stay in too large.

Planned

Configurable limit, dry run, better classification and no forced network downloads.

How to use
  • Download and unzip. No install: it is one Python file.
  • Dry run: python3 motion_scout.py "/path/to/Projects" --out "/path/to/Motion under 50MB"
  • Read the list and the reasons.
  • Run again with --apply to copy, add --reencode to fit oversized motion files (needs ffmpeg).
  • Open motion-scout-report.csv. To remove the tool, delete its folder.
How it works
  • Standard library only. ffprobe for duration when present; nothing is required or downloaded.
  • Destination names are checked before every write, so nothing is ever overwritten.
  • Re-encode: bitrate budget from the clip's duration, two attempts, result kept only if it is under the limit.
  • Tests make their own clips with ffmpeg and compare source checksums before and after.
Download
  • Download Motion Scout 1.0.0 (ZIP, Python)v1.0.0 · 7.4 KB · MIT
    SHA-256 948fa350c9138854dc9f1fb29b3c2d8833c5a149394846c1560ce1a1f73b00d2
    Tested: Linux, Python 3.13, ffmpeg 7 (5 automated tests). macOS and Windows not yet tested.
Tested versions & limits
  • Pass Dry run writes nothing; classes right on synthetic clips Linux, Python 3.13, ffmpeg 7
  • Pass Apply copies; source checksums unchanged Linux, Python 3.13
  • Pass Second run never overwrites Linux, Python 3.13
  • Pass Re-encode lands under the limit Linux, ffmpeg 7
  • Pass Output inside a source is refused Linux, Python 3.13
  • Pass Release: tests rerun from the unzipped package; public scan clean Linux

Last verified 2026-10-31.

Tested on Linux only.

Details
Input
User-selected folders
Output
Ready files, review queue and CSV report
Runs in
Python 3.9+ on macOS, Linux or Windows. ffmpeg optional. Tested on Linux only so far.
Source
Original, rebuilt from scratch
  • Script
  • Video
  • Automation
  • Downloadable