[3부작 3편] 유튜브 업로드 후 영상 파일이 쌓이지 않게 자동 정리했다

📝 한줄 요약

데일리 시장 분석 롱폼 영상을 만들고, 거기서 60초 쇼츠까지 뽑는 파이프라인을 AI 에이전트와 함께 정리했습니다. 핵심은 “영상은 업로드하면 사라지고, 기록은 남는다”는 운영 규칙을 자동화한 것입니다.

바쁘시면 이것만 읽어도 돼요:

  • 롱폼 영상은 업로드 성공 후 원본 영상과 썸네일을 자동 삭제하도록 정리했습니다.

  • 쇼츠 영상도 업로드 성공 후 mp4/mp3/png 같은 임시 미디어는 지우고, 메타데이터만 남기게 했습니다.

  • 실패한 업로드는 삭제하지 않고 재시도 폴더로 보내도록 예외를 분리했습니다.

  • 최종 확인 결과 쇼츠 렌더 폴더의 미디어 파일은 0개였고, 쇼츠 메타 파일 13개만 남아 있었습니다.

  • AI에게 단순히 “영상 만들어줘”가 아니라 “성공/실패 이후 파일이 어떻게 남아야 하는지”까지 운영 규칙을 맡긴 게 핵심이었습니다.

🎯 이런 분들께 도움돼요

  • 유튜브, 블로그, 뉴스레터처럼 콘텐츠를 반복 생산하는 분

  • AI로 영상이나 글을 만들고 있지만 결과 파일 정리가 번거로운 분

  • 자동화는 만들었는데, 시간이 지나며 폴더가 지저분해지는 문제가 있는 분

  • “AI를 작업자”가 아니라 “운영 관리자”처럼 써보고 싶은 분

😫 문제 상황 (Before)

콘텐츠 자동화는 처음 만들 때보다, 계속 굴릴 때가 더 어렵습니다.

데일리 시장 분석 글을 만들고, 그 내용을 바탕으로 롱폼 영상을 만들고, 다시 쇼츠까지 뽑는 구조는 이미 어느 정도 돌아가고 있었습니다. 문제는 파일이었습니다.

영상 파이프라인은 결과물이 큽니다. 롱폼 mp4, 썸네일, 쇼츠 mp4, 음성 파일, 중간 이미지, 렌더 결과물이 계속 생깁니다. 하루 이틀은 괜찮지만, 매일 돌리면 금방 “이 파일이 업로드된 건지, 실패해서 남은 건지, 그냥 임시 파일인지” 구분이 어려워집니다.

사람이 매번 폴더를 열어 확인하고 지우면 자동화의 의미가 줄어듭니다. 그래서 목표를 이렇게 잡았습니다.

“성공한 영상은 미디어 파일을 남기지 말고, 실패한 영상만 재시도할 수 있게 보관하자.”

🛠️ 사용한 도구

  • AI 에이전트: Hermes

  • 코딩/수정 보조: Codex 계열 작업 흐름

  • 영상 생성: Remotion 기반 쇼츠 렌더링

  • 업로드 대상: YouTube

  • 저장 구조: 업로드 메타데이터, 실패 재시도 폴더, 쇼츠 렌더 폴더


🔧 작업 과정

1단계 — 먼저 “영상이 어디에 남는지”부터 확인했습니다

처음부터 코드를 고친 게 아니라, 먼저 파이프라인의 저장 구조를 확인했습니다. 자동화에서 제일 위험한 건 “아마 여기에 있겠지” 하고 지우는 것입니다. 영상 파일은 크기도 크고, 업로드 실패 파일을 잘못 지우면 다시 만들거나 다시 업로드해야 합니다.

AI 에이전트에게 이런 식으로 요청했습니다.

데일리 시장 분석 롱폼 영상과 쇼츠 영상이 어디에 저장되고, 업로드 후 파일이 남는지 확인해줘.

확인해보니 롱폼 영상은 임시 작업 폴더에서 만들어지고, 업로드 성공 후에는 영상 원본과 썸네일을 삭제하는 구조였습니다. 대신 업로드 기록은 메타데이터 파일로 남겼습니다.

이 구조가 마음에 들었습니다.

영상 원본은 용량을 차지하지만, 메타데이터는 작고 검색하기 좋습니다. 언제 어떤 영상이 올라갔는지만 알면 운영에는 충분합니다.

그래서 쇼츠도 같은 철학으로 맞추기로 했습니다.


2단계 — 쇼츠는 “성공하면 삭제, 실패하면 보관”으로 나눴습니다

