AI 정보

AI로 유튜브 쇼츠 초간단 만들기 — Python + Claude API + GitHub Actions

체리플랜 2026. 4. 21. 11:49
반응형

 


AI로 만든 쇼츠가 6.3천 조회수 찍은 방법!! 

 

사실 이게 처음엔 아주 소소한 귀찮음에서 시작했어요.

유튜브 채널 보면서 쇼츠 만드는 작업을 하고 있는데, 매번 영상 틀어서 직접 보고 괜찮은 구간 찾아서 타임스탬프 적고...

이 과정이 반복되다 보니까 "이거 어차피 하는 작업이 정해져 있는데 자동화 못 하나?" 싶은 생각이 들었거든요.

결론부터 말하면, 그냥 만들어버렸어요.

만들다 보니 생각보다 훨씬 잘 돌아가서 지금은 매일 아침 알아서 분석 결과가 올라오고 있어요.

전체 과정이랑 어떻게 구현했는지 공유해볼게요.


이 파이프라인, 이게 뭔데요?

 

한 줄로 요약하면 "내가 관심 있는 채널들의 이슈 영상을 매일 자동으로 찾아서, Claude한테 쇼츠 구간 분석 맡기고,

결과를 자동 배포까지 해주는 시스템"이에요.

기존에는 이렇게 하고 있었거든요:

  1. 채널 직접 들어가서 최근 영상 훑기
  2. 조회수 높아 보이는 거 클릭
  3. 영상 처음부터 보면서 구간 찾기
  4. 타임스탬프 메모장에 적기
  5. 그걸 보면서 화면 녹화

이게 하루에 한 채널만 봐도 30분 이상 걸려요. 여러 채널 운영하려면 이것만으로도 시간이 다 가버리는 거죠.

그래서 만든 게 이 파이프라인이에요. 이제는 아침에 일어나면 이미 분석 결과가 올라와 있고, 모바일에서 타임스탬프 눌러서 유튜브 그 지점으로 이동 → 화면 녹화 → 편집, 이 순서로만 하면 돼요.

 


전체 흐름이 어떻게 되냐면

등록한 채널들 자동 스캔
    ↓
이슈 점수 계산해서 상위 영상 선별
    ↓
자막 + 인기 댓글 수집
    ↓
Claude API가 쇼츠 구간 3~5개 분석
    ↓
결과 저장 → 자동 배포

각 단계가 Python 스크립트로 연결돼 있고, GitHub Actions가 매일 정해진 시간에 전체를 실행해요. 새 영상이 없으면 아무것도 안 하고 그냥 종료돼요. 불필요한 API 소모가 없는 구조예요.

쓴 기술 스택은 이렇게요:

  • Python — 전체 파이프라인
  • YouTube Data API v3 — 채널 스캔, 조회수/좋아요 수집
  • youtube-transcript-api — 자막 수집 (API 쿼터 소모 없음)
  • Claude API — 쇼츠 구간 분석 핵심 로직
  • Next.js + Vercel — 분석 결과 조회 사이트
  • GitHub Actions — 매일 자동 실행 및 배포

사실 기술 스택 자체는 엄청 특별한 게 없어요. 익숙한 도구들 조합한 거라서 새로 배워야 하는 게 거의 없었어요.


이슈 영상 고르는 방법 — 단순 조회수 말고

처음엔 그냥 조회수 높은 거 뽑으면 되지 않을까 싶었는데, 그렇게 하면 의미가 없어요.

조회수만 보면 3년 전에 올라온 영상이 상위에 뜨거든요.

쇼츠 만들 때 중요한 건 지금 막 뜨고 있는 영상이잖아요.

그래서 점수 계산 방식을 따로 만들었어요.

점수 = 시간당 조회수 × 0.6
     + 참여율(좋아요+댓글) × 0.3
     + 키워드 가산점 × 0.1

업로드된 지 얼마 안 됐는데 조회수가 빠르게 오르는 영상이 높은 점수를 받는 구조예요.

시간당 조회수에 가중치를 60%나 준 이유가 여기 있어요.

추가로 길이가 짧은 쇼츠 영상은 후보에서 자동으로 제외해요.

이미 쇼츠 포맷인 영상 다시 잘라봤자 퀄리티가 안 나오거든요.


Claude API한테 맡기는 부분

이 부분이 사실 핵심이에요.

자막이랑 인기 댓글을 통째로 Claude한테 넘겨주고 "어디를 잘라야 해?"를 물어봐요.

