짧게 결론: 구글시트 누적 기록은 “소프트웨어(API 서버)”에서 합니다.
확장프로그램은 영상/자막 → JSON 전송만 하고, **시트 쓰기(서비스계정, 권한, 리트라이, 중복처리)**는 서버가 맡는 게 안전하고 안정적이에요.
왜 서버에서?
-
보안: 시트 자격증명(서비스계정 키)을 확장에 넣으면 유출 위험 😬
-
안정성: CORS/로그인/OAuth 문제 없이 서버에서 바로 Sheets API 호출 ✅
-
운영 편의: 리트라이, 업서트, 포맷 통일, 로깅을 한곳에서 관리
지금 해야 할 것(짧은 체크리스트)
-
서버 환경변수 설정
-
SHEET_ID,SHEET_NAME=Logs -
SHEETS_CREDENTIALS_JSON(서비스계정 JSON 문자열 또는 파일 경로) -
(선택)
AUTH_TOKEN(확장→서버 인증)
-
구글시트 공유
-
해당 시트를 서비스계정 이메일에 ‘편집자’로 공유.
-
서버 코드 확인
-
/captions/process에서 요약만 추려 Append 하는지(대본 제외):
저장 컬럼 예:extracted_at, video_id, title, url, channel_name, upload_date, duration_seconds, view_count, like_count, comment_count, category, tags, language, is_auto_generated, thumbnail_url, source, extension_version
-
테스트
-
확장 팝업에 Endpoint 저장 → 유튜브에서 CAP 클릭 → 시트에 행 추가되는지 확인.
참고: “확장 쪽에서 직접 시트에 쓰고 싶다”면?
권장하진 않지만, 대안은 Apps Script Web App을 만들어 공개 POST를 받아 시트에 Append하는 방식이에요. 다만 URL 노출/스팸 방지 토큰 처리 등 보안 고려가 필요합니다. 기본 운영은 서버에서 Sheets API가 베스트.
필요하시면 **업서트(video_id 기준 덮어쓰기)**나 카테고리ID→한글명 매핑, 시트 컬럼 헤더 템플릿도 바로 붙여드릴게요.