본문으로 이동
DLDevelopment Lab책을 읽고, 직접 만드는 실험실
16AI와 YouTube 영상을 만듭니다17올리기 전에 AI가 영상을 검사합니다18만든 영상을 실제 YouTube에 올립니다
PART 5 · AI와 YouTube 영상을 만들어 실제로 올립니다18장

만든 영상을 실제 YouTube에 올립니다

검수한 영상을 승인한 채널에 비공개로 업로드하고 실제 상태를 확인합니다.

이어갈 프로젝트 · ai-shorts-maker

16장의 영상과 17장의 검수 통과 근거가 있습니다.

커맨드준비막혔을 때완료 확인소스·검증
이번 장의 준비와 서비스

필요한 도구 · OAuth 업로드 도구 · Python

이미 준비한 계정과 기능은 그대로 이어갑니다.

google-cloud 준비 안내 →youtube 준비 안내 →

완료 확인만으로 재업로드하거나 youtube.upload로 공개 상태 변경까지 가능하다고 가정하지 않습니다.

순서대로 입력하는 커맨드

현재 단계와 입력 위치를 확인한 뒤 하나씩 복사하세요.

01시작 전 확인

Claude Code·Codex에 입력튜터 요청

현재 장을 시작하거나 다시 이어갈 때

먼저 확인 · 현재 장과 실제 프로젝트를 확인. 기존에 확인한 맥락은 재사용.

18장 시작해.

02업로드 전에 바뀔 내용을 먼저 고정합니다

Claude Code·Codex에 입력실습

검수 원본의 업로드 Preview 준비

먼저 확인 · 독자가 자기 채널을 확인하고 실제 채널 핸들을 제공해야 함. <내 채널 핸들> 그대로 실행하지 않음. 현재 원본과 검수 결과 대조.

검수에서 `UPLOAD READY`가 된 영상을 방금 확인한 내 YouTube 채널 <내 채널 핸들>에 올릴
준비를 해줘. 제목은 `로마 콘크리트는 왜 2천 년을 버틸까? #Shorts`로 하고, 카테고리는
`Science & Technology`, 아동용은 아니요, 공개 범위는 private으로 해줘.
설명에는 생성형 화면이 이해를 돕는 시각화라는 것과 참고한 연구 자료,
사용한 생성 서비스와 배경음악 곡명을 적어줘. 구독자 알림은 끄고, 업로드 전에
Preview에 내가 입력한 채널 핸들과 URL을 보여줘. 내가 YouTube에서 확인한 자기 채널과 대조하게 해줘. 채널이 없거나 소유 계정이
다르면 업로드하지 마. 실제 업로드는 아직 하지 마.

03업로드 전에 바뀔 내용을 먼저 고정합니다

Claude Code·Codex에 입력실습

youtube-publisher Skill 제작

먼저 확인 · 독자가 Preview 조건을 확인했는지 확인.

방금 확인한 내용대로 YouTube에 영상을 올리는 재사용 Skill을 만들어줘. 이름은
정확히 `youtube-publisher`로 하고 프로젝트의
`.claude/skills/youtube-publisher/SKILL.md`에 저장해. 파일 맨 위의 이름도
`youtube-publisher`인지 확인하고 저장한 뒤 `/` 명령 목록에 나타나는지도 확인해줘.

이 Skill은 실행하기 전에 바뀔 내용을 Preview로 먼저 보여주고, 공개 범위는 따로
말하지 않으면
비공개로 해줘. 구독자 알림은 끄고, 같은 영상 파일이 두 번 올라가지 않게
해줘. 검수에서 UPLOAD READY가 된 영상과 같은 파일인지도 실행 전에
확인해줘. 인증정보와 Token은 Git에 들어가지 않게 하고 화면이나 로그에도
출력하지 마.

04YouTube Data API를 연결합니다

Claude Code·Codex에 입력실습

OAuth 파일 선택 준비

먼저 확인 · 독자가 Cloud API·Desktop Client를 준비하고 JSON을 다운로드했는지 확인.

