구글 포토 쉽게 삭제하는 방법

2022. 3. 23. 12:13 플랫폼,컨텐츠/기타

구글 포토에는 사진 전체 지우기 기능이 없으므로 일일히 삭제해야 됩니다.

근데 지금까지 동기화되어 있는 사진의 양이 워낙 많기때문에 스크립트를 이용하여, 쉽게 삭제하는 방법을 알아봅니다.

 

아래 GitHub에서 스크립트로 쉽게 삭제하는 소스코드

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

 

 

1. 맥이나 PC에서 크롬 브라우저로 구글 포토에 접속

 

2. 키보드 F12 키를 눌러 크롬 개발자모드를 열고 Console 탭으로 이동

위와 같이 경고 메시지가 뜨는데, 알고 있는 코드라 붙혀넣을 준비

혹시나 불안하시면 안하시면 됩니다.

 

3. 입력창에 코드를 붙여 넣고 엔터

구글 포토에서 한글을 사용하시는 분들은 아래 코드 입력 후, 엔터치시면 됩니다.

// 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: 'button[aria-label="삭제"]',
    languageAgnosticDeleteButton: 'div[data-delete-origin] > button',
    deleteButton: 'button[aria-label="삭제"]',
    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: 10000,
    press_button_delay: 2000
};

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 <= 0) {
        console.log("[INFO] No more images to delete.");
        clearInterval(deleteTask);
        console.log("[SUCCESS] Tool exited.");
        return;
    }

    imageCount += checkboxes.length;

    checkboxes.forEach((checkbox) => { checkbox.click() });
    console.log("[INFO] Deleting", checkboxes.length, "images");

    setTimeout(() => {
        try {
            buttons.deleteButton = document.querySelector(ELEMENT_SELECTORS['languageAgnosticDeleteButton']);
            buttons.deleteButton.click();
        } catch {
            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']);

 

4. 브라우저에서 자동으로 순차적으로 삭제

자동으로 체크

자동으로 삭제 버튼 클릭 후, 휴지통으로 이동 클릭 되어짐

중간에 멈추면, 다시 코드를 콘솔에 붙혀 넣고 엔터치시면 다시 동작합니다.