영상 파일, 제목, 설명, 썸네일, 해시태그, 공개 시각까지 — 한 번 세팅해두면 이후로는 제 손을 떠나는 업로드 자동화. '임단장의 5분 유럽사' 채널에 실제 적용한 기록.

📎 이전 글 #054에서 주제 한 줄로 롱폼 영상 제작 자료를 뽑아주는 /axon long 스킬 이야기를 다뤘습니다. 오늘은 그 결과물을 유튜브에 자동 업로드하는 파이프라인으로 바통을 이어받습니다.

"토요일 아침 7시, 유튜브 스튜디오를 열었더니 이미 조회수가 찍혀 있었습니다." — 2026년 4월, 임단장의 어느 주말 아침

01. 왜 — 영상은 완성됐는데, 업로드가 또 한 시간이었습니다

/axon long 스킬로 대본·음성·장면·자막이 다 나오고, 편집 스크립트로 최종 mp4 파일까지 만들어졌습니다. 여기까지는 문제가 없었습니다.

그런데 그다음부터가 문제였습니다. 유튜브에 올리는 일 자체가 또 시간을 잡아먹었습니다.

유튜브 스튜디오 접속 → mp4 업로드 대기(15~20분). 제목 고민 → 알고리즘 최적화 제목 선택(10분). 설명글 작성 → 해시태그 → 타임코드 입력(15분). 썸네일 업로드 + 카드/최종 화면 설정(10분). 공개/예약 설정 → 게시 확인(5분).

합치면 1시간. 이게 금요일 밤에 피곤한 상태로 하려면 고역입니다. 한번은 제목 오타 채로 업로드돼서, 다음 날 아침에 수정하느라 또 시간을 썼습니다. 알고리즘은 초반 6시간이 중요한데, 그 시간을 오타 수정에 쓴 셈입니다.

그래서 생각했습니다. "영상이 완성되면, 유튜브에 올리는 것까지 자동으로 돌게 만들자."

02. 구조 — 업로드 파이프라인은 이렇게 구성했습니다

핵심 원칙은 하나였습니다. "손으로 하던 클릭 시퀀스를 전부 코드로 옮긴다." 그리고 그 코드는 클로드 코드가 짰습니다. 저는 순서만 설명했습니다.

1. 입력 감지: 지정 폴더(/ready)에 mp4 + 메타데이터 JSON이 생기면 자동 실행.
2. 메타데이터 로드: 제목·설명·해시태그·카테고리·공개시각을 JSON에서 읽음.
3. YouTube API 인증: OAuth2 refresh token으로 자동 로그인(매번 재인증 불필요).
4. 영상 파일 업로드: resumable upload 방식 — 중간에 끊겨도 이어서 전송.
5. 썸네일 설정: 같은 폴더의 thumbnail.jpg를 자동 첨부.
6. 예약 공개 시각 설정: 기본 '토요일 아침 7시 KST' — 주말 검색 트래픽 타이밍.
7. 텔레그램 알림: 업로드 완료 + 링크를 제 핸드폰으로 푸시.
8. 로그 저장: 업로드 기록을 노션 DB에 자동 기록(영상ID·예약시각·상태).

여기서 핵심은 "영상 제작이 끝나면 알아서 흘러간다"는 부분입니다. 제가 터미널을 열거나 명령을 내리지 않아도, /ready 폴더에 파일만 떨어지면 파이프라인이 감지하고 움직입니다.

03. 메타데이터 — 영상 하나당 '메타데이터 JSON 한 장'

이 파이프라인의 두뇌는 사실 메타데이터 JSON 파일입니다. 파이프라인은 이 파일 하나를 보고 모든 걸 판단합니다. /axon long 스킬이 영상 자료와 함께 이 JSON도 같이 만들어냅니다.

ready/ep02_hannibal.json — video_file: "ep02_hannibal.mp4", thumbnail: "ep02_hannibal_thumb.jpg", title: "한니발은 왜 알프스를 넘었을까 — 포에니 전쟁의 진짜 속사정", description: "기원전 218년, 한니발이 코끼리 떼를 이끌고...", tags: ["유럽사", "한니발", "포에니전쟁", "5분유럽사"], category_id: "27" (Education), privacy: "private" (예약이라 일단 private), publish_at: "2026-04-26T07:00:00+09:00" (토 07:00 KST), made_for_kids: false, language: "ko"

보시는 것처럼 모든 사람이 매번 손으로 채우던 유튜브 업로드 양식이 JSON 한 장에 다 들어 있습니다. 파이프라인은 이걸 읽어서 YouTube Data API에 정확히 그대로 전달합니다.

여기서 재미있는 발견이 있었습니다. "업로드가 자동이 되니까, 제목과 설명을 훨씬 더 공들여 쓰게 된다"는 것입니다. 왜냐하면 그게 "코드로 올라가는 그 순간의 결정"이기 때문입니다. 대충 치면 대충 그대로 올라갑니다. 이게 오히려 콘텐츠 품질을 끌어올리는 역할을 했습니다.

04. 실전 — 금요일 밤 → 토요일 아침까지의 기록

지난 금요일 실제 실행 로그입니다.

금 22:14 — 영상 제작 완료(/axon long 스킬로 만든 자료를 편집 스크립트가 합성, ep02_hannibal.mp4 생성).
금 22:14 — /ready 폴더 이동(mp4 + thumb.jpg + metadata.json 한 번에 배치).
금 22:15 — 파이프라인 자동 감지(워처(watchdog) 스크립트가 새 파일 포착, 업로드 시작).
금 22:38 — YouTube 업로드 완료(private 상태로 올라감, 예약 시각 설정됨).
금 22:39 — 텔레그램 알림 수신("업로드 완료 · 토 07:00 공개 예정").
금 23:00 — 수현 취침 ☕ 🛌
토 07:00 — 예약 공개 실행(유튜브가 자동으로 public 전환, 구독자 알림 발송).
토 08:14 — 수현 기상, 유튜브 스튜디오 확인(조회수 127, 댓글 2개).

