업무 적으로 gmail 만 사용 하는데
올해 초부터 구글 저장 용량이 한도에 다다랐다는 글귀를 계속 무시하고 사용했는데
더이상 gmail 이메일 조차 주고 받을수 없는 지경에 다다랏다.
하는 수 없이 정리 하고자 포토, 드라이버 등등 사진 저화질로 바꾸고 별 쑈를 다했는데도
이미 15gb 를 넘어선 21gb 정도 저장된 상태
하는 수 없이 100gb 구글 원을 결제 할까 하다가
구글 포토를 컴퓨터에 백업하고 지우는 방향을 채택했다.
다행히 구글 포토 백업서비스는 지원해서 컴퓨터에 저장하긴 했는데
문제는 구글 포토 자체 비우기 기능이 없다...
사진을 일일이 선택하고 지워주면 되는데 그것도 사진 수십장 내에서 가능한 얘기고..
Shft+클릭 신공으로 처음부터 끝까지 클릭해주면 되지않을까 해봐도 년도를 스크롤 해버리면 다중 드래그 선택은 초기화 된다.
첫장클릭 후 마우스 스크롤 노가다로 겨우겨우 지우고 지우고 하다 다른 방법 없을까 찾아본 바
선구자들은 이미 그 해결책을 찾아놓았다.
// 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', | |
languageAgnosticDeleteButton: 'div[data-delete-origin] button', | |
deleteButton: 'button[aria-label="Delete"]', | |
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']); |
위 스크립트 구문을 구글 크롬 브라우저를 통해 구글 포토 창을 띄워 놓은 상태에서
사진 여백에 우측 클릭 후 검사를 클릭, console 창에 구문을 붙여넣어주고 Enter
사진이 일부구간 자동으로 클릭되고 삭제-> 휴지통 이동하고, 또 그다음 일부구간 클릭되고 삭제 반복구문이다.
이거라도 있어서 그나마 구글 포토를 포맷 할수 있을것 같다.
단, 위 스크립트가 실행되는동안은 컴퓨터를 계속 켜놓고 그창을 바라보고 있어야 한다는것
구글 크롬이어야 한다는 전제조건이 있다.
참조 : https://blog.gomgom.net/delete-all-photos-in-google-photos/
https://blog.naver.com/62anto/222600909512
https://singah.tistory.com/3780
https://github.com/gomgom/google-photos-delete-tool-ko-KR/blob/master/delete_photos.js
https://github.com/mrishab/google-photos-delete-tool/