본문 바로가기

AI 콘텐츠 자동화

파이썬 MoviePy를 활용한 유튜브 영상 렌더링 100% 무인 자동화 구축기

파이썬 MoviePy를 활용한 유튜브 영상 렌더링 100% 무인 자동화 구축기

블로그 원고 자동화, 로컬 AI를 통한 비용 절감, 그리고 유튜브 썸네일 세팅 자동화까지 성공하며 제 파이프라인은 완벽해 보였습니다. 하지만 저에겐 매일 밤마다 마주해야 하는 끔찍한 병목 구간이 하나 남아있었죠.

바로 '영상 편집과 렌더링'이었습니다.

AI가 아무리 글을 기가 막히게 써주고 대본을 뽑아줘도, 결국 그 대본을 캡컷(CapCut)이나 프리미어 프로에 넣고 자막을 썰고 타이밍을 맞추는 건 온전히 제 '수작업'이었습니다. 영상 하나를 완성하기 위해 마우스를 수백 번 클릭하고, 무거운 편집 프로그램이 영상을 다 뽑아낼 때까지 모니터 앞에서 하염없이 멍을 때려야만 했습니다.

무거운 영상 편집 프로그램을 켜놓고 밤새워 수작업으로 자막 싱크를 맞추며 꾸벅꾸벅 조는 피곤한 모습 (AI 이미지 - 파일명: image_01.png)

"내가 로봇도 아니고 매일 이걸 어떻게 하지?"

완전 무인화의 마지막 퍼즐, 영상 편집 자체를 코드 몇 줄로 자동화해 버리는 혁명적인 파이썬 라이브러리 MoviePy(무비파이)를 도입하여, 클릭 한 번에 롱폼과 쇼츠 영상이 뚝딱 튀어나오는 무인 렌더링 공장을 구축한 치열한 여정을 공유합니다.


1. 무거운 편집기는 가라, 코드로 영상을 빚어내는 MoviePy

MoviePy는 파이썬 코드를 통해 동영상을 자르고, 붙이고, 자막을 입히고, 배경음악을 깔아주는 마법 같은 라이브러리입니다. 무거운 UI를 가진 프리미어 프로나 애프터 이펙트 없이도 터미널 백그라운드 환경에서 영상을 렌더링할 수 있죠.

가장 먼저 pip install moviepy 명령어로 라이브러리를 설치했습니다. 제 목표는 앞서 001편에서 구축했던 구조대로 '가로형 롱폼(16:9)''세로형 쇼츠(9:16)' 두 가지 포맷을 동시에, 그리고 자동으로 뽑아내는 것이었습니다.

거대한 렌더링 기계 앞에서 파이썬 코드가 적힌 태블릿을 조작하자 톱니바퀴가 돌아가며 비디오테이프들이 자동으로 생산되는 공장 같은 모습 (AI 이미지 - 파일명: image_02.png)


2. 텍스트와 음성, 그리고 이미지를 하나로 융합하다

자동 렌더링의 핵심 원리는 '블록 맞추기'입니다.

  1. TTS(Text-to-Speech)로 자동 생성된 MP3 음성 파일
  2. 각 구간에 맞는 미드저니/나노바나나 생성 이미지
  3. 자막 파일(SRT)의 텍스트

이 세 가지 재료를 코드로 읽어 들여 타임라인 위에 정확하게 쌓아 올려야 합니다.

from moviepy.editor import ImageClip, AudioFileClip, TextClip, CompositeVideoClip

