프롬프트 도감 › No.561
유튜브 자동 업로드 프로그램 만들기
Build: YouTube Pipeline
주제를 적어 두면 대본·영상·자막·썸네일을 만들어 유튜브에 "비공개"로 올려 둡니다. 확인하고 승인하면 정한 시간에 공개돼요.
이럴 때 쇼츠·긴 영상 채널을 자동으로 운영하고 싶을 때
도구 Claude Code · Codex · Cursor
프롬프트
너는 시니어 자동화 엔지니어다. 내 맥(또는 리눅스 서버)에 '유튜브 쇼츠/롱폼 자동 제작·예약 업로드 파이프라인'을 구축해라. 목표: 주제 큐(topics.md) → 대본·제목·설명 생성 → 영상 파일(AI 생성 또는 내 소재) → 자막 → 썸네일 → YouTube에 **비공개로 업로드** → 사람이 승인하면 예약 공개. 스택 (이걸 그대로 써라): - 언어: Python 3.11, 패키지는 uv 로 관리 - YouTube: google-api-python-client + OAuth 데스크톱 플로우 (videos.insert, thumbnails.set, captions.insert). API 프로젝트는 감사(audit) 전이면 업로드가 비공개로 잠긴다는 점을 코드 주석과 README에 적어라. 하루 할당량 10,000 유닛, 업로드 1건 = 1,600 유닛이므로 하루 최대 6건으로 제한하는 가드를 넣어라. - 영상: ffmpeg (컷·자막 번인·9:16 크롭), 음성은 시스템 TTS 또는 내가 지정한 API, 자막은 whisper(로컬) 로 SRT 생성 - 대본·제목·설명: 로컬 Ollama(qwen2.5:14b) 먼저, 실패 시 클라우드 모델. 프롬프트는 prompts/*.md 에 파일로 두고 코드에 박지 마라. - 썸네일: Gemini 이미지 API(Nano Banana Pro)로 생성. 텍스트 6자 이내 규칙을 프롬프트 파일에 넣어라. - 오케스트레이션: dagu DAG 하나(jobs/youtube.yaml): plan → produce → upload_private → notify. 매일 07:00. dagu가 없으면 launchd plist 템플릿도 같이 만들어라. - 에이전트 도구: .mcp.json 에 filesystem, github, playwright(YouTube Studio 화면 확인용) MCP를 등록하고, 업로드 함수는 MCP 도구 `upload_private(path, title, desc, tags)` 로도 노출해라. - 승인: approve/<video-id>.txt 파일이 생기면 다음 실행에서 status.privacyStatus=public + publishAt 으로 예약 공개. 산출물: 폴더 구조, uv 프로젝트, 각 단계 스크립트, jobs/youtube.yaml, .mcp.json, README(설치·OAuth 동의 절차·사람이 할 일), 첫 실행 영수증. 공통 규칙: - 먼저 저장소를 훑고 가정을 3줄로 말한 뒤, 폴더 구조와 실행 순서를 계획으로 보여주고 내 승인을 받아라. 승인 전에는 파일을 만들지 마라. - 모든 비밀값은 .env 에서 읽고, 코드·로그·영수증에 절대 찍지 마라. .env.example 을 만들어라. - 게시(업로드)는 기본적으로 '초안/비공개' 상태로 올리고, 공개 전환은 --publish 플래그 또는 승인 파일(approve/<날짜>.txt)이 있을 때만 한다. - 매 실행 끝에 receipts/<날짜>-<작업>.md 를 남겨라: 바뀐 것 / 증거(URL, HTTP 코드, 파일 경로) / 건너뛴 것 / 되돌리기. - 실패하면 같은 작업을 반복하지 말고 pending 으로 기록하고 멈춰라. - 실제로 돌려본 것만 '완료'라고 말해라. 계정 승인·OAuth 동의·앱 심사처럼 사람이 해야 하는 단계는 '사람이 할 일' 목록으로 따로 적어라.
팁
- 유튜브 API 심사를 받기 전에는 모든 업로드가 비공개로만 올라가요. 심사 신청은 직접 해야 해요.
- 배경음악 서비스 Suno는 공식 연결 방법이 없어요. 미리 만든 음악 파일 폴더에서 고르게 하세요.
- 첫 주는 업로드 없이 파일만 만들어 보고, 업로드는 손으로 확인하세요.
출처
- YouTube Data API – videos.insert (공식)
- YouTube API 할당량·감사 정책 (공식)
- Model Context Protocol – 공식 서버 목록
- microsoft/playwright-mcp (GitHub)
- dagu-org/dagu (GitHub)
권리: 도감 원작. 자유롭게 복사·수정해 쓰세요 (출처 표기 환영).