GPT로 YouTube 쇼츠 영상 타이틀·스크립트 완전 자동화하기

GPT로 YouTube 쇼츠 영상 타이틀·스크립트 완전 자동화하기

짧지만 임팩트 있는 15~60초 분량의 YouTube 쇼츠(Shorts)는 기획부터 편집, 업로드까지 반복 작업이 많아 운영 부담이 큽니다. GPT-5를 활용해 쇼츠 제목과 스크립트를 자동으로 생성·저장하고, 노코드 도구로 알림까지 연결하면 매주 일정한 퀄리티의 콘텐츠를 손쉽게 발행할 수 있습니다. 이 가이드는 Google Sheets, GPT-5 API, Zapier/Make.com, Notion(또는 Google Sheets) 연동을 통해 완전 자동화하는 방법을 단계별로 제시합니다.


전체 워크플로우 개요

flowchart LR
  A[Google Sheets: 주제·스케줄 입력] --> B[Zapier/Make Trigger]
  B --> C[OpenAI GPT-5 API 호출]
  C --> D[제목·스크립트 JSON 응답]
  D --> E[Notion/Google Sheets에 저장]
  E --> F[Slack·이메일 알림]
  F --> G[콘텐츠 제작 담당자 검수]
  1. Google Sheets 또는 Notion DB에 “주제(Topic)·발행일(Date)”만 입력
  2. Zapier/Make가 변경 감지 후 GPT-5 호출
  3. “쇼츠 제목(Title)”과 “스크립트(Script)”를 JSON으로 생성
  4. 결과를 Notion 캘린더 또는 Sheets에 자동 기록
  5. Slack 또는 이메일 알림으로 검수 요청

1. 사전 준비

  • OpenAI API 키
    • 환경 변수 OPENAI_API_KEY에 저장
  • Google Sheets(또는 Notion)
    • 컬럼: Date, Topic, Status, Title, Script
  • 자동화 플랫폼
    • Zapier 또는 Make.com (초보자는 Zapier 추천)
  • Notion 콘텐츠 캘린더(선택)
    • Date, Title, Script, Status 속성

2. 프롬프트 설계

정확한 요청이 핵심입니다. 제목 생성과 스크립트 생성을 별도 프로세스로 분리하거나, 하나의 프롬프트에 함께 담을 수 있습니다.

2.1 제목 생성용 프롬프트

You are a YouTube Shorts 마케터입니다.
다음 주제에 맞춰 시선을 끄는 쇼츠 제목 5개를 제안해주세요.
- 주제: "{Topic}"
- 포맷: 50자 이내
- 감정: 호기심 유발, 긍정적
JSON 배열로 출력해주세요:
[
  {"title":"..."},
  ...
]

2.2 스크립트 생성용 프롬프트

You are a YouTube Shorts 스크립트 작가입니다.
다음 주제에 맞춰 5~7개 장면으로 구성된 30초 분량 스크립트를 생성해주세요.
- 주제: "{Topic}"
- 구성: 
  1. Hook(인트로, 3초)
  2. Main Message(본론, 20초)
  3. CTA(행동 유도, 7초)
JSON 배열로 출력해주세요:
[
  {"scene":1,"text":"..."},
  ...
]

3. Google Sheets 설정

  1. 스프레드시트 생성
    • 시트명: YouTube Shorts Calendar
  2. 컬럼 구성
    • Date (발행일)
    • Topic (주제)
    • Status (대기/완료)
    • Title (빈 칸)
    • Script (빈 칸)
  3. 예시 입력

Date Topic Status Title Script

2025-08-01 집에서 하는 5분 스트레칭 대기
2025-08-04 에코백 활용법 다섯 가지 대기

