diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e1d38ac3a1..5c3d802225 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -428,8 +428,8 @@ importers: specifier: 4.3.3 version: 4.3.3 exiftool-vendored: - specifier: ^33.0.0 - version: 33.5.0 + specifier: ^28.8.0 + version: 28.8.0 express: specifier: ^5.1.0 version: 5.1.0 @@ -5503,6 +5503,10 @@ packages: resolution: {integrity: sha512-a28v2eWrrRWPpJSzxc+mKwm0ZtVx/G8SepdQZDArnXYU/XS+IF6mp8aB/4E+hH1tyGCoDo3KlUCdlSxGDsRkAw==} hasBin: true + batch-cluster@13.0.0: + resolution: {integrity: sha512-EreW0Vi8TwovhYUHBXXRA5tthuU2ynGsZFlboyMJHCCUXYa2AjgwnE3ubBOJs2xJLcuXFJbi6c/8pH5+FVj8Og==} + engines: {node: '>=14'} + batch-cluster@15.0.1: resolution: {integrity: sha512-eUmh0ld1AUPKTEmdzwGF9QTSexXAyt9rA1F5zDfW1wUi3okA3Tal4NLdCeFI6aiKpBenQhR6NmK9bW9tBHTGPQ==} engines: {node: '>=20'} @@ -6849,15 +6853,26 @@ packages: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} + exiftool-vendored.exe@13.0.0: + resolution: {integrity: sha512-4zAMuFGgxZkOoyQIzZMHv1HlvgyJK3AkNqjAgm8A8V0UmOZO7yv3pH49cDV1OduzFJqgs6yQ6eG4OGydhKtxlg==} + os: [win32] + exiftool-vendored.exe@13.42.0: resolution: {integrity: sha512-6AFybe5IakduMWleuQBfep9OWGSVZSedt2uKL+LzufRsATp+beOF7tZyKtMztjb6VRH1GF/4F9EvBVam6zm70w==} os: [win32] + exiftool-vendored.pl@13.0.1: + resolution: {integrity: sha512-+BRRzjselpWudKR0ltAW5SUt9T82D+gzQN8DdOQUgnSVWWp7oLCeTGBRptbQz+436Ihn/mPzmo/xnf0cv/Qw1A==} + os: ['!win32'] + exiftool-vendored.pl@13.42.0: resolution: {integrity: sha512-EF5IdxQNIJIvZjHf4bG4jnwAHVVSLkYZToo2q+Mm89kSuppKfRvHz/lngIxN0JALE8rFdC4zt6NWY/PKqRdCcg==} os: ['!win32'] hasBin: true + exiftool-vendored@28.8.0: + resolution: {integrity: sha512-R7tirJLr9fWuH9JS/KFFLB+O7jNGKuPXGxREc6YybYangEudGb+X8ERsYXk9AifMiAWh/2agNfbgkbcQcF+MxA==} + exiftool-vendored@33.5.0: resolution: {integrity: sha512-7cCh6izwdmC5ZaCxpHFehnExIr2Yp7CJuxHg4WFiGcm81yyxXLtvSE+85ep9VsNwhlOtSpk+XxiqrlddjY5lAw==} engines: {node: '>=20.0.0'} @@ -17584,6 +17599,8 @@ snapshots: baseline-browser-mapping@2.8.31: {} + batch-cluster@13.0.0: {} + batch-cluster@15.0.1: {} batch@0.6.1: {} @@ -19132,11 +19149,27 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 + exiftool-vendored.exe@13.0.0: + optional: true + exiftool-vendored.exe@13.42.0: optional: true + exiftool-vendored.pl@13.0.1: {} + exiftool-vendored.pl@13.42.0: {} + exiftool-vendored@28.8.0: + dependencies: + '@photostructure/tz-lookup': 11.3.0 + '@types/luxon': 3.7.1 + batch-cluster: 13.0.0 + exiftool-vendored.pl: 13.0.1 + he: 1.2.0 + luxon: 3.7.2 + optionalDependencies: + exiftool-vendored.exe: 13.0.0 + exiftool-vendored@33.5.0: dependencies: '@photostructure/tz-lookup': 11.3.0 diff --git a/server/Dockerfile b/server/Dockerfile index 267253ccd9..f01d7d39c1 100644 --- a/server/Dockerfile +++ b/server/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/immich-app/base-server-dev:202511261514@sha256:cbcca5851fd11042463f09797e6d6068d94adbb108749e62aa69159df59c0591 AS builder +FROM ghcr.io/immich-app/base-server-dev:202510092146@sha256:124ec9659cba4a206924de5e3691f84acde16d75fa2b10b7007542424b696b96 AS builder ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0 \ CI=1 \ COREPACK_HOME=/tmp \ @@ -69,7 +69,7 @@ RUN --mount=type=cache,id=pnpm-plugins,target=/buildcache/pnpm-store \ --mount=type=cache,id=mise-tools,target=/buildcache/mise \ cd plugins && mise run build -FROM ghcr.io/immich-app/base-server-prod:202511261514@sha256:c04c1c38dd90e53455b180aedf93c3c63474c8d20ffe2c6d7a3a61a2181e6d29 +FROM ghcr.io/immich-app/base-server-prod:202510092146@sha256:c39b9ad949e7777bce415e6931334aeff7331e04cb7f9df93f9ae44f6ff36b9e WORKDIR /usr/src/app ENV NODE_ENV=production \ diff --git a/server/package.json b/server/package.json index 771fe36dbc..3bf309672b 100644 --- a/server/package.json +++ b/server/package.json @@ -70,7 +70,7 @@ "cookie": "^1.0.2", "cookie-parser": "^1.4.7", "cron": "4.3.3", - "exiftool-vendored": "^33.0.0", + "exiftool-vendored": "^28.8.0", "express": "^5.1.0", "fast-glob": "^3.3.2", "fluent-ffmpeg": "^2.1.2", @@ -105,7 +105,7 @@ "sanitize-filename": "^1.6.3", "sanitize-html": "^2.14.0", "semver": "^7.6.2", - "sharp": "^0.34.5", + "sharp": "^0.34.4", "sirv": "^3.0.0", "socket.io": "^4.8.1", "tailwindcss-preset-email": "^1.4.0", diff --git a/server/src/repositories/metadata.repository.ts b/server/src/repositories/metadata.repository.ts index 32882de0e0..6073ddcb22 100644 --- a/server/src/repositories/metadata.repository.ts +++ b/server/src/repositories/metadata.repository.ts @@ -2,7 +2,6 @@ import { Injectable } from '@nestjs/common'; import { BinaryField, DefaultReadTaskOptions, ExifTool, Tags } from 'exiftool-vendored'; import geotz from 'geo-tz'; import { LoggingRepository } from 'src/repositories/logging.repository'; -import { mimeTypes } from 'src/utils/mime-types'; interface ExifDuration { Value: number; @@ -104,8 +103,7 @@ export class MetadataRepository { } readTags(path: string): Promise { - const args = mimeTypes.isVideo(path) ? ['-ee'] : []; - return this.exiftool.read(path, args).catch((error) => { + return this.exiftool.read(path).catch((error) => { this.logger.warn(`Error reading exif data (${path}): ${error}\n${error?.stack}`); return {}; }) as Promise;