OpenClaw로 유튜브 600개 영상 요약 자동화한 후기 (feat. 삽질의 기록)

들어가며

OpenClaw를 설치하고 나서 제일 먼저 해보고 싶었던 건, 내 유튜브 채널 영상 전체의 내용 요약을 자동으로 만드는 것이었습니다.

제가 운영하는 채널 "업무의 잔머리"에는 영상이 약 600개 쌓여 있었는데, 영상 리스트는 Notion에 정리해 두었지만 각 영상이 어떤 내용인지 요약은 없었거든요. 구독자분들이나 저 자신이 과거 영상을 찾아볼 때 제목만으로는 한계가 있었습니다.

Notion 영상 리스트: https://tricks-offic.notion.site/?source=copy_link

그래서 생각한 파이프라인은 이랬습니다.


구상한 자동화 흐름

YouTube URL (Notion DB에서 읽기)
    ↓
자막 있음? → YouTube 자막 다운로드
자막 없음? → 음성 파일 다운로드 → Whisper로 자막 생성
    ↓
자막 텍스트를 AI API로 5줄 요약
    ↓
요약 결과를 Notion DB에 업로드

간단하죠? OpenClaw한테 이 작업을 시키면 뚝딱 해줄 거라고 기대했습니다.


첫 번째 성공, 그리고 현실 자각

OpenClaw(흑마)에게 이 작업을 지시했더니, 실제로 영상 1개의 요약을 성공적으로 만들어 Notion에 올려줬습니다. 여기까지는 감동이었습니다.

그런데 문제는 비용이었습니다.

영상 1개를 처리하는 데 대략 1~3달러 정도의 토큰이 소비되었습니다.

(물론 중간중간 이런 저런 과정이 더 있어서 다른데 쓴돈이 더 컸을 수도 있겠지만...)

단순 계산을 해보면:

600개 × $1~3 = $600 ~ $1,800 💸

아무리 자동화가 좋다 한들, 유튜브 요약에 수백 달러를 쓸 수는 없죠. OpenClaw에게 대화하면서 코드를 짜고, 실행하고, 결과를 확인하고, 수정하는 이 모든 과정이 토큰을 소모하니까요.


방향 전환: "코드를 만들어줘"

그래서 전략을 바꿨습니다.

OpenClaw한테 직접 600개를 처리하라고 시키는 대신, 이 작업을 자동으로 하는 Python 코드를 만들어달라고 지시한 것이죠.

구체적으로 요청한 건 이랬습니다:

  1. youtube_summarize.py — YouTube API로 자막이 있는 영상의 자막을 받아서 GPT-4o-mini로 요약 → Notion에 저장

  2. download_transcribe.py — 자막이 없는 영상은 음성을 다운로드해서 faster-whisper로 로컬 자막 생성

  3. process_one_video.py — 위 과정을 하나로 합쳐서, 미처리 영상 1개씩 자동 처리하는 메인 스크립트

  4. 이걸 cron에 등록해서 30분마다 1개씩 처리하게 설정

요약에 쓰는 AI는 GPT-4o-mini로 바꿨으니 토큰 비용은 영상당 몇 센트 수준으로 줄어들었습니다.

OpenClaw는 "코드를 만드는 일"에만 토큰을 쓰고, 실제 반복 작업은 로컬에서 돌아가게 한 거죠.


한 번에 되면 자동화가 아니죠 (삽질 모음)

물론 한 번에 깔끔하게 성공하지는 못했습니다. 몇 가지 삽질을 공유합니다.

🔧 Whisper 모델 로드 실패

faster-whisper 모델을 처음 로드할 때 HuggingFace 서버에서 모델을 받아오는데, 중국 네트워크 환경이라 연결이 끊기는 일이 잦았습니다. (이놈의 중국 만리 방화벽은 끝까지 제 발목을 잡습니다. 그려...)

local_files_only=True 옵션으로 캐시된 모델만 사용하게 해서 해결했습니다.

🔧 cron 환경에서 네트워크 안 됨

가장 애먹었던 부분. WSL에서 cron이 돌 때는 사용자의 프록시 환경변수(HTTP_PROXY 등)가 전달되지 않아서, 스크립트가 네트워크에 접근을 못 했습니다.

crontab 상단에 프록시 환경변수 4개를 직접 추가해서 해결.

🔧 쿠키의 역습

yt-dlp에 YouTube 쿠키를 넣으면 더 잘 될 줄 알았는데, 오히려 n-challenge 실패 때문에 포맷이 차단되어 storyboard만 반환되는 문제가 생겼습니다.

쿠키 옵션을 아예 제거하니 정상 작동.

🔧 같은 영상 무한 반복

네트워크가 일시적으로 끊기면 처리 실패한 영상을 계속 재시도하면서 같은 영상에서 빠져나오지 못하는 문제. 처리 불가 영상은 건너뛰도록 로직을 수정했습니다.


결과: 600개 전체 처리 완료 🎉

5일에 걸쳐 30분에 3개씩, 600개 영상의 요약이 전부 Notion에 올라갔습니다.

현재 cron 스케줄도 유지하고 있어서, 새 영상을 올리면 자동으로 요약이 생성됩니다:

  • 매일 05:00 KST — youtube_summarize.py 실행 (자막 있는 신규 영상 처리)

  • 30분마다 — process_one_video.py 실행 (자막 없는 영상 1개씩 처리)


배운 점

OpenClaw(또는 Claude Code 같은 AI 코딩 에이전트)는 "반복 작업을 직접 하는 도구"가 아니라 "반복 작업을 하는 코드를 만드는 도구"로 쓸 때 가장 효율적입니다.

처음에 AI한테 600개를 직접 처리하라고 했다면 수백 달러가 들었을 겁니다.

하지만 "이 작업을 자동화하는 코드를 짜줘"라고 방향을 바꾸니, 코드 작성에 든 토큰 비용 몇 달러 + 실제 처리에 든 GPT-4o-mini 비용 몇 달러로 전체 작업을 끝낼 수 있었습니다.

이게 바로 바이브 코딩의 핵심이라고 생각합니다.

코드를 한 줄 한 줄 직접 쓸 줄 몰라도, 내가 원하는 작업 흐름을 명확하게 설명할 수 있으면 AI가 코드를 만들어주고, 그 코드가 실제 업무를 처리해 줍니다.


기술 스택 참고

구분

사용 기술

AI 에이전트

OpenClaw (흑마)

자막 추출

yt-dlp + faster-whisper (medium, CPU, int8)

요약 AI

GPT-4o-mini

데이터 저장

Notion API

스케줄링

WSL2 cron

네트워크

Astrill VPN 프록시 (중국 환경)


3
6개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요