Takeout JSON

구글 테이크아웃의 supplemental-metadata.json, 왜 이름이 잘려 있나요?

2024년에 구글이 테이크아웃 사이드카 이름을 바꾼 이유, 일부 이름이 잘리는 이유, (1) 중복 파일이 짝지어지는 방식, 옛 스크립트가 놓치는 이유를 설명합니다.

예전에는 테이크아웃 내보내기를 잘 고쳐 주던 스크립트가 이번에는 사진 절반을 건너뛰었습니다. 아니면 폴더를 보니 한 사진 옆에는 IMG_5512.HEIC.supplemental-metadata.json이 있고 다른 사진 옆에는 PXL_20240311_183022711.jpg.supplemental-m.json이 있어서, 두 번째 파일이 깨진 것인지 궁금해졌을 수도 있습니다.

둘 다 깨진 것이 아닙니다. 구글이 사이드카 이름 규칙을 바꿨고, 2024년 이전에 쓰인 대부분의 안내 글은 그것을 모릅니다.

2024년의 이름 변경

여러 해 동안 IMG_5512.HEIC의 사이드카는 IMG_5512.HEIC.json이었습니다. 사진 이름 뒤에 .json. 단순했고, 모든 스크립트가 이 규칙으로 짝을 찾았습니다.

2024년 어느 시점에 구글은 IMG_5512.HEIC.supplemental-metadata.json으로 바꿨습니다. 내용도 항목도 같고, 이름만 길어졌습니다. 그 이후에 만든 내보내기는 새 이름을 씁니다. 어딘가 드라이브에 옛 내보내기가 있다면 옛 이름을 쓰고, 섞인 폴더에는 둘 다 들어 있을 수 있습니다.

<사진>.json을 찾는 프로그램은 이제 아무것도 찾지 못하고 넘어갑니다. 어떤 도구는 모든 파일에 대해 "사이드카 없음"을 보고합니다. 어떤 도구는 조용히 파일 날짜, 즉 다운로드 날짜로 넘어가서 사진은 틀린 채 나오고 오류는 없습니다. 이 조용한 실패가 "고쳤는데 안 됐어요"라는 게시글 상당수의 원인입니다.

46자에서 잘림

두 번째 변화는 더 오래됐지만 이름 변경 때문에 더 자주 걸립니다. 구글은 사이드카 파일 이름 전체를 46자에서 잘라 버립니다. 짧은 옛 접미사로는 거의 문제가 되지 않았습니다. .supplemental-metadata.json이 붙자, 사진 이름이 19자를 넘기면 접미사 일부가 잘려 나갑니다.

픽셀 사진 PXL_20240311_183022711.jpg는 26자입니다. .supplemental-metadata.json을 더하면 53자입니다. 구글은 46자로 자릅니다. PXL_20240311_183022711.jpg.supplemental-m.json. 갤럭시의 20240311_183022.jpg20240311_183022.jpg.supplemental-metada.json이 됩니다. 카메라 기종마다 잘리는 위치가 조금씩 달라서, 하나의 접미사로 짝을 찾을 수는 없습니다.

믿을 수 있는 규칙은 이것입니다. 사이드카 이름은 <사진 이름>.supplemental-metadata.json의 앞부분입니다. 스크립트는 고정된 문자열을 비교하지 말고 이것을 확인해야 합니다. 직접 입력한 긴 파일 이름은 사진 이름 자체가 잘릴 수도 있어서, 사이드카 안의 title 항목도 읽어 볼 가치가 있습니다.

(1)이 붙는 자리

구글 포토는 같은 이름의 파일 두 개를 허용하는데, 테이크아웃은 이것을 한 폴더에 넣어야 합니다. 그래서 두 번째에 번호를 붙입니다. IMG_5512.HEICIMG_5512(1).HEIC.

사이드카는 IMG_5512.HEIC.supplemental-metadata.jsonIMG_5512(1).HEIC.supplemental-metadata.json일 것 같지만, 그렇지 않습니다. 번호는 사이드카 이름의 끝, .json 바로 앞으로 옮겨 갑니다. IMG_5512.HEIC.supplemental-metadata(1).json. 옛 방식에서는 IMG_5512.HEIC(1).json이었습니다.

그러니 도구는 사진 이름에서 (1)을 떼고, 사이드카 이름을 만들고, .json 바로 앞에 (1)을 다시 붙여야 합니다. 여기에 잘림까지 합쳐지면 PXL_20240311_183022711.jpg.supplemental-(1).json 같은 이름이 나옵니다. 실제 내보내기에 이런 파일이 들어 있습니다.

