Takeout JSON

구글 테이크아웃 JSON 파일, 삭제해도 되나요?

됩니다. 다만 먼저 써야 합니다. 테이크아웃의 .json 파일에는 사진의 촬영일과 위치가 들어 있어서, 먼저 지우면 그 정보는 영영 사라집니다. 안전한 순서를 설명합니다.

됩니다. 하지만 이 글에서 가장 중요한 것은 순서입니다.

.json 파일은 구글이 실수로 끼워 넣은 쓰레기가 아닙니다. 파일 안에 그 정보를 갖고 있지 않은 모든 사진의 촬영 날짜, 위치, 직접 쓴 설명, 앨범 정보가 들어 있습니다. 사진이 아직 비어 있는 상태에서 지우면 그 정보를 버리는 것입니다. 되돌리는 방법은 테이크아웃을 다시 돌리는 것뿐이고, 그것은 또 며칠을 기다린다는 뜻입니다.

먼저, 그 파일이 왜 있는지

구글 포토는 사진에 대해 아는 것을 자기 데이터베이스에 둡니다. 촬영일, 위치, 앨범, 즐겨찾기, 그리고 사용자가 앱에서 고친 날짜와 장소입니다. 내보낼 때 구글은 이 정보를 사진 파일 안에 써 주지 않고, 사진마다 작은 텍스트 파일 하나로 옆에 놓습니다. 이것이 IMG_1234.JPG.supplemental-metadata.json 같은 파일입니다.

카메라로 직접 찍은 사진은 EXIF 안에 이미 촬영일이 있어서 이 파일이 없어도 날짜가 맞습니다. 그러나 스크린샷, 카카오톡으로 받은 사진, 스캔한 옛날 사진, 구글 포토 안에서 날짜를 수정한 사진은 파일 안에 날짜가 없습니다. 이런 사진에는 .json이 유일한 기록입니다. 내용은 테이크아웃 JSON 파일이 무엇인지에 정리했습니다.

지워도 되는지 확인하는 방법

사진 전부에 이미 EXIF 촬영일이 있다면 .json은 보탬이 거의 없습니다. exiftool이 있다면 다음 명령이 EXIF 촬영일이 없는 사진을 모두 나열합니다.

exiftool -r -if 'not $DateTimeOriginal' -filename "Takeout/Google Photos"

목록이 비어 있으면 마음 놓고 지우십시오. 대부분의 라이브러리에서는 비어 있지 않습니다. 윈도우 탐색기에서도 어림잡을 수 있습니다. "찍은 날짜" 열을 켜고 정렬해서, 빈 칸이거나 압축을 푼 날짜로 되어 있는 사진이 얼마나 되는지 보면 됩니다. 그 사진들이 .json에 의존하는 사진입니다.

안전한 순서

첫째, 사이드카의 데이터를 사진에 합칩니다. 각 .jsonphotoTakenTimegeoData를 짝이 되는 사진의 EXIF에 쓰고, 파일 날짜도 맞춥니다. 원래 촬영일을 다시 넣는 방법에 방법이 있습니다.

둘째, 몇 장을 확인합니다. 스크린샷 하나, 카카오톡 사진 하나, 오래된 사진 하나를 골라 "찍은 날짜"가 구글 포토에서 보던 값과 같은지 봅니다.

셋째, 그다음에 .json을 지웁니다.

예외가 하나 있습니다. Immich나 PhotoPrism으로 가져갈 계획이라면 그 가져오기가 끝날 때까지 남겨 두십시오. 이 도구들은 사이드카를 직접 읽습니다. immich-go는 .json이 있어야 앨범도 다시 만듭니다.

합치는 것은 쉬운 부분입니다. Takeout JSON Metadata Fixer는 모든 사이드카를 읽어 실제 날짜와 위치를 각 사진에 쓰고, 짝을 찾지 못한 파일이 무엇인지 보고합니다. 결과 폴더에는 .json이 남지 않으므로 따로 지울 것도 없고, 원본 내보내기는 그대로 있습니다. 윈도우, 맥, 리눅스에서 오프라인으로 동작하고 처음 1000장은 무료입니다.