쇼츠는 Remotion으로 렌더링되기 때문에 out 폴더에 mp4, mp3, png 같은 중간 산출물이 생깁니다. 이 파일들은 렌더와 업로드 과정에는 필요하지만, 업로드가 끝난 뒤에는 계속 보관할 이유가 크지 않았습니다.

제가 원한 건 단순한 삭제가 아니었습니다. 성공과 실패를 구분하는 운영 규칙이었습니다.

쇼츠는 Remotion 렌더 때문에 out 폴더에 mp4/mp3/png가 남는데, 업로드 성공하면 미디어는 지우고 메타만 남게 해줘.

AI 에이전트는 이 요청을 “파일 삭제”가 아니라 “파이프라인 정책 변경”으로 처리했습니다.

업로드 성공 시에는 쇼츠 mp4, 음성 파일, 이미지 같은 미디어 파일을 삭제합니다. 대신 *-shorts-meta.json 같은 메타데이터는 남깁니다. 이 메타 파일은 나중에 “이 쇼츠가 이미 업로드됐는지” 확인하는 근거가 됩니다.

반대로 업로드 실패 시에는 파일을 지우면 안 됩니다. 실패한 영상은 재시도할 수 있어야 하기 때문입니다. 그래서 실패한 경우에는 별도 재시도 폴더로 이동하는 정책을 유지했습니다.

여기서 좋았던 점은 AI가 단순히 “폴더 비우기”가 아니라 “운영 상태에 따라 다르게 처리하기”를 도와줬다는 점입니다.


3단계 — 중복 업로드를 막는 기록도 같이 남겼습니다

자동화에서 또 하나 중요한 건 중복 실행입니다.

예를 들어 같은 날짜의 쇼츠를 이미 업로드했는데, 다음 실행 때 다시 업로드되면 문제가 됩니다. 사람이라면 눈으로 보고 피할 수 있지만, 자동화는 기록이 없으면 똑같은 일을 반복할 수 있습니다.

그래서 미디어 파일은 지우되, 메타데이터는 남기는 방식이 중요했습니다.

메타데이터가 있으면 “영상 파일은 없어도 이 쇼츠는 이미 처리된 것”이라고 판단할 수 있습니다. 즉, 파일 정리와 중복 방지가 같은 구조 안에서 해결됩니다.

이 부분이 이번 작업의 핵심이었습니다.

단순히 디스크를 비우는 게 아니라, 자동화가 오래 굴러가도 헷갈리지 않도록 흔적을 남기는 것입니다.


4단계 — 마지막에는 실제 폴더 상태까지 검증했습니다

자동화 작업에서 “됐을 거예요”는 의미가 없습니다. 실제로 파일이 어떻게 남았는지 확인해야 합니다.

그래서 마지막에 운영 폴더를 확인했습니다.

out 폴더에 남은 운영 업로드 산출물이 있으면 정리하고, 실제로 비워졌는지 확인해줘.

확인 결과는 이랬습니다.

  • 쇼츠 렌더 폴더의 미디어 파일: 0개

  • 쇼츠 메타 파일: 13개

  • 실패 재시도 폴더: 0B

  • 업로드 기록 폴더에는 메타데이터만 유지

이 상태가 제가 원했던 결과였습니다.

“영상 파일은 남지 않는다. 하지만 업로드 기록은 남는다. 실패한 경우만 재시도할 수 있게 보관한다.”

자동화가 깔끔해졌습니다.


✅ 결과 (After)

Before vs After

항목

Before

After

롱폼 영상 파일

업로드 후 정리 필요 여부를 확인해야 함

업로드 성공 후 임시 파일 삭제

쇼츠 렌더 파일

mp4/mp3/png가 out 폴더에 남을 수 있음

업로드 성공 후 미디어 파일 삭제

업로드 기록

파일이 남아 있어야 확인 가능

작은 메타데이터 파일로 확인

실패한 업로드

성공 파일과 섞이면 구분 어려움

실패 파일만 재시도 폴더로 이동

중복 업로드 방지

사람이 확인해야 할 여지 있음

메타데이터 기준으로 판단 가능

확인된 결과

  • ~/alice-github/daily-thesis-video/out/ 미디어 파일 수: 0개

  • 쇼츠 메타 파일 수: 13개

  • ~/.hermes/data/video_retry/ 용량: 0B

  • 업로드 메타데이터는 ~/.hermes/outputs/videos/에 유지

이번 작업은 화려한 기능 추가라기보다는, 자동화가 오래 굴러가기 위한 정리 작업에 가깝습니다. 그런데 실제 운영에서는 이런 정리가 훨씬 중요합니다.

자동화는 “한 번 실행되는 것”보다 “매일 실행돼도 지저분해지지 않는 것”이 더 어렵기 때문입니다.