번호 붙은 중복은 생각보다 흔합니다. 같은 사진을 두 앨범에 저장했거나, 편집해서 구글이 두 버전을 모두 보관했거나, 두 대의 휴대폰이 모두 IMG_0001.JPG라는 이름을 썼을 때 생깁니다.

편집된 사본

구글 포토 안에서 편집한 사진은 두 파일로 나옵니다. IMG_5512.HEICIMG_5512-edited.HEIC. 사이드카는 보통 원본 이름에 하나만 붙어 있습니다. 편집본에는 자체 사이드카가 없어서, 단순한 도구는 날짜 없이 남겨 둡니다. 꼼꼼한 도구는 -edited를 떼고 원본의 사이드카를 다시 씁니다.

갤럭시 사진에서 특히 자주 걸리는 이유

갤럭시의 기본 파일 이름 20240311_183022.jpg는 19자입니다. 정확히 잘리는 경계에 있어서, 사이드카는 20240311_183022.jpg.supplemental-metada.json처럼 마지막 몇 글자가 빠진 채 나옵니다. 한국 사용자의 테이크아웃에서는 사진 대부분이 이 형식이라, 정확한 접미사만 찾는 옛 스크립트는 라이브러리의 거의 전부를 건너뜁니다. 연사나 모션 포토처럼 이름이 더 긴 파일은 더 많이 잘립니다.

손으로 짝 맞추기

exiftool을 쓴다면 접미사마다 한 번씩, 두 번 실행합니다.

exiftool -r -d %s -tagsfromfile "%d/%F.supplemental-metadata.json" "-DateTimeOriginal<PhotoTakenTimeTimestamp" -ext jpg -ext heic -overwrite_original .
exiftool -r -d %s -tagsfromfile "%d/%F.json" "-DateTimeOriginal<PhotoTakenTimeTimestamp" -ext jpg -ext heic -overwrite_original .

그다음 exiftool -r -if 'not $DateTimeOriginal' -filename .으로 아직 날짜가 없는 파일을 나열합니다. 남은 것이 잘린 이름과 (1) 묶음입니다. 가장 간단한 해결은 짧은 스크립트로 그 사이드카들을 정식 이름으로 바꾼 뒤 exiftool을 다시 돌리는 것입니다. 무료 커뮤니티 도구인 GooglePhotosTakeoutHelper는 이 짝 맞추기를 내장하고 있어서 터미널이 편하다면 보통 이것을 권합니다. 다만 릴리스가 구글의 변경을 늦게 따라갈 때가 있으니, 실행 결과에서 파일이 빠지면 이슈 트래커를 확인하십시오.

앱으로 하기

Takeout JSON Metadata Fixer는 이 모든 경우를 설정 없이 처리합니다. 윈도우, 맥, 리눅스용이고 한국어 인터페이스를 제공합니다.

사진마다 2024년 이름, 옛 이름, 옮겨진 (1) 번호를 차례로 시도하고, 마지막으로 폴더 안에서 정식 이름의 앞부분과 일치하는 .json을 찾습니다. 편집된 사본은 원본의 사이드카를 빌려 씁니다. 그다음 날짜와 GPS를 파일에 씁니다. 몇 장이 사이드카와 짝지어졌고 몇 장이 EXIF나 파일 날짜로 넘어갔는지 보고하므로, 무엇을 지우기 전에 짝 맞추기가 잘 됐는지 볼 수 있습니다. 시험 실행은 아무것도 쓰지 않고 계획만 보여 줍니다. 처음 1000장은 무료입니다.

자주 묻는 질문

supplemental-metadata.json의 내용이 옛 .json과 다른가요?

아니요. 항목은 같습니다. title, photoTakenTime, creationTime, geoData, geoDataExif 등입니다. 파일 이름만 바뀌었습니다.

내 사진에는 사이드카가 아예 없습니다. 왜죠?

라이브 포토의 동영상 부분에는 대개 없습니다. 아주 오래전 업로드에도 없는 경우가 있습니다. 그리고 사이드카가 잘려 있거나 번호가 옮겨져 있으면, 도구가 실제로는 있는 파일을 없다고 보고하는 것일 수 있습니다. 폴더를 직접 들여다보십시오.

사이드카 이름을 옛 방식으로 되돌려도 되나요?

됩니다. 그러면 옛 스크립트가 다시 동작합니다. .supplemental-metadata를 떼고 (1)을 사진 이름 쪽으로 되돌리는 이름 변경이면 충분합니다. 사본으로 먼저 해 보십시오.

구글이 이름을 또 바꿀까요?

그럴 수 있습니다. 어떤 도구든 안전한 방법은 정확한 접미사가 아니라 앞부분 일치와 title 항목으로 짝을 찾는 것입니다.