Skip to content

MarcinSachs/picronize-renamer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Picronize Renamer

Picronize Renamer is a CLI tool for renaming, copying, or moving photos and videos using the date they were taken. The date is extracted from EXIF metadata or file-level technical data. It supports a wide range of file types, including JPEG, RAW, HEIC, and video files.

✨ Features

  • 📸 Rename photos (JPEG, PNG, HEIC, RAW: DNG, CR2, NEF, etc.)
  • 🎞 Rename videos (MP4, MOV, AVI)
  • 🕒 Extract creation date from EXIF, metadata, or with exiftool fallback
  • ➡️ Process a single folder, or a list of specific media files.
  • 📁 Recursive directory processing
  • 📝 Customizable filename format (via strftime)
  • 🛡️ Handles filename collisions by appending a unique suffix (e.g., _1, _2)
  • ⚙️ Multiple operation modes:
    • Overwrite: Rename files in place.
    • Copy: Copy renamed files to a new destination, preserving originals.
    • Move: Move and rename files to a new destination.
  • 🧰 Optional support for exiftool for advanced formats
  • 🧪 Dry-run mode for previewing changes

🔧 Installation

  1. Clone the repository:
git clone https://github.com/MarcinSachs/picronize-renamer.git
cd picronize-renamer
  1. Install dependencies (and the tool):
pip install .
  1. (Optional) Install ExifTool: For the best support across all file types (especially RAW and HEIC), it's recommended to install ExifTool and ensure it's in your system's PATH, or place exiftool.exe in the exiftool directory within the project.

🚀 Usage

Rename files in a folder (overwrite by default):

picronize-renamer /path/to/media_folder --format "%Y-%m-%d_%H-%M-%S"

Copy specific files to a new folder with new names:

picronize-renamer /path/to/photo1.jpg /path/to/videoA.mp4 --copy-to /path/to/new_organized_media

Move all files from a folder (non-recursively) to a new location:

picronize-renamer /path/to/source_folder --move-to /path/to/destination_folder --no-recursive

🔧 CLI Options

Argument/Option Description Default
paths One or more paths to media files or a single path to a folder containing media files. Required
--format FORMAT Datetime format string for new filenames (e.g., "%Y%m%d_%H%M%S"). "%Y-%m-%d-%H-%M-%S"
--dry-run Show what would be done, without making any changes to files. N/A (flag)
--no-recursive Do not scan subfolders. Only applies if a folder is provided as input. N/A (flag, recursive by default)
--overwrite Rename files in place. This is the default mode if no other operation mode is specified. N/A (flag, default mode)
--copy-to DEST_FOLDER Copy renamed files to DEST_FOLDER. Original files are preserved. N/A
--move-to DEST_FOLDER Move and rename files to DEST_FOLDER.

🧪 Running tests

pytest tests

📄 License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages