구글 포토의 사진 전체 삭제 쉽게 하기

구글 포토(Google Photos)를 이용하시면 가지고 있는 사진을 모두 구글에 보관하여 백업을 받을 수 있는 것은 물론, 언제 어디서든 인터넷만 연결되면 자신이 가지고 있는 사진을 모두 볼 수 있다는 장점을 가지고 있는 멋진 서비스입니다.

특히 압축을 한 ‘고화질’이라는 화질으로 저장을 하면, 모든 사진과 동영상을 무제한으로 저장할 수 있다는 장점까지 지니고 있어 아주 좋은 사진 보관 서비스로 애용되고 있습니다.

그럼에도 불구하고 간혹 서비스를 그만 이용하고 싶거나, 다른 계정으로 사진을 옮겨 보관하고 싶을 때에 구글 포토에 있는 모든 사진을 지우고 싶어질 때가 있습니다.

하지만 구글 포토의 사진을 모두 지우려고 하면 수천, 수만장의 사진을 전체 선택 할 수 없어 사진을 지우고 싶어하시는 분들에게 많은 좌절을 안겨주고 있습니다.

저도 계정을 이동하면서 모든 구글 포토 사진을 지우고 싶었는데, 한글로 구글링을 해도 뚜렷한 해결책을 찾을 수 없던 도중, 외국에서 구글링을 하던 도중 좋은 해결책을 찾았습니다. 바로 구글 크롬에서 관리자 도구를 이용해 스크립트를 실행하여 모든 사진을 지워주는 자동화 도구를 사용하는 방법이었습니다.

근데 이미 올라와있던 자동화 도구는 한글 환경에서 실행되지 않는 문제점이 있어 한글에서도 작동되게 스크립트를 조금 수정하여 Github에 업로드 하였습니다. (Github 링크)

사용법을 설명하기 앞서 원래 스크립트를 만들어주신 Github @mrishab님께 감사드립니다. (원본 google-photos-delete-tool 링크)

아래 사용방법을 올려두니 참고하셔서 사용하시기 바랍니다. 혹시 스크립트를 실행하는데 궁금하신 점이나 문제점이 있다면 댓글 남겨주시기 바랍니다. ^^

시작하기에 앞서

아래의 과정을 순서대로 따라 주세요.

준비물

  • 최근 버전의 웹 브라우저가 필요합니다. 이 스크립트는 구글 크롬(v71.0.3578.98, 역자: v77.0.3865.120에서도 정상 작동) 외에 다른 브라우저에서는 테스트되지 않았습니다. 필요하다면 최근 버전의 구글 크롬을 여기에서 다운받으실 수 있습니다. 그러나, 당신은 구글 크롬 외에도 파이어폭스 또는 MS 엣지 브라우저 등 다른 브라우저 또한 사용 가능합니다.

기타 사항

이 메뉴얼은 구글 크롬 브라우저에서 작동하는 것을 전제로 만들어졌습니다. 혹시 다른 브라우저를 사용한다면, 어떤 것은 같을 수 있으나 키보드 단축키 또는 브라우저 별로 다른 단어를 사용할 수 있습니다.

단계

1. 사진을 삭제할 구글 계정에 로그인합니다.

2. 구글 포토로 이동합니다.

참고: 만약에 구글에 정상 로그인이 되었다면, 당신의 구글 포토 이미지가 표시됩니다.

3. 개발자 도구를 실행합니다. 아래 세 가지 옵션 중 편한 방법을 사용하세요.

  • 키보드 단축키
    CTRL + SHIFT + I를 순차적으로 눌러 실행합니다.
  • 페이지 빈 공간으로부터
    빈 공간을 오른쪽을 눌러 마지막에 있는 ‘검사(N)’를 누릅니다.
  • 상단 메뉴로부터
  1. 메뉴 버튼을 누릅니다. (기본적으로 브라우저 우측 상단에 위치합니다.)
  2. ‘도구 더보기’를 누릅니다.
  3. ‘개발자 도구’를 누릅니다.

4. 개발자 도구가 열렸으면, ‘Console’ 탭을 누릅니다.