프롬프트에 기준을 이렇게 명시해뒀어요:

  • 핵심 내용이 담긴 구간
  • 감정적으로 강한 발언이 있는 구간
  • 독립적으로 봐도 이해되는 30~60초짜리

여기서 중요한 게 "독립적으로 봐도 이해되는"이에요.

앞 맥락 모르면 이해 안 되는 구간은 쇼츠로 쓰기 어려워요.

Claude가 이 조건을 꽤 잘 지켜주더라고요.

응답은 JSON으로 받아요:

{
  "clips": [
    {
      "start": "03:24",
      "end": "04:01",
      "title": "이게 진짜 문제였던 거야",
      "hook": "대부분이 모르는 사실인데...",
      "thumbnail_text": "충격적인 진실",
      "hashtags": ["#쇼츠", "#정보", "#유튜브"]
    }
  ]
}

구간, 제목, 후킹 멘트, 썸네일 문구, 해시태그까지 한 번에 나와요. 이걸 그대로 쓰는 게 아니라 참고해서 편집하는 방식이에요.


GitHub Actions로 자동화 마무리

매일 자동으로 돌아가게 하는 건 GitHub Actions 썼어요.

on:
  schedule:
    - cron: '0 21 * * *'  # 매일 오전 6시 KST

0 21 * * *이 KST 기준 오전 6시예요. UTC 기준으로 등록해야 해서 9시간 빼줘야 해요.

처음에 이거 헷갈려서 새벽 3시에 실행된 적 있었어요...

실행 흐름은 이렇게 돼요:

  1. 파이프라인 실행
  2. 새 영상 있으면 분석 결과 MD 파일 생성
  3. 자동 커밋 후 GitHub에 push
  4. Vercel이 변경 감지해서 자동 빌드/배포
  5. 새 영상 없으면 아무것도 안 하고 종료

서버 따로 관리 안 해도 되는 게 제일 마음에 들어요.

Vercel 무료 플랜으로도 충분히 돌아가고, GitHub Actions도 public 레포 기준으로는 무료예요.


비용은 얼마나 드냐면

YouTube Data API: 하루 1만 유닛 무료 한도인데, 이 파이프라인 한 번 실행에 13유닛 정도 써요. 사실상 무제한이에요.

youtube-transcript-api: 완전 무료예요. YouTube API 쿼터를 안 써요.

Claude API: 실제 비용이 발생하는 건 여기뿐이에요. 하루 1번 실행 기준으로 $0.06 정도, 한 달이면 2천 원 수준이에요.

Vercel/GitHub Actions: 무료 플랜으로 운영 중이에요.

결론적으로 한 달에 커피 한 잔 값 이하로 매일 아침 분석 결과 받아볼 수 있어요.


솔직한 한계

좋은 것만 얘기하면 재미없으니까 한계도 정리할게요.

자막 없는 영상은 분석 못 해요. youtube-transcript-api가 자막 기반이라서, 자동 자막조차 없는 영상은 건너뛰어요.

음악 영상이나 일부 브이로그가 여기 해당돼요. (하지만 캡컷으로 하면 되서 문제 없음)

Claude 분석이 항상 정확하진 않아요. 맥락 이해가 필요한 유머나 밈 코드는 가끔 엉뚱한 구간을 뽑아요.

완전 자동이 아니라 "후보 제안" 수준으로 생각하는 게 맞아요.

점수 계산은 채널마다 튜닝이 필요해요.

지금 가중치는 제 채널 기준으로 최적화한 거라서, 다른 카테고리 채널에 그대로 적용하면 결과가 달라질 수 있어요.

자동 업로드는 아직 없어요. 분석까지는 자동이지만 실제 화면 녹화와 편집은 아직 수동이에요. 이 부분이 다음 목표예요.


마무리: 귀찮음을 자동화하면 시간이 남는다

처음엔 구간 찾기 자동화 하나만 생각했는데, 만들다 보니 채널 모니터링부터 결과 배포까지 갖춰졌어요.

이게 개발의 재미 같기도 하고, 함정 같기도 해요.

확실한 건, 지금은 쇼츠 만드는 데 쓰는 시간 중 "구간 찾기"에 들어가는 시간이 거의 0에 가까워졌어요.

그 시간에 편집 퀄리티를 더 높이거나, 다른 걸 할 수 있는 거죠.


다음 포스팅 예고: 자동 업로드까지 붙이기 — YouTube API로 쇼츠 직접 올리는 법

반응형