4. Zapier로 자동화 구성

  1. Trigger
    • Google Sheets → New or Updated Spreadsheet Row
    • 필터: Status가 대기일 때
  2. Action 1: OpenAI (Chat Completion)
    • Model: gpt-5-turbo
    • Prompt: 제목 생성 + 스크립트 생성 모두 포함하거나 순차 호출
  3. Action 2: Formatter by Zapier
    • JSON으로 응답 파싱
  4. Action 3: Google Sheets – Update Spreadsheet Row
    • Title ← {{GPT.title}}
    • Script ← {{GPT.scene1.text}}\n{{GPT.scene2.text}}…
    • Status ← 완료
  5. Action 4: Slack – Send Channel Message
    📢 새 쇼츠 콘텐츠 생성 완료:
    • 날짜: {{Date}}
    • 주제: {{Topic}}
    • 제목: {{Title}}
    확인 후 제작을 시작해주세요!
    

5. Make.com으로 고급 자동화

  1. Scenario 시작: Google Sheets Watch Rows
  2. Filter: Status = “대기”
  3. HTTP: OpenAI API 호출
  4. JSON Parse: 제목·스크립트 분리
  5. Google Sheets Update Row: 칼럼 업데이트
  6. Slack/Gmail: 알림 전송

Make.com은 다중 분기, 재실행 옵션, 에러 핸들링 기능이 강력해 복잡한 워크플로우에 적합합니다.


6. Python 스크립트로 직접 구현하기

import os, json, requests
from googleapiclient.discovery import build

OPENAI_KEY = os.getenv("OPENAI_API_KEY")
SHEET_ID = "YOUR_SHEET_ID"
RANGE = "YouTube Shorts Calendar!A:E"

def fetch_pending_rows():
    service = build('sheets', 'v4', credentials=...)
    result = service.spreadsheets().values().get(spreadsheetId=SHEET_ID, range=RANGE).execute()
    return [row for row in result.get('values', []) if row[2]=='대기']

def generate_short(news):
    headers = {"Authorization": f"Bearer {OPENAI_KEY}"}
    prompt = f"주제: \"{news['Topic']}\"에 맞춰 5초 쇼츠 제목과 30초 스크립트 생성. JSON으로."
    res = requests.post("https://api.openai.com/v1/chat/completions",
                        headers=headers,
                        json={"model":"gpt-5-turbo",
                              "messages":[{"role":"user","content":prompt}]})
    return json.loads(res.json()['choices'][0]['message']['content'])

def update_row(row_index, data):
    service = build('sheets', 'v4', credentials=...)
    body = {'values': [[None,None,'완료',data['title'], '\n'.join(s['text'] for s in data['script'])]]}
    service.spreadsheets().values().update(
        spreadsheetId=SHEET_ID, range=f"A{row_index}:E{row_index}", valueInputOption="RAW", body=body).execute()

rows = fetch_pending_rows()
for i, row in enumerate(rows, start=2):
    meta = {"Topic": row[1]}
    content = generate_short(meta)
    update_row(i, {"title": content[0]['title'], "script": content[1]["script"]})

위 스크립트를 Cron 또는 GitHub Actions로 주기 실행하면 완전 자동화됩니다.


7. 운영 팁

  • A/B 테스트: 동일 주제로 두 버전 생성해 성과 비교
  • 챕터 태그 활용: 스크립트별 scene 태그를 컷별 편집 가이드로 활용
  • 다국어 버전: Prompt에 “lang”:”en” 옵션 추가해 글로벌 쇼츠 제작
  • 비주얼 템플릿: Notion 페이지에 스크립트별 영상 샘플 링크 삽입

마치며

GPT-5와 노코드 자동화 툴을 결합하면 YouTube 쇼츠 제목·스크립트 작성에 소요되던 시간이 크게 단축됩니다. 일단 워크플로우를 구축해 두면 주제 입력만으로 매주 완성도 높은 쇼츠 콘텐츠가 자동 생성되므로, 제작팀은 기획·편집·퍼포먼스 최적화에만 집중할 수 있습니다. 오늘 바로 가이드를 따라 설정해 보시고, 쇼츠 운영의 새로운 효율성을 경험해 보세요!

댓글 남기기