밤새 제가 한 일: 자고, 꿈 꾸고, 일어나고, 커피 내리기. 그 사이 유튜브에 올라간 것: 5분짜리 완성된 롱폼 영상 한 편.

05. 준비물 — 이 파이프라인을 만들기 위해 필요한 것들

Google Cloud 프로젝트(YouTube Data API v3 활성화, OAuth 2.0 인증 설정). OAuth Refresh Token(최초 1회만 브라우저 인증, 이후 무인 자동화 가능). Python + google-api-python-client, watchdog 라이브러리. 맥 미니(또는 상시 켜둘 수 있는 기기 — 파이프라인이 24시간 폴더를 감시해야 하기 때문). 텔레그램 봇(선택, 완료 알림용). 메타데이터 JSON 템플릿(제목·설명·태그·예약시각을 채울 양식).

YouTube API 쿼터 주의: 기본 하루 10,000 유닛이 주어지는데, 영상 업로드 한 건이 약 1,600 유닛을 씁니다. 계산해보면 하루 최대 6편 정도입니다. 대량 업로드하시는 분들은 쿼터 증설 신청(Google에 서면 요청)이 필요합니다.

06. 진실 — 자동화가 끝이 아닙니다

여기까지만 읽으면 "와 대박" 같은 반응이 나올 텐데, 저는 이 블로그에서 늘 뒷면을 같이 말씀드립니다.

여전히 제가 해야 하는 세 가지

① 사실 검증 — 업로드 전 마지막 방어선. 서양사 전공자로서, 연도나 인물 관계에 오류가 있으면 끝장입니다. 그래서 파이프라인은 기본 private + 예약으로 올라가게 해뒀습니다. 토요일 아침 7시까지는 수정할 시간이 있습니다. "자동이라고 방심하지 말고, 검증 창구를 하나는 열어두자" — 이게 제 원칙입니다.

② 썸네일 선택 — 알고리즘은 사람을 읽습니다. AI가 만든 썸네일은 평균 이상은 됩니다. 하지만 '딱 클릭하고 싶은 한 장'은 여전히 사람의 감각이 필요합니다. 저는 후보 3개 중에서 직접 고릅니다.

③ 댓글 응대 — 채널의 진짜 자산은 관계입니다. 이건 절대 자동화하지 않습니다. 구독자가 질문을 남기면 제가 직접 답니다. AI가 만들어주는 건 영상이지, 신뢰가 아닙니다.

그리고 솔직히: 첫 파이프라인을 돌린 날, OAuth 토큰이 7일 만에 만료돼서 업로드가 조용히 실패했습니다. 텔레그램 알림이 안 왔는데도 저는 모르고 있다가, 다음 날 아침에서야 "어 업로드 안 됐네?" 하고 깨달았습니다. 지금은 실패 알림도 별도로 받게 고쳐놨습니다. 자동화는 '세팅이 끝났을 때'가 시작입니다. 실패 케이스까지 촘촘히 다듬어야 '진짜' 자동화가 됩니다.

07. 맺음말 — 로마의 수도교, 그리고 파이프라인

파이프라인을 완성하고 나니, 서양사 전공자로서 제일 먼저 떠오른 것은 로마 제국의 수도교(aqueduct)였습니다.

고대 로마인들은 도시 하나에 물을 공급하기 위해, 수십 킬로미터 밖 산에서부터 정교한 기울기로 수도교를 놓았습니다. 한 번 완성된 수도교는 이후 수백 년간 같은 방식으로 물을 계속 날랐습니다. 사람이 매번 물을 지고 나르지 않아도 됐습니다. 구조 자체가 노동을 대신한 겁니다.

제가 만든 업로드 파이프라인도 비슷한 물건이라고 느낍니다. 한 번 놓아두면, 그다음부터는 "제가 영상을 만드는 일"과 "영상이 세상에 나가는 일"이 분리됩니다. 저는 제작에만 집중하고, 유통은 구조가 대신합니다.

4050 직장인분들께 드리고 싶은 한마디는 이겁니다. AI 자동화의 핵심은 "AI가 얼마나 똑똑하냐"가 아니라 "내가 반복하는 일을 얼마나 잘 관찰하느냐"입니다. 반복되는 클릭, 반복되는 복붙, 반복되는 양식 작성 — 그 반복을 알아채는 순간, 그게 바로 파이프라인의 출발점입니다. 코딩은 이제 클로드에게 맡기면 됩니다.

오늘 밤에도 제 맥 미니는 조용히 깨어 있습니다. 어딘가에서 영상 한 편이 완성되면, 수도교가 물을 흘리듯 유튜브까지 흘러갈 준비를 하면서요.

저는 잡니다. 이게 2026년의 '1인 유튜브 운영'입니다. 😊

임수현(수현) · KT M&S 유통플랫폼사업단장 · 고려대 서양사학과 · '임단장의 5분 유럽사' 운영자

[이미지 1~3 - 별도 처리 필요]

태그: 대기업임부장의AI이야기, 사학과임원의AI이야기, 임단장의5분유럽사, 유튜브자동화, YouTubeAPI, YouTubeDataAPI, ClaudeCode, OAuth2, Python, 업무자동화, 바이브코딩, 4050직장인, 1인크리에이터