Skip to content

Supported Files & Processing

This page describes how immich-go identifies, filters, and processes your media files.

Supported File Types

immich-go supports the same formats as Immich.

Image Formats

  • Standard: .jpg, .jpeg, .png, .gif, .bmp, .tiff, .webp
  • Apple: .heic, .heif
  • RAW: .dng, .cr2, .cr3, .arw, .raf, .nef, .rw2, .orf

Video Formats

  • Common: .mp4, .mov, .avi, .mkv
  • Mobile: .3gp, .m4v
  • Professional: .mts, .m2ts

Metadata Sidecars

  • XMP: .xmp (industry standard)
  • Google Photos: .json
  • Immich Archive: .JSON (generated by immich-go archive)

Automatically Banned Files

immich-go automatically excludes system files and known junk patterns to keep your Immich library clean.

PatternSourceDescription
@eaDir/SynologyThumbnail directory
@__thumb/SynologyThumbnail directory
SYNOFILE_THUMB_*SynologyThumbnail files
Lightroom Catalog/AdobeCatalog directory
.DS_StoremacOSDesktop Services Store
._*macOSAppleDouble resource forks
Recently Deleted/iCloudDeleted items folder

Date Extraction Priority

When determining the "Date Taken" for a photo, immich-go follows this order of priority:

  1. JSON Metadata: From Google Photos or immich-go archives (most reliable).
  2. XMP Sidecar: External .xmp files.
  3. EXIF Metadata: Embedded within the media file.
  4. Filename Parsing: If --date-from-name is enabled, it attempts to guess from patterns like IMG_20230715_143025.jpg.

Output Formats

Text (Default)

Writes logs and progress updates to stderr. Progress is updated line-by-line every 5 seconds.

JSON (--output=json)

Outputs structured JSON Lines (JSONL) to stdout. This is ideal for integration with other tools or web UIs.

json
{
  "type": "progress",
  "immich_read_pct": 45,
  "assets_found": 234,
  "uploaded": 180
}