Git Product home page Git Product logo

google-takeout-exif's Introduction

Google Takeout Exif For Immich

A Rust tool which will intake a Google Takeout archive and copy all files to a new directory, with exif data applied.

This tool was largely hacked together in a weekend for my needs, if you found it useful please let me know and I'll be happy to improve it by adding a proper CLI, documentation, and refactoring the code to be a lot more idiomatic.

The output directory will loop as follows:

> tree output
/output
/output/general/:photos # all photos that are not in an album or shared album
/output/shared/shared/:photos # all photos in shared albums are merged into a single directory
/output/albums/:albumname/:photos

These can then easily be uploaded to Immich using the following commands:

immich upload --key API_KEY --server SERVER_URL -d ./albums --album
immich upload --key API_KEY --server SERVER_URL -d ./shared --album
immich upload --key API_KEY --server SERVER_URL -d ./general

This tool is multithreaded, and does all of the following steps:

  1. Matching up files to their JSON counterparts
  2. Using exiftool internally to apply exif data to the files
  3. Removing duplicate files
  4. Correcting incorrect file extensions (if you use the compression setting in Google Photos this is almost certain to be required)
  5. Adding identifiers to non-unique filenames
  6. Copying files to the output directory

Usage

cd gdog && cargo build --release
./target/release/gdog
USAGE:
    immich-exif-for-google-takeout <input> <output>

google-takeout-exif's People

Contributors

josiahbull avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.