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

내 웹앱 쇼츠가 앱스토어로 안내하고 있었다

업로더는 앱 매니페스트 하나만 알았고, 웹앱 영상에도 App Store와 아이폰앱 문구를 붙일 수 있는 구조였습니다. 게다가 쇼츠 설명과 댓글에 넣은 링크는 클릭이 막혀 있었습니다. 스키마 대응, 프로필 CTA, dry-run을 추가한 기록입니다.

#youtube-shorts#upload-automation#metadata#dry-run#regression-test
왼쪽은 App Store 문구가 붙은 웹앱 쇼츠 설명, 오른쪽은 매니페스트 스키마별로 분기하는 업로더 구조의 2패널 다이어그램
영상은 새 스키마를 따라갔지만 업로더는 예전 앱 매니페스트만 알고 있었습니다.

영상은 바뀌었는데 업로더는 그대로였습니다

쇼츠를 자동으로 만들어 올리는 파이프라인이 있습니다. 영상 렌더링과 업로드는 따로 돌아갑니다. 업로드 스크립트는 매니페스트를 읽고 build_meta에서 제목, 설명, 해시태그를 조립합니다.

처음에 이 파이프라인은 모바일 앱 홍보용이었습니다. 그래서 설명에는 App Store 링크와 아이폰앱 문구가, 해시태그에도 앱 쪽 태그가 들어가 있었습니다.

그러다 웹앱 영상이 추가됐습니다. 웹앱 쪽 매니페스트(apps_hook_web.json)는 hook/cuts 구조를 쓰는데, 기존 앱 매니페스트와 스키마가 다릅니다. 영상 쪽은 새 스키마에 맞춰 바뀌었지만 업로더의 build_meta는 여전히 앱 매니페스트만 알고 있었습니다. 설치할 스토어 페이지가 없는 웹앱에 "App Store에서 받으세요"라고 쓰는 문구가 코드에 그대로 남아 있었던 셈입니다.

당신의 파이프라인에서 입력 형식이 하나 늘었을 때, 맨 끝 단계까지 그 사실을 전달받고 있습니까?

두 번째 구멍: 링크가 눌리지 않았습니다

웹앱이면 설명에 웹 링크만 넣으면 끝날 줄 알았습니다. 그런데 쇼츠는 설명과 댓글에 넣은 링크의 클릭이 막혀 있습니다. 문구를 아무리 맞게 고쳐도 시청자가 누를 수 없으면 아무 데로도 이어지지 않습니다.

그러니 이건 문구 버그로 끝나지 않았습니다. 링크를 어디에 두느냐, 즉 유도 경로가 없던 문제였습니다.

당신이라면 링크가 눌리지 않는 자리에 링크를 계속 두시겠습니까, 아니면 경로를 바꾸시겠습니까?

고친 것

커밋 하나에 세 가지를 넣었습니다.

첫째, build_meta가 hook/cuts 스키마를 읽게 했습니다. 웹앱이면 웹 링크와 웹앱 해시태그를 쓰고, App Store와 아이폰앱 문구는 빼도록 분기했습니다.

둘째, 쇼츠 설명에 프로필 링크로 유도하는 문구를 추가했습니다. 설명과 댓글 링크가 안 눌린다면 사람을 보낼 곳은 프로필밖에 없습니다.

셋째, 업로드 스크립트에 --source web과 --dry-run을 추가했습니다. dry-run은 실제로 올리지 않고 조립된 메타데이터만 보여줍니다. 업로드는 공개된 뒤에 되돌리기 번거로운 작업이라, 올리기 전에 눈으로 확인하는 단계가 필요했습니다.

여기에 회귀 테스트 3종(test_upload_meta.py)을 붙였습니다. 변경 규모는 upload_youtube.py 70줄 수정, 테스트 60줄 추가입니다.

값싼 수정은 문구 몇 줄 바꾸는 것이었습니다. 그런데 진짜 병목은 업로더가 매니페스트 종류를 구분하지 못하는 구조였고, 그 밑에는 플랫폼이 링크 클릭을 막는다는 제약이 있었습니다. 앞쪽은 코드로 고쳤고, 뒤쪽은 우회만 했습니다.

자가진단 체크리스트

  • 파이프라인 앞단에 새 입력 스키마가 생겼을 때, 메타데이터를 만드는 마지막 단계가 그 스키마를 따로 처리하는지 확인했습니까?
  • 설명에 넣은 링크가 그 플랫폼, 그 포맷에서 실제로 클릭되는지 직접 확인했습니까?
  • 외부에 공개되는 업로드 전에, 조립된 제목·설명·태그를 실제 전송 없이 볼 수 있는 dry-run이 있습니까?

솔직한 부분

이 수정 전에 앱스토어 문구가 붙은 웹앱 영상이 실제로 몇 편이나 올라갔는지는 이 기록에 없습니다. 프로필 유도 문구가 클릭이나 방문을 늘렸는지도 아직 모릅니다. 링크를 못 누르는 제약 자체는 제가 바꿀 수 없고, 프로필 CTA는 그 제약 안에서 쓸 수 있는 가장 나은 우회일 뿐입니다. 회귀 테스트 3종이 막아 주는 건 메타데이터 조립 로직까지입니다. 플랫폼 정책이 바뀌는 것까지 잡아 주지는 못합니다.

관련 글