자동화 파이프라인9 분 읽기

내 숏폼은 앱이 아니라 아이콘을 보여주고 있었다

앱 홍보 숏폼을 자동 생성하는 파이프라인을 직접 만들었습니다. 첫 버전은 잘 돌아갔지만, 화면에 나오는 건 앱이 아니라 앱 아이콘이었습니다. 실제 앱 화면으로 다시 설계했고, 마지막에 사람 손이 필요한 구간이 하나 남았습니다.

#shorts#ffmpeg#edge-tts#youtube#screenshots
왼쪽은 아이콘만 떠 있는 세로 영상 프레임, 오른쪽은 폰 목업 안에 실제 앱 화면이 들어간 프레임
같은 파이프라인, 같은 길이. 화면에 올린 것만 달랐습니다.

기성 도구부터 켜봤습니다

앱 여러 개를 만들어 두고 나니, 각각을 소개하는 짧은 영상이 필요해졌습니다. 손으로 편집할 생각은 없었습니다. 생성 파이프라인을 붙이는 쪽이 맞다고 봤습니다.

먼저 MoneyPrinterTurbo와 OpenMontage를 검토했습니다. 결론은 자체 구성이었습니다. 음성은 edge-tts, 합성은 ffmpeg. 내레이션 텍스트와 자막 조각(subs/s1~s5, footer)을 따로 두고, 배치 스크립트로 앱 목록을 돌리는 구조로 시작했습니다.

첫 렌더러(render_short)가 만들어내는 영상은 기술적으로 멀쩡했습니다. 음성이 나오고, 자막이 붙고, 길이가 맞고, 배치로 여러 편이 한 번에 나왔습니다. 그런데 화면 가운데에 있는 건 앱 아이콘이었습니다. 아이콘이 떠 있고, 내레이션이 앱을 설명하고, 자막이 흐릅니다.

여기서 질문 하나. 당신의 홍보 영상은 제품을 보여주고 있습니까, 아니면 제품의 로고를 보여주면서 제품을 말로 설명하고 있습니까?

잘 돌아가는 것과 보여줄 만한 것은 다릅니다

파이프라인 관점에서 첫 버전은 성공이었습니다. 입력(앱 메타데이터)에서 출력(mp4)까지 사람 손이 들어가지 않았습니다. 배치로 여러 편이 나왔고, 실패하는 단계도 없었습니다.

문제는 그 출력물이 시청자에게 아무것도 안 준다는 점이었습니다. 아이콘은 앱을 식별하는 표식이지 앱을 보여주는 화면이 아닙니다. 아이콘만 띄운 영상은 "이런 앱이 있습니다"까지만 말하고, "이 앱을 쓰면 이런 화면을 본다"는 말을 못 합니다. 숏폼에서 앞 몇 초가 전부인데, 그 몇 초를 로고에 쓰고 있었습니다.

고치려면 렌더러 자체를 다시 짜야 했습니다. 소재를 아이콘에서 실제 앱 화면으로 바꾸는 건 에셋 교체 한 줄이 아니라, 화면을 어디서 가져오고 어떻게 배치하느냐를 전부 다시 정하는 일이었습니다. 싼 수정이 없었습니다.

당신이라면?

돌아가는 파이프라인을 그대로 두고 편수를 늘리겠습니까, 아니면 출력물이 설득력이 없다는 이유로 렌더러를 다시 짜겠습니까?

후킹형으로 다시 설계했습니다

두 번째 렌더러(render_hook)는 전제가 다릅니다.

  • 소재: 아이콘 대신 실제 앱 화면. 폰 목업 안에 앱 스크린샷을 넣어, 실제로 쓰는 장면처럼 보이게 했습니다.
  • 오디오: 음성 내레이션을 뺐습니다. 음악과 효과음만 씁니다. 설명을 듣게 하는 대신 화면을 보게 하는 쪽으로 방향을 바꿨습니다.
  • 카피: 후킹 문구를 따로 만드는 경로(hook_copy)와, 소재를 모으는 경로(hook_harvest)를 분리했습니다.

기존 경로를 지우지는 않았습니다. render_short와 render_hook, batch와 hook_batch가 나란히 남아 있습니다. 첫 버전이 만들어 둔 합성·자막·업로드 골격은 그대로 쓸 수 있었고, 바뀐 건 무엇을 화면에 올리느냐였습니다.

앱 목록에 정본이 필요했습니다

렌더러가 앱마다 도는 이상, 앱 목록이 어디서 오는지가 문제가 됩니다. 스크립트마다 목록을 하드코딩하면 편수가 늘어날수록 어긋납니다.

그래서 매니페스트를 하나로 정했습니다. ootssu.com/apps를 정본으로 두고, 수집(harvest)과 보강(enrich)을 거쳐 매니페스트를 빌드하는 경로를 만들었습니다. 영상 파이프라인도, 업로더도 같은 목록을 봅니다.

업로더(upload_youtube)는 영상만 올리지 않습니다. 설명문, 해시태그, 첫 댓글까지 같이 넣습니다. 첫 댓글은 손으로 달면 매번 빠지는 종류의 작업이라, 업로드 단계에 묶어 두는 편이 안전했습니다.

자동 선별이 못 한 일

남은 문제는 스크린샷이었습니다. 폰 목업에 넣을 화면을 앱마다 골라야 하는데, 이걸 자동으로 고르려고 했습니다.

자동 선별은 한계가 분명했습니다. 기계는 "이 화면이 이 앱을 가장 잘 설명하는가"를 판단하지 못했습니다. 게다가 스크린샷 더미에는 오염된 것들이 섞여 있었습니다. 그것들을 제외하고, 마지막에는 손으로 골랐습니다. 최종 9개.

자동화 파이프라인에 사람 손이 한 군데 남았다는 뜻입니다. 저는 이 구간을 억지로 자동화하지 않았습니다. 잘못 고른 스크린샷 한 장이 영상 한 편을 통째로 버리게 만드는데, 선별 비용은 앱당 몇 분입니다. 자동화의 이득이 위험보다 작은 구간입니다.

자가진단 체크리스트

  • 당신의 제품 영상 첫 3초에 나오는 것이 실제 제품 화면입니까, 로고나 아이콘입니까?
  • 파이프라인이 참조하는 제품 목록에 정본이 하나 있습니까, 아니면 스크립트마다 목록이 따로 있습니까?
  • 자동화한 선별 단계에서, 기계가 고른 결과를 마지막으로 눈으로 확인한 게 언제입니까?

솔직한 부분

이 글은 파이프라인이 돌아가기 시작한 시점의 기록입니다. 후킹형 렌더가 아이콘형보다 실제로 더 잘 보이는지는 아직 데이터로 말할 수 없습니다. 조회수도, 시청 지속 시간도, 설치 전환도 확인하지 않았습니다. 제가 확인한 건 "아이콘만 띄운 영상은 앱을 보여주지 못한다"는 판단 하나뿐이고, 그건 제 판단이지 측정이 아닙니다.

스크린샷 9개도 제가 손으로 고른 것이라, 다른 9개였다면 결과가 달랐을지 모릅니다. 자동 선별을 포기한 게 옳았는지도 영상 성과가 쌓여야 알 수 있습니다. 전체 여정과 아키텍처, 남은 일은 docs/JOURNAL.md에 적어 두었습니다.

관련 글