def render_auto_video(image_path, audio_path, subtitle_text, output_filename, is_shorts=False):
    # 1. 오디오 블록 불러오기
    audio = AudioFileClip(audio_path)

    # 2. 이미지 블록 불러오기 (오디오 길이에 맞추기)
    image_clip = ImageClip(image_path).set_duration(audio.duration)

    # 사이즈 조정 (롱폼 vs 쇼츠)
    if is_shorts:
        image_clip = image_clip.resize(height=1920, width=1080)
    else:
        image_clip = image_clip.resize(height=1080, width=1920)

    # 3. 자막 텍스트 블록 생성 (디자인 적용)
    txt_clip = TextClip(subtitle_text, fontsize=70, color='white', font='GmarketSans-Bold', stroke_color='black', stroke_width=2)
    txt_clip = txt_clip.set_pos(('center', 'bottom')).set_duration(audio.duration)

    # 4. 이미지 + 자막 + 오디오 합성
    final_video = CompositeVideoClip([image_clip, txt_clip]).set_audio(audio)

    # 5. 렌더링 시작! (무인 백그라운드)
    final_video.write_videofile(output_filename, fps=24)

# 실행 예시
render_auto_video("scene1.png", "voice1.mp3", "파이썬 자동화가 이렇게 쉽습니다!", "final_output.mp4")

코드를 실행하자, 편집 프로그램을 아예 켜지도 않았는데 터미널 창에서 프로그레스 바가 주르륵 올라가더니 불과 1분 만에 final_output.mp4라는 완벽한 영상 파일이 툭 튀어나왔습니다!

시커먼 터미널 창에서 코드가 실행되자 옆에 있는 폴더에 완성된 MP4 동영상 파일이 마술처럼 '짠' 하고 생성되는 순간 (스크린샷 기반 합성 이미지 - 파일명: image_03.png)


3. 세로형 쇼츠 자동 리사이징의 마법

롱폼 영상을 쇼츠로 변환할 때 가장 골치 아픈 점은 바로 화면 비율입니다. 16:9 가로 화면을 단순히 9:16 세로로 자르면 캐릭터의 얼굴이 잘리거나 중요한 정보가 날아가 버리죠.

저는 파이썬의 Pillow 라이브러리와 MoviePy를 결합하여, 가로형 이미지를 위아래로 꽉 채우되 빈 공간은 가우시안 블러(Gaussian Blur) 처리하여 꽉 찬 세로형 화면을 만드는 '오토 크롭 및 블러 기능'을 코드에 추가했습니다.

이제 스크립트 실행 버튼 하나만 누르면, 3분짜리 유튜브 롱폼 영상 하나와 1분짜리 틱톡/쇼츠용 숏폼 영상이 동시에 각자의 해상도에 맞춰져서 렌더링됩니다.


결론: 비로소 완성된 '자면서 돈 버는' 진짜 파이프라인

"수동 렌더링의 늪"에서 탈출한 날, 저는 컴퓨터가 알아서 영상을 뚝딱뚝딱 뽑아내고 유튜브에 업로드하는 과정을 팔짱을 끼고 지켜보기만 했습니다.

원고 기획 ➡️ 로컬 AI 텍스트 가공 ➡️ 이미지 자동 생성 ➡️ MoviePy 백그라운드 렌더링 ➡️ 유튜브 무인 업로드.

그동안 조각조각 나눠져 있던 모듈들이 하나의 거대한 컨베이어 벨트로 완벽하게 맞물려 돌아가는 순간이었습니다.

소파에 누워 편안하게 스마트폰을 보는 사이, 뒤편의 책상 위 컴퓨터 모니터에서는 "렌더링 완료 100%" 텍스트와 함께 유튜브 자동 업로드가 척척 진행되는 여유로운 모습 (AI 분위기 이미지 - 파일명: image_04.png)

이로써 저의 'AI 기반 무인 자동화 연구소' 구축 프로젝트의 거대한 1막이 막을 내렸습니다. 이제 남은 건 이 시스템이 매일매일 자동으로 찍어내는 콘텐츠들이 실제 시장에서 어떤 파급력과 수익을 가져오는지, 그 리얼한 데이터들을 검증하는 일뿐입니다.

기나긴 여정을 함께해 주셔서 감사합니다. 파인선생의 진정한 실전 수익 창출 실험은 이제부터 시작입니다!