💬 이 과정에서 배운 AI 활용 팁

효과적이었던 것

  1. AI에게 결과물보다 운영 규칙을 설명하기

    “쇼츠 만들어줘”보다 “업로드 성공 후에는 미디어를 지우고, 실패하면 재시도 폴더에 남겨줘”가 훨씬 좋은 요청이었습니다.

  2. 성공과 실패의 처리를 분리해서 말하기

    자동화에서 삭제는 위험합니다. 그래서 “성공하면 삭제, 실패하면 보관”처럼 조건을 명확히 주는 게 중요했습니다.

  3. 메타데이터를 남기게 하기

    원본 파일을 다 보관하면 폴더가 커집니다. 반대로 아무 기록도 안 남기면 추적이 안 됩니다. 작은 메타데이터만 남기는 방식이 균형이 좋았습니다.

  4. 마지막에 실제 상태를 검증하기

    AI가 코드를 고쳤다고 끝내지 않고, 실제 폴더에 미디어 파일이 0개인지 확인했습니다. 자동화 작업은 검증까지 포함해야 합니다.

이렇게 하면 안 돼요

  1. 그냥 “폴더 비워줘”라고 하면 위험합니다

    실패한 업로드 파일까지 지워질 수 있습니다. 삭제 요청에는 조건이 필요합니다.

  2. 파일이 없다고 성공으로 보면 안 됩니다

    업로드가 성공해서 없는 건지, 실패했는데 삭제된 건지 구분해야 합니다. 그래서 메타데이터가 필요합니다.

  3. 자동화 초반에 기록 구조를 안 만들면 나중에 헷갈립니다

    매일 돌아가는 파이프라인일수록 “무엇이 처리됐는지” 기록이 남아야 합니다.

🌍 다른 업무에 적용한다면?

이번 방식은 영상뿐 아니라 다른 반복 업무에도 그대로 적용할 수 있습니다.

  • 블로그 자동 발행: 발행 성공 후 초안은 아카이브하고, 실패한 글만 재시도 폴더로 이동

  • 뉴스레터 발송: 발송 성공 건은 메타만 남기고, 실패 건만 재발송 큐에 보관

  • 세금/정산 자료 처리: 처리 완료 파일은 기록만 남기고, 오류 파일만 별도 검토 폴더로 이동

  • 이미지 생성 파이프라인: 최종 업로드 후 원본 이미지는 정리하고, 프롬프트와 결과 링크만 저장

핵심은 같습니다.

“완료된 결과물은 가볍게 기록하고, 실패한 것만 다시 처리할 수 있게 남긴다.”

🚀 앞으로의 계획

다음 단계는 파일 정리를 넘어서 운영 대시보드로 확장하는 것입니다.

예를 들면 매일 아침 AI가 이렇게 보고해주는 구조입니다.

  • 오늘 롱폼 영상 업로드 성공 여부

  • 오늘 쇼츠 업로드 성공 여부

  • 실패 재시도 폴더에 남은 파일 수

  • 업로드 메타데이터 기록 여부

  • 디스크를 많이 차지하는 임시 폴더 경고

이렇게 되면 AI는 단순 제작자가 아니라 운영 매니저가 됩니다.

저는 앞으로 콘텐츠 자동화를 만들 때 “생성 → 업로드 → 정리 → 기록 → 재시도”까지 하나의 파이프라인으로 묶어가려고 합니다.

📋 재사용 가능한 프롬프트

프롬프트 1: 자동화 결과물 저장 구조 점검하기

지금 자동화 파이프라인에서 생성되는 결과물이 어디에 저장되는지 확인해줘.
성공 시 남는 파일, 실패 시 남는 파일, 재시도에 필요한 파일을 구분해서 정리해줘.
삭제해도 되는 파일과 절대 삭제하면 안 되는 파일을 표로 나눠줘.

프롬프트 2: 성공/실패 기준으로 파일 정리 정책 만들기

이 자동화에서 업로드 성공 후에는 원본 미디어 파일을 삭제하고, 메타데이터만 남기고 싶어.
단, 업로드 실패 시에는 재시도할 수 있도록 필요한 파일을 별도 폴더에 보관해야 해.
성공/실패 조건을 기준으로 파일 정리 로직을 설계하고 적용해줘.

프롬프트 3: 자동화 검증까지 요청하기

코드를 수정한 뒤 실제 폴더 상태를 확인해줘.
남아 있는 미디어 파일 수, 메타데이터 파일 수, 실패 재시도 폴더 상태를 출력하고, 내가 원하는 정책과 맞는지 검증해줘.

3
3개의 답글

뉴스레터 무료 구독