Skip to main content

Memories Classify

Helping you to keep your personal photo and video memories organized.

Features

  • Photo and video renamer: Rename to a standard format with local timezone using the date and time the file was taken (e.g. PXL_20241014_165237438.jpg → 2024-10-14-18h52m37.jpg).
  • Video encoder: Convert videos to HEVC to reduce file size using ffmpeg (e.g. PXL_20241010_174118780.TS.mp4 94 MB → 2024-10-10-19h41m18.mp4 8 MB).

TODO list

  • Photo Organizer: Automatically organize photos into folders by date or event (vacation, birthday…)
  • Check video encoding quality

Installation

pipx install git+https://github.com/Aohzan/memories-classify.git

Usage

ffmpeg and ffprobe must be installed.

memories-classify --directory "~/path/to/my/pics" --dry-run

Main options (see memories-classify --help for all of them):

  • --output: write the classified files to another directory, keeping the folder structure
  • --keep-original: copy the files instead of moving them, a second run does not copy them again
  • --exclude: regular expressions matched against the start of the paths relative to the directory (e.g. --exclude "custom/" ".*\.gif$")
  • --timezone: timezone of the file names (e.g. Europe/Paris), the system one by default
  • --ffmpeg-input-extra-args / --ffmpeg-output-extra-args: extra ffmpeg arguments, use the = form for values starting with a dash (e.g. --ffmpeg-input-extra-args="-hwaccel auto")

Dates are read from the EXIF data of pictures and the metadata of videos, then from file names like PXL_20241014_165237438.jpg (UTC time). Name conflicts get a letter suffix (a, b…).

my/pics
├── Vacation
│   ├── IMG_1001.jpg
│   ├── IMG_1002.jpg
│   ├── IMG_1003.jpg
│   └── video.mp4
└── Dogs and cats
    └── IMG_2201.jpg

will become

my/pics
├── Vacation
│   ├── 2017-11-11-15h18m17.jpg
│   ├── 2017-11-11-15h18m17a.jpg
│   ├── 2017-11-11-17h21m46.mp4 # 15 MB instead of 94 MB
│   └── 2017-11-11-19h30m01.jpg
└── Dogs and cats
    └── 2020-02-24-12h29m52.jpg

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

uv sync
pre-commit install
uv run pytest

License

This project is licensed under the GNU General Public License v3.0, see LICENSE.

Metadata

Release files for memories-classify 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for memories-classify 1.2.0
File Size Uploaded
memories_classify-1.2.0.tar.gz 26.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for memories-classify 1.2.0
File Interpreter ABI Platform
memories_classify-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 54.0 kB

Release files / memories_classify-1.2.0.tar.gz

Download URL memories_classify-1.2.0.tar.gz
Size 26.5 kB
Tags Source
SHA-256 checksum
How to use checksums
0266ce33169db4b3394e22957d66560122deea54a21429b3472127dfd640c7a1
BLAKE2b-256 checksum
How to use checksums
6dd9ef0b4af59bd329c74ea9a743e6319f86c77e3fd1948b918bcc7be188bc6e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / memories_classify-1.2.0-py3-none-any.whl

Download URL memories_classify-1.2.0-py3-none-any.whl
Size 27.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ad61b528c934db1b1ea2d0292d6d983dacfa0c0bd107313a96f6b7fafc67cfee
BLAKE2b-256 checksum
How to use checksums
dbf8b400672f63e38ea8b832ffac653d10bb25be34775db97794f19592bb1a14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release history Release notifications | RSS feed

1.3.0

2 release files

This release

1.2.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page