18 releases

new 0.7.0 Nov 18, 2024
0.6.2 Apr 8, 2024
0.6.1 Jul 15, 2023
0.5.4 Jan 28, 2023
0.3.0 Aug 17, 2021

#171 in Command line utilities

Download history 70/week @ 2024-07-29 68/week @ 2024-09-23 107/week @ 2024-10-28 15/week @ 2024-11-04

122 downloads per month

MIT license

39KB
700 lines

Media Organizer

Organize videos, photos, and audio into a folder date-hierarchy format.

CLI Usage

USAGE:
    media_organizer [OPTIONS] --target <TARGET_MEDIA> --destination <DESTINATION_PATH>

OPTIONS:
    -c, --copy                              Copy the files instead of moving them.
    -d, --destination <DESTINATION_PATH>    The destination path of sorted media.
    -f, --file-type <FILE_TYPE>             The file type to sort. [default: *]
    -h, --help                              Print help information
    -t, --target <TARGET_MEDIA>             The target media to sort.
    -V, --version                           Print version information

Example CLI usage

To quickly organize photos in the target folder, run the following command to output them into the default destination directory.

media_organizer --target test-media --destination sorted_media

While developing with cargo, forward the flags.

cargo run -p media_organizer -- --target ./test-media --destination ./sorted_media

Features

  • Organize photos, videos, and audio in a folder structure based off creation dates.

    • Organize a single media file, or a folder containing unorganized media files.

    • Photos organized based off of EXIF creation dates.

      • Whitelisted photo file types. ("tiff", "TIFF", "heif", "HEIF", "HEIC", "heic", "AVIF", "avif", "jpeg", "jpg", "JPEG", "JPG", "HEIC", "heic", "PNG", "png", "webp", "WEBP")
    • Video organized based off of FFMPEG creation dates.

      • Whitelisted video file types. ("mp4", "MP4", "mov", "MOV")
    • Audio organized based off of ID3 recorded dates.

      • Whitelisted audio file types. ("mp3", "MP3", "wav", "WAV", "aiff", "AIFF")
    • User provides target folder of unorganized images. Will move photos to a default photos directory in the directory where the binary was ran. The outputed folders will be the respective creation dates on the media.

  • Allow configurable destination folder.

    • Use the --dest flag.
  • Organize specific file types. Default to any filetype.

  • Option to copy files or move files.

  • Creation of file paths from file creation date as an organizer fallback.

  • Exposed media_info as a new crate.

Dependencies

For ffmpeg-next package, follow this guide

The version of ffmpeg-next should correlate to the version of ffmpeg installed on the system.

If on windows be sure to install the shared version of FFMPEG!

TODO

  1. option to remove original folder to trash
  2. more file metadata wrapper options
  3. individually modify file metadata and tag metadata (exif, ffmpeg, id3)
  4. tests

Dependencies

~3.5–7.5MB
~131K SLoC