Skip to main content

timelapse-gif

timelapse-gif

CI PyPI License: MIT Python 3.13+

A CLI tool that generates timelapse GIF images from image sequences.

Features

  • rename — Rename photo files to YYYY-MM-DD.jpg format based on EXIF date taken
  • generate — Generate a timelapse GIF from images in a directory (with date overlay)

Installation

From PyPI (after publishing)

pip install timelapse-gif

Directly from the repository

pip install git+https://github.com/shogo452/timelapse-gif.git

For development (clone and use the repository)

git clone https://github.com/shogo452/timelapse-gif.git
cd timelapse-gif
uv sync

Requirements

  • Python 3.13+

Usage

Note: For development setup, prefix commands with uv run. If installed from PyPI, you can run timelapse-gif directly.

Show help

timelapse-gif --help
timelapse-gif rename --help
timelapse-gif generate --help

Rename photos

Renames files to YYYY-MM-DD.jpg based on EXIF date taken. Falls back to the file modification date if EXIF data is not available.

# Preview (does not actually rename)
timelapse-gif rename ./photos --dry-run
[dry-run] IMG_0781.jpg -> 2026-02-10.jpg
[dry-run] IMG_0782.jpg -> 2026-02-11.jpg
[dry-run] IMG_0783.jpg -> 2026-02-12.jpg
# Execute (apply renaming)
timelapse-gif rename ./photos

# With prefix (e.g., day_2026-02-17.jpg)
timelapse-gif rename ./photos --prefix day

If multiple files share the same date, a suffix is added like YYYY-MM-DD_1.jpg.

rename options

Option Description
--dry-run Preview only (does not actually rename)
--prefix TEXT Add a prefix to the file name

Generate timelapse GIF

Combines images in a directory in ascending filename order to generate a GIF animation. It is recommended to rename files to date order using the rename command first.

# Basic (default: width 640px, 500ms/frame, date overlay enabled)
timelapse-gif generate ./photos
Generated timelapse.gif (30 frames, 500ms/frame)
# Specify output path, size, and speed
timelapse-gif generate ./photos \
  -o output.gif \
  --width 800 \
  --duration 300

# Filter by date range, without date overlay
timelapse-gif generate ./photos \
  --start 2026-02-10 \
  --end 2026-02-17 \
  --no-date-overlay

# Change font size, loop 3 times
timelapse-gif generate ./photos \
  --font-size 32 \
  --loop 3

generate options

Option Default Description
-o, --output timelapse.gif Output file path
--width 640 Output width (px). Height is calculated automatically from the aspect ratio
-d, --duration 500 Display duration per frame (ms)
--date-overlay / --no-date-overlay Enabled Toggle date overlay display
--font-size 24 Font size for date overlay
--loop 0 Number of loops (0 = infinite loop)
--start None Start date filter (YYYY-MM-DD)
--end None End date filter (YYYY-MM-DD)

Configuration file

You can define default values for CLI options by placing a timelapse-gif.toml file in the current directory. CLI arguments take precedence when specified. The file is ignored if it does not exist.

[rename]
prefix = "day"

[generate]
output = "timelapse.gif"
width = 800
duration = 300
date-overlay = true
font-size = 32
loop = 0

You can also specify a different path using the --config option.

timelapse-gif --config my-config.toml generate ./photos

Typical workflow

# 1. Gather photos into a single directory
ls ./photos/
# IMG_0781.jpg  IMG_0782.jpg  IMG_0783.jpg ...

# 2. Rename by EXIF date (preview first)
timelapse-gif rename ./photos --dry-run --prefix day

# 3. Execute if everything looks good
timelapse-gif rename ./photos --prefix day
ls ./photos/
# day_2026-02-10.jpg  day_2026-02-11.jpg  day_2026-02-12.jpg ...

# 4. Generate timelapse GIF
timelapse-gif generate ./photos -o timelapse.gif --width 800 --duration 300

Supported image formats

JPEG, PNG, TIFF, WebP, GIF

License

MIT

Metadata

Release files for timelapse-gif 0.2.1

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

Source distribution (sdist)

Source distribution for timelapse-gif 0.2.1
File Size Uploaded
timelapse_gif-0.2.1.tar.gz 1.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for timelapse-gif 0.2.1
File Interpreter ABI Platform
timelapse_gif-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 2.0 MB

Release files / timelapse_gif-0.2.1.tar.gz

Download URL timelapse_gif-0.2.1.tar.gz
Size 1.7 MB
Tags Source
SHA-256 checksum
How to use checksums
fa67f7f32384b0fc9af34dc84883a0a3bf9e17de230c3b4bfd5d8bda76f519b4
BLAKE2b-256 checksum
How to use checksums
9067c42e274cb85d787dfcb38423cb018309c3083c08c00b167a9504de670811
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Apr 5, 2026.

Transparency log

Release files / timelapse_gif-0.2.1-py3-none-any.whl

Download URL timelapse_gif-0.2.1-py3-none-any.whl
Size 291.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b815c75bfe109976ded6e451e6a193618ed77734be37959a6231fbe1c9bcf77f
BLAKE2b-256 checksum
How to use checksums
811e1543b974e0117fb9b65b04391caf6435ac7e8e475cb3b04d04bb45e10570
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Apr 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.0

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