참고: 이 창은 이 도구처럼 당신이 원하는 코드를 실행해 주는 도구입니다! 혹시 개발자 도구 콘솔에 대하여 궁금하시다면 구글 콘솔 페이지(https://developers.google.com/web/tools/chrome-devtools/console/)에서 더 알아보실 수 있습니다.

콘솔에서 구글이 적어 둔 경고를 보실 수 있습니다. 이 콘솔을 사용하면 공격자가 Self-XSS라는 공격을 통해 내 신원을 도용하여 개인 정보를 빼낼 수 있습니다. 알지 못하는 코드를 입력하거나 붙여넣지 마세요.

5. delete_photos.js(링크)에 있는 모든 소스 코드를 복사하여, 콘솔에 붙여 넣습니다.

6. 준비가 되었으면 엔터키를 누릅니다. 엔터를 누르고 잠시 뒤 소스 코드가 실행됩니다.

7. 다 됐습니다! 사진이 꾸준히 삭제되는 모습을 보실 수 있습니다. (역자: 창을 끄지 마시고 그대로 컴퓨터를 두십시오.)

기타 참고사항

이 스크립트는 당신의 인터넷 속도가 매우 느린 경우에는 잘 작동하지 않을 수 있습니다. 그런 경우에는, delete_cycle와 press_button_delay에 적혀 있는 숫자를 적절히 늘려주십시오(단위: 밀리세컨드(ms)). 새로운 코드를 작동시키기 위해서는 새로 고침 후 소스 코드를 다시 실행해 주십시오.

gomgom

무엇을 하든 곰곰히 생각하는 곰곰입니다.

You may also like...

62 Responses

  1. yagob7060 댓글:

    정말 감사합니다. 덕분에 사진 정리 깔끔하게 끝냈습니다.

  2. 정명훈 댓글:

    감사합니다 잘 사용했습니다!

  3. 종훈 댓글:

    와 진짜 고마워욯ㅎㅎㅎㅎ 캬 당신같이 좋은사람들이 있다는건 축복

  4. 안영준 댓글:

    오~ 최고의 팁이네요

  5. Madang 댓글:

    무슨 말인지 잘 모르겠어요ㅜㅜ 5번에서 막히네요.

    5. delete_photos.js(링크)에 있는 모든 소스 코드를 복사하여, 콘솔에 붙여 넣습니다.

    소스 코드를 어디서 복사하죠? ㅜㅜ

  6. 처련, 댓글:

    감사합니다. 꼭 찾고 있었던 기능인데. 이거 아니었으면 몇시간동안 아니 며칠동안일지도 모를 어마어마한 시간을 모두 버릴뻔했네요. 실수로 구글포토 백업을 고용량으로 했던적이 있어서 구글드라이브가 꽉찼다는 알람이 떠서 신경쓰였거든요. 담부턴 정신차리고 눌러야지 안되겠어요. 크롬 브라우저에서 자동으로 사진이 삭제가 되는게 엄청 신기하네요 ㅋㅋㅋ감사합니다!!

  7. chanta 댓글:

    VM187:2 Uncaught SyntaxError: Unexpected token ‘const’

    이런 글이 나오면서 진행이 안되네요 ㅠ

    • gomgom 댓글:

      chanta님, 소스 코드를 제대로 붙여 넣으신게 맞으실까요?
      소스 코드만 복사하지 않고 복사가 제대로 되지 않은것이 아닌가 싶습니다. ^^;

  8. Sunkist 댓글:

    구글 활동 모두 확인하다 활동 지우기부터 포토랑 드라이브다 뒤지는 중이네요. 덕분에 잘 해결하고 갑니다. 감사합니다.

  9. tellermator 댓글:

    구글 포토에서 전체 삭제는 안되어도 처음 삭제 시작하고 싶은 사진이나 날짜 하나에 브이 체크를 하나 찍고 원하는 삭제 종료 위치 사진까지 가서
    SHIFT 키 누르고 클릭하면, 그 위치까지 사진들이 선택범위로 잡힙니다. 클릭하지 않아도 그저 그 범위로 잡은 사진 위치 위에 마우스를 옮겨놓고 쉬프키만 눌러주어도 파일선택 범위로 파란색으로 선택 되어지는 것을 볼 수 있습니다.

    크롬에서 해보면 오프라인 설치 프로그램이 아니라 인터넷 웹 환경에서 진행되는 관계로, 너무 처음부터 가장 끝부분 가서 쉬프트 누르고 나면 파일이 너무 많이 저장된 경우 잘 안되는 것 같으니 화면에 로딩 표시가 제대로 끝나 보여지는 사진 위치까지 스크롤을 차분히 내리면서 해보면 확실히 잘됩니다. 컴퓨터 사양, 인터넷 속도, 웹브라우저 상태, 사진파일수 등에 따라 간혹 전체를 한번에 선택범위로 안잡힐 순 있어도 화면에 사진들이 온전히 스크롤 되어 나타나는 상태에서는 쉬프트 키로 사진파일 선택이 잘 작동됩니다.

    그저 한번에 수년간의 전체 사진이 파일 선택이 안된다고 구글 포토가 파일 선택을 막아놓은 것이 아니라, 컴퓨터에 설치된 일반 프로그램과 달리
    웹 페이지에 사진 목록의 표시 로딩이 어느정도 완료된 상태에서 사용자가 그 사진 목록을 보고 선택 제어하게 하는 웹 인터페이스의 환경 구조상 어쩔 수 없는 애로사항으로 인해 사용자들의 오해가 있었던듯 합니다. 그냥 우측에 놓인 날짜 타임라인을 움직여 파일을 선택하기 보다는 마우스 스크롤휠로 컴퓨터 램에 로딩이 어느정도 걸쳐지게 하거나 Page Down키로 화면 표시 로딩이 진행되는 상황을 보면서 특정사진 위에 Shift키를 눌러보면 파일선택이 정상적으로 되는 것을 눈으로 확인해 볼 수 있습니다. 화면 표시 로딩이 제대로 읽혀지지 않은 부분으로 바로 옮겨 shift키를 눌러보면 적용기능이 끊기는 것으로 보아 그 상관관계를 쉽게 알 수 있을 것입니다. 그러니 중간중간에 쉬프트를 누르고 v 체크를 해두면서 스크롤을 내리면 느린 컴퓨터나 인터넷 환경에서도 전체 삭제는 문제없이 실행 가능하리라 봅니다. 가능하면 크롬 창을 여러개 띄우는 것보다는 하나만 띄우고 구글 포토를 웹에서 접속해 이용하면 좀 더 빠른 시간에 전체 삭제 진행이 가능할듯 하구요. 구글이 소프트웨어를 만드는 회사이긴 하지만 그리 친절한 고객 서비스나 안내를 해주는 회사는 아니다 보니 이런 서비스 메뉴 이용 혼란이 생긴 것 아닌가 생각되네요.

    • gomgom 댓글:

      tellermator님, 좋은 댓글 정말 감사드립니다. ^^ 잘 설명해 주셔서 정말 도움이 많이 되는 댓글입니다.
      저 같은 경우에는 수만장이나 되는 사진이 구글 포토에 업로드되어있는 상태에서, 모든 사진을 스크롤을 천천히 한 뒤 Shift를 반복하거나 Page Down을 계속 클릭하여 일괄로 지우기는 너무 힘들었던 것 같습니다. 이 스크립트도 몇 십장의 사진을 클릭하여 사진이 1장도 남지 않을 때까지 자동으로 삭제를 진행해주는 스크립트여서, 아마 많은 분들이 편리하게 이용해주시고 계시는 것 같습니다.

      사실 구글 포토가 웹 인터페이스에서 작동하도록 하여 플랫폼에 관계 없이 대부분의 인터넷 브라우저에서 그 기능이 원활하게 작동하도록 구글이 프로그램을 제작한 것은 칭찬할 만 일이라고 생각합니다.
      하지만 사실 사진의 로딩 없이도, ‘기간별 삭제’ 또는 ‘전체 삭제’ 기능을 만들어 줄 수 있었다는 점에서는 특히 저는 개인적으로 아쉽습니다. 특정 기간을 선택하여 삭제하게 하면 굳이 사진이 로딩되는 시간이 필요 없이, 본인들이 배치 작업을 예약해두어 작동하게 해 주면 좋았을 것 같다는 생각이 듭니다. 전체 삭제 기능 또는 기간별 삭제 기능을 추가로 지원하지 않는 이유는 저로서느느 알 수 없습니다. UX를 구성하는 데에 있어 전체 삭제, 기간별 삭제 기능 등을 별도로 만들기에는 적합하지 않다고 생각하였을 수도 있고, 포토 서비스를 떠나려는 이용자가 포토 서비스를 떠나지 않도록 하고 싶을 수도 있고 다양한 이유가 있을 수 있다고 생각합니다. 어쨌든 예전부터 구글은 전화 고객센터 등을 운영하지 않았던 기억을 되살펴볼 때, 고객 서비스 응대의 입장에서는 확실히 별로인 점은 있지요. (물론 저는 구글 서비스를 늘 잘 이용하고 있습니다. ^^)

      만약에 사진이 아주 많지 않은 경우에는 tellermator님 말씀처럼 삭제 작업을 진행해 주셔도 좋을 것 같습니다. 성의를 담아 써 주신 댓글에 다시 한번 감사드립니다. ^^

  10. jangon 댓글:

    감사합니다 2만7000장정도 있는데 구글드라이브 용량이 다찼다길래 언제 저걸 전부 비우나 싶었는데 덕분에 편하내요

  11. 라루 댓글:

    아 증말 감사합니다ㅠㅠㅠㅠ블랙베리를 쓰다가 폰을 바꾸면서 구글 포토에 자동 저장했던게 좀 걸리더라구요ㅠㅠ
    백업하구 삭제하려는데 전체 삭제가 없으니 막막했는데, 덕분에 편하게 했습니다. 정말 감사드려요~!!!!!!!

  12. ohnggni 댓글:

    저는 사진 말고 앨범들만 싹 지워야하는 경우가 있었습니다. rclone쓰다가 뭔가가 꼬인 건데, 대충 갯수만 50,000개 정도였구요. 다행히 해당 github쪽에 누군가 album 일괄삭제 스크립트도 만들어주셔더군요. 그래서 지금 3일째 걸어놓고 지우는 중입니다. ㅎㅎ

    https://github.com/jsncrdnl/google-photos-delete-tool

    • gomgom 댓글:

      와, ohnggni님! 정말 좋은 정보네요! 제공 감사합니다!! ^^

      이 댓글에 있는 내용을 자세히 알릴 수 있도록 나중에 블로그 내용을 수정하겠습니다. ^^

  13. ohnggni 댓글:

    또한 해당 스크립트는 휴대폰(아이폰)에서도 됩니다. 아이폰/패드의 경우 단축어 기능에서 Run javascript라는 것으로 웹페이지에서 코드를 실행할 수 있는데, 저는 사파리에서 잘 때 걸어놓고(화면은 손쉬운 사용 쪽 건들어서 최소밝기로…) 자고 나면 거의 만개가까이 날라가네요~~

  14. 후루후루룩 댓글:

    구글 포토가 유료가 된다고 하여 사진삭제를 해야했는데 매우 잘 썼습니다.

    • gomgom 댓글:

      후루후루룩님, 그러게요, 구글이 갑자기 이렇게 유료화 정책을 발표하니 너무 아쉽네요. 어쨌든 도움이 되셔서 다행입니다. ^^

  15. 후후후후 댓글:

    삭제 하는데 유용하게 잘 사용하였습니다.
    감사합니다.

  16. 지닝 댓글:

    정말 오랫동안 궁금했고 짜증났던 항목인데 속시원하네요!!! 정말 감사드립니다

  17. 라이언 댓글:

    감사합니다ㅠㅠ 이쪽 세계는 잘 모르는데 덕분에 쉽게 따라할 수 있었습니다. 정말 유용한 글 입니다.

  18. 박종민 댓글:

    고맙습니다

  19. 겨울파도 댓글:

    아… 이런게 신세계인가!!
    덕분에 엄청 편하게 됐습니다 .감사합니다.

  20. 꼭사라 댓글:

    Shift로는 전체선택이 안되어 어떻게하나 했는데, 덕분에 잘 썼습니다 ^^

  21. 이도이 댓글:

    전 사진 여러개 선택까지만 되고 삭제는 안되고 여러사진 선택만 계속 무한반복 되네요 ㅠㅠ

    방법이 없을까요? ㅠㅠ

    • gomgom 댓글:

      이도이님, 혹시 한국어가 아닌 크롬을 사용중이신건 아닌가요? 제 스크립트는 일단 한국어 구글 포토에서만 되게 되어있습니다. 한 번 확인하고 또 댓글 주세요. ^^

    • gomgom 댓글:

      이도이님, 이홍래님. 저도 안 되는 것을 확인하여 소스 코드를 수정하였습니다. 다시 시도해보시고 결과를 알려주실 수 있으실까요?

  22. 이홍래 댓글:

    저도 같은 현상이네요.. 한국어 크롬인데도 선택 체크 사라졌다 다시 체크 되었다만 반복합니다.

    • gomgom 댓글:

      이도이님, 이홍래님. 저도 안 되는 것을 확인하여 소스 코드를 수정하였습니다. 다시 시도해보시고 결과를 알려주실 수 있으실까요?

      • nov 댓글:

        안녕하세요.
        수정해주신코드로 해봤는데, 몇번 돌다가 if문 타고 exit로 빠집니다. if문 주석처리 하고 하면 잘 될듯 합니다.
        저는 구글링에서 찾은 아래코드로 모두 삭제했어요. 마찬가지로 돌다가 if문 타고 빠져나가서 주석처리 했더니 잘되더라구요.
        출처: https://github.com/mrishab/google-photos-delete-tool/issues/32

        // How many photos to delete?
        // Put a number value, like this
        // const maxImageCount = 5896
        const maxImageCount = “ALL_PHOTOS”;

        // Selector for Images and buttons
        const ELEMENT_SELECTORS = {
        checkboxClass: ‘.ckGgle’,
        deleteButton: ‘div[data-delete-origin] button’,
        confirmationButton: ‘#yDmH0d > div.llhEMd.iWO5td > div > div.g3VIld.V639qd.bvQPzd.oEOLpc.Up8vH.J9Nfi.A9Uzve.iWO5td > div.XfpsVe.J9fJmf > button.VfPpkd-LgbsSe.VfPpkd-LgbsSe-OWXEXe-k8QpJ.nCP5yc.kHssdc.HvOprf’
        }

        // Time Configuration (in milliseconds)
        const TIME_CONFIG = {
        delete_cycle: 15000,
        press_button_delay: 3000
        };

        const MAX_RETRIES = 10;

        let imageCount = 0;

        let checkboxes;
        let buttons = {
        deleteButton: null,
        confirmationButton: null
        }

        let deleteTask = setInterval(() => {
        let attemptCount = 1;

        do {
        checkboxes = document.querySelectorAll(ELEMENT_SELECTORS[‘checkboxClass’]);

        } while (checkboxes.length <= 0 && attemptCount++ < MAX_RETRIES);

        // if (checkboxes.length { checkbox.click() });
        console.log(“[INFO] Deleting”, checkboxes.length, “images”);

        setTimeout(() => {

        buttons.deleteButton = document.querySelector(ELEMENT_SELECTORS[‘deleteButton’]);
        buttons.deleteButton.click();

        setTimeout(() => {
        buttons.confirmation_button = document.querySelector(ELEMENT_SELECTORS[‘confirmationButton’]);
        buttons.confirmation_button.click();

        console.log(`[INFO] ${imageCount}/${maxImageCount} Deleted`);
        if (maxImageCount !== “ALL_PHOTOS” && imageCount >= parseInt(maxImageCount)) {
        console.log(`${imageCount} photos deleted as requested`);
        clearInterval(deleteTask);
        console.log(“[SUCCESS] Tool exited.”);
        return;
        }

        }, TIME_CONFIG[‘press_button_delay’]);
        }, TIME_CONFIG[‘press_button_delay’]);
        }, TIME_CONFIG[‘delete_cycle’]);

  23. 댓글:

    혹시 중간에 어떻게 멈추나요? 계속 선택만 되고 지워지지가 않는데 멈춰야 될거 같아서요

  24. 근재 댓글:

    사진 선택만 되고 삭제는 진행되지 않네요 ㅠㅠ

  25. 행복한아버지 댓글:

    안녕하세요.
    좋은자료 공유해 주셔서 감사합니다.

    실행을 하니 화면에 나와 있는 그림파일들이 선택되는데…지워지지는 않네요.

    [INFO] Deleting 614 images VM120:38

    이런 메시지가 창에 계속 뜨고는 있습니다.

    이게 지워지고 있는건지요???

    좋은하루 보내세요.
    감사합니다~^^

  26. 김뭐씨 댓글:

    정말 감사합니다. 유용해요!!

  27. 호호 댓글:

    우와 덕분에 간편하게 구글포토를 정리했습니다. 감사합니다.

  28. yoo 댓글:

    엄청 찾아다녔던 정보를 여기서 얻네요! 정리해주셔서 감사합니다. 컴맹도 따라할 수 있겠어요
    다만 보이는 페이지에 있는 사진 선택만 되고(20~40장) 자동삭제는 안되어 계속 스크롤내리면서 자동선택이 되면, 삭제버튼을 눌러주고있답니다^^;; 혹시 이런 부분도 개선이 될런지요?

    • gomgom 댓글:

      yoo님, 일단 도움이 되었어야 되는데 잘 안되서 아쉽습니다. 혹시 Github에 있는 스크립트를 그대로 다 붙여서 넣으시고 시작하신게 맞으실까요? 저도 한 번 작동을 시간 날 때 확인해 보겠습니다!

  29. 곤란 댓글:

    따라서 콘솔에 붙여넣기 했는데 저도 계속 선택만 되고 삭제는 안되는 현상이 발생되었습니다.
    중단하려고 다 삭제하고 설정창을 껐는데 계속 사진이 선택되는 현상이 나오고 있는데 어떻게 중단을 해야 하나요?ㅠ

  30. 쯔롱 댓글:

    하하 저는 yoo 님,곤란님과 다른 분들의 중간이에요 ㅋㅋ 코드를 돌리니 약 20건 중 1건은 삭제가 되고, 5건은 자동 선택만 뜨고 나머지는 에러가 뜹니다. 그래서 5건씩지우다가 스스로 지우는게 더 빠르겠다 싶어서 중단했어요 ㅎㅎ

    그래도 우선 좋은 소스 공유에 감사드립니다! 2년이 지난 지금까지도 AS를 해주시다니 더더욱이요!

  31. 따핫 댓글:

    좋은 소스 공유 감사드립니다.
    저도 비슷한 에러 증상이 있어서 찾다가 발견한 방법은 구글 포토 영문 photos.google.com로 접속해서 소스 실행하면 정상적으로 삭제 작동합니다.
    출처 : https://blog.naver.com/62anto/222600909512

  32. Kimke 댓글:

    구글 포토에 접속해서 shift키를 누른 상태로 첫 사진을 클릭하고 다시 shift키를 푼 상태에서 스크롤 등으로 눌러 마지막 사진을 shift를 누른 상태로 선택한 후에 휴지통 그림을 선택하니 한 번에 다 지워지네요. ^^

  33. 실밸 댓글:

    저도 써주신대로 했는데 안됐다가 방법을 찾아서 남깁니다~ 도움 됐으면 좋겠어요
    구글에서 삭제 버튼 위치를 바꿨거나 UI를 조금 바꾼거 같더라고요
    이 코드 원래 저작자가 외국 사람인데 변경된 사항 반영 후 코드 업데이트 해놔서 그거 사용하면 됩니다

    * 정리하면
    아래 링크로 구글 포토 영문 버전으로 접속하셔서
    https://photos.google.com/?hl=en

    본문 글에 나온 5번의 코드 대신에
    아래 링크에 나와있는 코드 넣고 엔터 눌러주시면 됩니다
    https://github.com/mrishab/google-photos-delete-tool/blob/master/delete_photos.js

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다