지우면 정확히 무엇을 잃나

날짜와 위치만이 아닙니다. 사이드카에는 구글 포토에서 직접 입력한 사진 설명(description), 즐겨찾기 여부(favorited), 태그한 사람 이름(people), 그리고 원래 파일 이름(title)도 들어 있습니다. 설명은 대부분의 합치기 도구가 EXIF의 설명 항목에 써 주므로 사진과 함께 갑니다. 즐겨찾기와 사람 태그는 EXIF에 표준 자리가 없어서, Immich처럼 사이드카를 읽는 목적지가 아니면 어차피 옮겨지지 않습니다. 이 두 가지가 중요하다면 지우기 전에 어디에 쓸지 먼저 정하십시오.

원래 파일 이름은 테이크아웃이 긴 이름을 잘라 버렸을 때 쓸모가 있습니다. 파일 이름을 직접 지은 사진이 많다면, 합치기 도구가 title을 읽어 이름을 되돌려 주는지 확인한 뒤 지우는 것이 좋습니다.

윈도우에서 한 번에 지우기

합치기가 끝났고 사이드카가 남아 있는 폴더를 정리하려면, 탐색기에서 Takeout 폴더를 열고 오른쪽 위 검색창에 *.json을 입력합니다. 하위 폴더까지 모든 .json이 목록에 나옵니다. Ctrl+A로 전부 선택하고 Delete를 누르면 됩니다. 앨범 폴더의 metadata.json도 같이 지워지는데, 앨범 이름만 들어 있는 파일이라 사진에는 영향이 없습니다. 앨범 구성을 나중에 다시 만들 생각이면 그 파일만 남겨 두어도 됩니다.

맥이나 리눅스 터미널에서는 이렇게 합니다.

find "Takeout/Google Photos" -name "*.json" -delete

지우기 전에 -delete를 빼고 한 번 실행해 목록을 확인하십시오.

용량 때문이라면

.json 하나는 수백 바이트에서 몇 킬로바이트입니다. 1만 개면 대략 10MB입니다. 200GB짜리 라이브러리에서 용량은 이유가 되지 않습니다. 지우는 이유는 폴더가 지저분하고, 갤러리 앱이 "지원하지 않는 파일"이라며 오류를 내고, NAS나 클라우드 동기화가 파일 수 때문에 느려지기 때문입니다.

이미 지워 버렸다면

사진에 합치기 전에 .json을 지웠다면, 파일 안에 EXIF 촬영일이 있는 사진은 여전히 맞습니다. 없는 사진은 압축을 푼 날짜로 남습니다. 되찾으려면 takeout.google.com에서 내보내기를 다시 요청해야 합니다. 이때 전체가 아니라 문제가 된 연도나 앨범만 골라 받으면 더 빠릅니다. 사진 파일은 이미 있으므로 새 내보내기에서는 .json만 꺼내 원래 폴더에 넣고 합치기를 하면 됩니다.

구글 포토에서 이미 사진까지 지웠다면 휴지통에 60일간 남아 있습니다. 그 안이라면 복원한 뒤 다시 내보낼 수 있습니다.

자주 묻는 질문

카메라 사진만 있는데도 합쳐야 하나요?

카메라 사진은 대개 EXIF 촬영일이 있어서 합치지 않아도 날짜가 맞습니다. 다만 구글 포토 안에서 날짜나 위치를 고친 사진은 그 수정값이 .json에만 있습니다. 위의 exiftool 명령으로 확인하는 것이 가장 확실합니다.

metadata.json은 무엇인가요?

앨범 폴더마다 하나씩 있는 앨범 설명 파일입니다. 앨범 제목과 날짜 정도가 들어 있고 사진 데이터는 없습니다. 지워도 사진에는 영향이 없습니다.

구글 포토에 다시 올리면 .json을 읽나요?

아니요. 구글 포토는 업로드할 때 파일 안의 EXIF만 읽습니다. 다른 계정으로 옮기려면 먼저 사진에 합쳐야 날짜가 유지됩니다.