다운로드한 YouTube OAuth 인증 파일을 내가 안전하게 선택할 수 있는 창을
띄워줘. 선택한 파일은 Git에 들어가지 않는 Secret 폴더에 저장하고, 파일
내용은 채팅이나 화면, 로그에 출력하지 마.

05올리기 전에 무엇이 바뀌는지 봅니다

Claude Code·Codex에 입력실습

업로드 직전 Preview

먼저 확인 · 대상 원본·채널·설정 확인. 아직 외부 업로드 승인으로 해석하지 않음.

실제로 업로드하지 말고, 지금 올릴 영상의 채널·제목·설명·공개 범위처럼
바뀔 내용을 먼저 보여줘.

06OAuth 앱을 프로덕션으로 준비합니다

Claude Code·Codex에 입력실습

OAuth 앱 브랜딩·게시 안내

먼저 확인 · 현재 OAuth 앱·브랜딩·게시 상태 확인. 독자가 입력·최종 승인할 항목 구분.

이 OAuth 앱의 브랜딩 화면에서 사람이 입력해야 할 필수 정보와 준비할 주소를 알려줘.
홈페이지, 개인정보처리방침, 승인 도메인을 내가 입력하면 값이 맞는지 확인해줘.
그다음 잠재고객 화면에서 내가 앱을 프로덕션으로 게시할 수 있게 순서대로 안내해줘.
이 설정은 YouTube 채널이나 영상을 공개하는 일이 아니라는 점을 먼저 알려줘.
미검증 자체 앱 경고가 나오면 고급 경로를 열고 멈춰서,
내가 계정과 앱 이름을 확인한 뒤 직접 승인하게 해줘.
게시 버튼과 미검증 자체 앱 경고의 최종 승인은 내가 직접 하게 해줘.
비밀 값은 화면이나 로그에 출력하지 마.

07공개를 선택하면 같은 영상의 상태를 바꿉니다

Claude Code·Codex에 입력실습

실제 업로드 전에 Publisher의 두 단계·재시도 구현을 검증할 때

먼저 확인 · 현재 Publisher 구현과 부족한 두 단계 경로 확인. 실제 게시 지시가 아님.

Publisher에서 대상이 분명한 공개 업로드 요청은 비공개 업로드와 동일 영상의 공개 전환을 함께 승인한 것으로 처리해줘.
비공개 업로드에서 받은 영상 ID를 먼저 기록하고 그 ID의 상태만 바꿔.
현재 Token에 상태 변경 권한이 있는지 공식 API 문서로 확인하고 부족할 때만 필요한 승인을 안내해.
플랫폼의 프로젝트 검증·공개 제한도 확인하고, 제한을 우회하지 마.
업로드 성공 후 공개 전환만 실패하면 비공개 업로드 성공·공개 미완료를 나눠 알려줘.
재시도할 때 다시 업로드하지 말고 같은 영상 ID의 상태 변경만 이어가.
API 응답이 불명확하면 실제 상태를 확인하기 전 추가 업로드하지 마.
이 요청은 구현 지시야. 지금 영상을 올리거나 공개하지 말고, 시험 응답으로 두 단계와 실패·재시도를 검증해줘.

08검수한 영상을 비공개로 업로드합니다

Claude Code·Codex에 입력실습

검수한 Roman 영상의 비공개 업로드를 선택했을 때

먼저 확인 · 두 단계 구현·시험 확인 후 실제 원본·UPLOAD READY·전체 재생·자기 채널·최신 Preview를 확인. 같은 파일의 기존 Receipt·실제 상태를 먼저 확인. 공개 경로와 택일하고 인용문 출력만으로 승인하지 않음.

검수한 Roman 최종본과 Preview의 파일·채널·내용이 맞아.
이 영상을 내 채널에 비공개로 한 번 업로드해줘. 공개로 전환하지 마.
9. 공개까지 원할 때 선택하는 요청 선택·문제 발생 시
Claude Code·Codex에 입력선택·문제 발생 시

독자가 Roman 원본의 공개 업로드를 선택한 경우에만

먼저 확인 · 실제 원본·UPLOAD READY·전체 재생·자기 채널·최신 Preview와 공개 의사 확인. 정본 출력만으로 승인하지 않음. 같은 파일의 기존 Receipt·실제 상태부터 확인. 비공개 실행 요청과 택일. 이미 비공개로 올렸다면 같은 영상 ID 공개 전환만 별도로 요청.

