Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/allienx/myexif

Script for organizing photos and videos by their EXIF metadata.
https://github.com/allienx/myexif

Last synced: 5 days ago
JSON representation

Script for organizing photos and videos by their EXIF metadata.

Awesome Lists containing this project

README

        

# myexif

Scripts to help organize photos and videos by their EXIF metadata.

- [Installation](#Installation)
- [Usage](#Usage)
- [normalize](#normalize)
- [organize](#organize)
- [set-permissions](#set-permissions)
- [set-video-dates](#set-video-dates)
- [update-timezone](#update-timezone)

## Installation

Requires

- [nodejs v14+](https://nodejs.org/)
- [exiftool](https://exiftool.org/)
- [yarn](https://yarnpkg.com/)

```sh
yarn global add https://github.com/allienx/myexif#main
```

## Usage

```
Usage: myexif [options] [command]

Scripts to help organize photos and videos by their EXIF metadata.

Options:
-V, --version output the version number
-h, --help display help for command

Commands:
run-all [options] Organizes all photos and videos in by their date and time into .
live-photos [options] Find live photo-video pairs and organize them based on their EXIF tag values.
normalize [options] Normalize filenames using lowercase and dashes. Uses consistent .jpg extension.
organize [options] Organize filenames based on their EXIF tag values.
set-permissions [options] Set permissions (chmod) for the matching files.
set-video-dates [options] Set values for video dates based on the QuickTime:CreateDate EXIF tag (assumed to be UTC).
update-timezone [options] Updates the timezone of the specified EXIF tag for all filenames.
help [command] display help for command
```

### run-all

```
Usage: myexif run-all [options]

Organizes all photos and videos in by their date and time into .

Options:
--dry-run log results without performing any actions (default: false)
-h, --help display help for command
```

### live-photos

```
Usage: myexif live-photos [options]

Find live photo-video pairs and organize them based on their EXIF tag values.

Options:
--dry-run log live photo-video pairs without performing any actions (default: false)
-d, --dest the destination directory to move the files into
-h, --help display help for command
```

### normalize

```
Usage: myexif normalize [options]

Normalize filenames using lowercase and dashes. Uses consistent .jpg extension.

Options:
--dry-run log new file names without performing actions (default: false)
-h, --help display help for command
```

### organize

```
Usage: myexif organize [options]

Organize filenames based on their EXIF tag values.

Options:
--dry-run log exiftool commands without performing any actions (default: false)
-d, --dest the destination directory to move the files into
-h, --help display help for command
```

### set-permissions

```
Usage: myexif set-permissions [options]

Set permissions (chmod) for the matching files.

Options:
--dry-run log new permissions without performing actions (default: false)
-m, --mode new permissions as octal string (default: "644")
-h, --help display help for command
```

### set-video-dates

```
Usage: myexif set-video-dates [options]

Set values for video dates based on the QuickTime:CreateDate EXIF tag (assumed to be UTC).

Options:
--dry-run log exiftool commands without performing any actions (default: false)
-t, --timezone set the QuickTime:CreationDate EXIF tag relative to this timezone
-h, --help display help for command
```

### update-timezone

```
Usage: myexif update-timezone [options]

Updates the timezone of the specified EXIF tag for all filenames.

Options:
--dry-run log exiftool commands without performing any actions (default: false)
-t, --tag name of the EXIF tag to update (default: "QuickTime:CreateDate")
-s, --src-timezone parse the EXIF tag value relative to this timezone (default: "Etc/UTC")
-n, --new-timezone set the EXIF tag value relative to this timezone
-h, --help display help for command
```