Dedupe and sort photo and video files based on the date they were created.
Project description
sortmedia
Dedupe and sort images and video files based on their creation date.
- Handles images and video files.
- Support for
heic
files (common iOS format). - Supports excluding directories.
- Removes duplicates based on file hash.
- Organizes files into
year/month/day/files.ext
.
Installation
pip install sortmedia
Command Line Usage
Sorting a directory of media files, move to destination directory.
Basic usage - processing a directory of media files foo
and moving them to the destination directory bar
.
sortmedia foo bar
Sorting a directory of media files, copy to destination directory.
Instead of moving files (the default), copy the files leaving the source directory foo
intact.
sortmedia -c foo bar
or
sortmedia --copy foo bar
Exclude directory
You can list a set of directories that we should completely ignore. Assuming the following directory structure:
foo/
ignoreMe/
ignoreMeToo/
img1.jpg
img2.png
...
sortmedia --exclude=foo/ignoreMe,foo/ignoreMeToo foo/ bar/
Skip processing for a specified directory - but still move/copy.
If you have directories that are already sorted, that you'd like to skip processing but still move or copy you can mark them as "no process" directories. Assuming the following directory structure:
foo/
alreadySorted/
img1.jpg
img2.png
...
sortmedia --noprocess=foo/alreadySorted/ foo/ bar/
This will result in alreadySorted/
being moved to bar/
without analyzing the files under that directory.
Programmatic Usage
The primary interface into sortmedia
is the SortMedia
class. This class can be instantiated and used as follows:
from sortmedia.sort import SortMedia
sort = SortMedia()
sort.process('src/', 'dst/')
This will process media in src/
and move the files to dst/
.
Copying instead of moving
You can set the sorter to copy
rather than move
(which is the default):
from sortmedia.sort import SortMedia
sort = SortMedia(copy=True)
Specifying directories to ignore
Lets say you have a directory of photos, photos/
, with two directories you want to completely ignore: ignoreMe
and ignoreMeToo
.
from sortmedia.sort import SortMedia
sort = SortMedia(excludes=['photos/ignoreMe', 'photos/ignoreMeToo'])
Move/copy but do not process directory
In some instances you might have a directory of media (e.g. photos/birthday-photos/
) that you want to move or copy to the destination directory without processing the files in the directory. You can achieve this by passing a list of directories in the noprocess
parameter.
from sortmedia.sort import SortMedia
sort = SortMedia(noprocess=['photos/birthday-photos/`])
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for sortmedia-1.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c9f489c7345439cf50300dcd0561e6b107841f7f0118ed00092670be4cece6e |
|
MD5 | 040916c8b63084db185ca893eed2fba5 |
|
BLAKE2b-256 | f3ec66f287f40eb9e06ea900c0d243aea6b3e7d4bb092c568050826b1c0932b6 |