
기존에 구글에 있는 사진과 컴퓨터에 있는 사진들을 복합적으로 관리하기 위해 파이썬으로 나만의 프로그램을 만들어 사용하여 왔다. 그런데 어느 날부터인가 갑자기 Google Photos 에서 사진 목록을 불러오지 못하는 것이다. 공유 앨범으로부터 가져오는 것도 되지 않았다. API는 동작하지만 받아오는 JSON 이 텅 비어있는 것.
아래 코드들이 모두 원하는대로 동작하지 않는다.
1. results = service.mediaItems().search(body = {“pageSize”:100, “pageToken”:nextPageToken}).execute()
2. results = service.mediaItems().list(pageSize=100, pageToken=nextPageToken).execute()
3. results = service.albums().list(pageSize=100).execute()
4. service.sharedAlbums().get(shareToken=”AF…..”).execute()
확인해 보니 최근 구글의 API 정책 변경이 있었다. https://developers.googleblog.com/ko/google-photos-picker-api-launch-and-library-api-updates/
기존의 Library API 와 새로운 Picker API 의 차이점은 아래와 같다.
구분 | Google Photos Library API | Google Photos Picker API |
---|---|---|
주요 목적 | 앱이 직접 업로드·생성한 미디어 및 앨범 관리 | 사용자가 직접 선택한 사진·동영상만 앱에 제공 |
전체 라이브러리 접근 | (2025년 3월 31일까지) 전체 라이브러리 나열·검색 가능 (이후) 앱이 만든 미디어만 가능 | 전체 라이브러리에서 사용자가 직접 선택한 항목만 접근 가능 |
앨범 접근 | (이전) 전체 앨범 조회 가능 (이후) 앱이 만든 앨범만 가능 | 앨범 목록 직접 나열 불가, 사용자가 특정 앨범에서 사진 선택 가능(제한적) |
공유 앨범 | 공유 앨범 API 완전 중단(2025.3.31 이후) | 지원하지 않음 |
필터/검색 | 다양한 필터, 메타데이터 기반 검색 가능 | 사용자가 직접 선택한 항목만 제공, 필터링 불가 |
사용자 경험 | 앱이 임의로 미디어를 나열·검색·다운로드 | 사용자가 Google Photos 앱/웹에서 직접 선택 |
API 호출 방식 | 서버/백엔드/로컬 코드에서 직접 REST 호출 | Picker 세션 생성 후 사용자가 Google Photos에서 직접 선택(웹/앱 프론트엔드 중심) |
대표 메서드 | mediaItems.list, mediaItems.search, albums.list 등 | sessions.create (세션 생성), mediaItems.list (선택 항목 조회) |
주요 사용 예 | 앱이 업로드한 사진 관리, 자동 앨범 생성 등 | 사용자가 사진 선택 후 앱에 업로드, 게시글 첨부 등 |
권한(Scope) | photoslibrary.appendonly, photoslibrary.readonly.appcreateddata 등 | Picker API 전용 OAuth scope 필요 |
정책 변화 | 2025.3.31 이후 대폭 제한 | 2025년부터 공식 권장 방식 |
야야, 이러기가 어딨어!! 너무한 거 아닙니까!!