node package manager
It’s your turn. Help us improve JavaScript. Take the 2017 JavaScript Ecosystem Survey »



For anyone with a large movie collection who craves file organization, movietidy is a nodejs project that helps you keep your movies... tidy.

This project is early in dev and a WIP. Please file issues!

Point movietidy at your movie directory and it will do the following (any file deletion requires your approval):

  • Delete all non-movie files (subtitle files are optional, see usage below)
  • Delete all corrupt/incomplete movie files
  • Delete all sample files
  • Delete files under a specified size
  • Process files to find dupes; keep the highest resolution of the dupes and delete the rest
  • Process files to find dupes; keep the largest sized file of the dupes (if they are the same resolution) and delete the rest
  • Delete empty directories

Current Assumptions

  • Your movie files follow a similar naming pattern (such as Young Frankenstein (1974).mkv)

Environment Setup (OSX)


If starting from scratch, it is easiest to install the Apple Command Line Tools. Download the binary for your version of OSX here: Apple Developer Downloads

Install Node and NPM on OSX (tested on 10.9). NodeJS is the scripting language used for these tools and must be installed on your system. We also need ffmpeg for file metadata probing. The quickest way to do this is via brew. To install brew, then node, and lastly ffmpeg:

ruby -e "$(curl -fsSL"
brew install node
brew install ffmpeg


sudo npm install -g movietidy


Point movietidy at the movie directory you would like to process with --path:

$ movietidy --path ~/Movies/

To look for and clean up files under a specific file size, simply add the --size option (in megabytes):

$ movietidy --path ~/Movies/ --size 500

By default movietidy ignores subtitle files. For the option to delete them, simply add the --subdel option:

$ movietidy --path ~/Movies/ --subdel