검수한 Roman 최종본과 Preview 내용이 맞아. 이 영상을 공개로 올리는 것을 승인해.

10이제 내가 고른 주제로 영상을 바꿉니다

Claude Code·Codex에 입력실습

본문 마무리: 새 주제로 제작·검수·비공개 업로드 재사용 실습

먼저 확인 · youtube-shorts-production·video-upload-review·youtube-publisher 세 Skill과 prototypes/youtube-shorts/chapter-17/review-policy.json, 자기 채널, 새 영상의 주제와 실행 범위를 확인. 새 제작·검수·비공개 업로드 요청의 승인을 확인하고 단계별 제작 승인을 유지. 기존 영상을 재업로드하지 않음.

같은 방식으로 새 역사·과학 영상을 한 편 만들어줘.

16장의 `youtube-shorts-production` Skill로 만들고, 17장의
`video-upload-review` Skill로 같은 기준으로 검사한 뒤, 통과하면 같은 채널에
비공개로 올려줘.

11이 장을 마쳤는지 확인합니다

Claude Code·Codex에 입력튜터 요청

이번 장 완료 조건을 확인할 때

먼저 확인 · 현재 장과 실제 프로젝트를 확인. 기존에 확인한 맥락은 재사용.

장 완료 확인해줘.
이 장에서 막혔을 때
디버깅 → 내 정상 기록으로 복구 → 장별 Source로 재시작

명령어를 외우거나 직접 입력할 필요는 없습니다. 아래 요청문을 그대로 붙여넣으면 Claude Code가 확인하고 처리합니다.

1. 디버깅 — 먼저 무엇이 어긋났는지 그대로 말하고 고쳐봅니다. 대부분 여기서 해결됩니다.

지금 작업이 책과 다르게 진행됐어.
현재 상태와 화면에 나온 문제를 확인하고 원인을 찾아서 고쳐줘.

이 장에서 특히 자주 막히는 자리는 권한 화면에서 오류가 나는 경우입니다.

권한 화면에서 오류가 났어.
어떤 오류인지 그대로 보여주고 원인부터 확인해줘.
권한을 더 넓히거나 다른 설정을 바꾸기 전에 무엇이 잘못됐는지 먼저 찾아줘.

2. 내 정상 기록으로 복구 — 해결되지 않으면 실습하면서 내 프로젝트에 남겨둔 정상 기록으로 돌아갑니다. 지금까지 한 작업은 먼저 따로 보존합니다.

현재 작업은 잃지 않도록 먼저 별도로 보존해줘.
이 프로젝트에서 마지막으로 정상 동작했던 상태를 찾아 안전하게 복구해줘.

3. 장별 Source로 재시작 — 그래도 이어갈 수 없을 때 사용합니다. PART 5의 마지막 장이므로, 이 수단을 쓰면 PART 5 실습을 마친 것으로 보고 넘어가면 됩니다.

내 현재 작업을 먼저 안전하게 보존해줘.
아래 PART 5 완성 Source에서 다시 시작해줘.
https://github.com/buildyourownai-lab/develop-like-a-pro-with-ai/tree/main/chapters/ch18/source/ai-shorts-maker
내가 직접 넣어야 하는 설정과 인증정보가 무엇인지 알려줘.

방향부터 확인하고, 더 필요할 때 다음 힌트를 펼치세요.

올렸는데 결과가 안 돌아옴
1단계 — 방향

통신 오류가 업로드 실패를 뜻하지는 않습니다.

2단계 — 범위

Receipt와 반환 ID·채널 상태를 먼저 확인합니다.

3단계 — 위치·원인 후보

같은 파일이 이미 올라갔는지 확인 가능한 근거를 봅니다.

정답을 요청했을 때

상태가 불명확하면 재업로드하지 않고 확인을 보류합니다. 기존 ID가 있으면 그 ID를 기준으로 이어갑니다.

검증 주의

이 설명만으로 원인이 확인됐거나 수정됐다고 말하지 않습니다. 현재 프로젝트의 근거를 먼저 대조합니다.

비공개로 끝났음
1단계 — 방향

지시한 공개 범위부터 확인합니다.

2단계 — 범위

공개를 말하지 않았다면 비공개가 기본값입니다.

3단계 — 위치·원인 후보

공개 지시가 있었다면 업로드와 공개 전환이 각각 어디까지 성공했는지 봅니다.

정답을 요청했을 때

공개 지시가 명확해도 API 권한·플랫폼 제한이 충족돼야 전환합니다. 다른 영상을 새로 올리지 않습니다.

검증 주의

이 설명만으로 원인이 확인됐거나 수정됐다고 말하지 않습니다. 현재 프로젝트의 근거를 먼저 대조합니다.

권한 부족 오류
1단계 — 방향

OAuth 사용자 승인과 API Scope를 구분합니다.

2단계 — 범위

지금 수행할 작업이 insert인지 update인지 확인합니다.

3단계 — 위치·원인 후보

실제 Token에 부여된 범위와 해당 API의 공식 허용 Scope를 대조합니다.

정답을 요청했을 때

필요한 권한만 공식 승인 화면에서 확인합니다. 같은 행동 승인을 반복 요청하는 것과 추가 계정 권한 확보는 다릅니다.

검증 주의

이 설명만으로 원인이 확인됐거나 수정됐다고 말하지 않습니다. 현재 프로젝트의 근거를 먼저 대조합니다.

디버깅 → 정상 기록 복구 → 장별 소스로 재시작 →
이번 장의 완료 체크리스트
  • 업로드 대상영상·검수 결과·채널·메타데이터 확인
  • OAuth 준비정확한 앱·계정·Scope·Token 보관 확인
  • Preview 승인보낼 파일·제목·비공개 범위 확인
  • 실제 업로드승인된 한 영상 업로드 결과와 ID 기록
  • 상태 확인실제 채널에서 영상·공개 범위 확인
  • 중복·한계Receipt와 재시도 동작·미확인 결과 처리 확인
장 완료 확인해줘.

실제 프로젝트에서 튜터와 확인합니다. 사이트를 열어본 기록은 학습 완료가 아닙니다.

장별 소스와 저자 검증 기록

2026-09-22 공개 Source의 자동 검사에서 93건이 통과했고, 배포하지 않는 영상 파일이 필요한 3건은 건너뛰었습니다. 현행 두 단계 업로드는 Mock으로 확인했으며 실계정 재검증은 남아 있습니다. 2026-09-06 직접 공개 업로드 기록은 과거 구현의 근거로 구분합니다. 상세 결과는 verification/chapter-18/에 있습니다.

OAuth 앱은 이 장에서 프로덕션으로 게시합니다. 이것은 YouTube 채널이나 영상을 공개하는 설정이 아니며, 테스트 상태에서 갱신 Token이 약 7일 뒤 만료되는 일을 막기 위한 설정입니다.

18장 완성 소스 ↗저자 검증 상세 기록 ↗

장별 소스는 해당 장까지의 기준 상태입니다. 정상 실습은 내 프로젝트를 이어가고, 완성 소스는 비교·복구할 때 사용합니다.

자료 판본 1c784213
이 장의 개발 용어
API
프로그램이 다른 서비스와 정해진 방식으로 요청·응답을 주고받는 연결 방법.
Skill
반복할 일을 수행하는 안내와 자료의 묶음. 별도 보안 정책을 대신하지 않습니다.
튜터 사용 안내실습 자료 업데이트
← 이전 장17장. 올리기 전에 AI가 영상을 검사합니다다음 장 →19장. AI가 내 유튜브 댓글을 읽고 답글을 준비합니다
Development Lab아이디어를 AI와 함께 나만의 결과물로 만듭니다.

책에서 배운 개발 원칙을 AI와 직접 만들며 확인하는 실험실입니다. 아이디어를 서비스로, 서비스를 나만의 결과물로. AI와 함께 만들고, 직접 확인하며, 내 손으로 완성합니다.

자료실튜터 안내업데이트
SAStudy AI LabILInvestment LabDLDevelopment Lab

© 2026 Study AI Lab. All rights reserved.