Victor

[연재] 연재를 쇼츠로 (2) 유튜브에 매일 자동으로 올리기

연재 · 2026-09-10

밤 9시, 영상은 올라갔는데 링크가 없었습니다

 

7월 29일 밤 9시였어요. 저는 그 시간에 아무것도 안 하고 있었습니다. 맥미니가 알아서 영상 한 편을 유튜브에 올리기로 돼 있었거든요.

 

업로드 로그는 이렇게 남습니다.

 

 

가운데 줄에 ✅ 와 주소가 찍혀 있죠. 영상은 올라갔습니다. 공개로요. 그런데 바로 다음 줄부터 프로그램이 죽었어요. NameError — 없는 이름을 부르다 터진 겁니다.

 

죽은 자리가 하필 댓글 다는 자리였습니다. 제 쇼츠는 영상만 올리고 끝나는 게 아니라, 올린 직후에 그 영상 밑에 댓글을 하나 답니다. 거기에 링크가 들어가요. 이 장면이 나온 글로 가는 링크, 연재 전체로 가는 링크요.

 

그러니까 그날 밤 9시에 나간 영상은 어디로도 이어지지 않는 영상이었습니다. 사람들이 보긴 보는데, 더 알고 싶어도 갈 데가 없는 상태로 몇 시간을 떠 있었던 거예요.

 

그리고 이게 이 편의 전부입니다. 한 번 올라간 영상은 되돌릴 수가 없어요. 지울 수는 있지만 지운 흔적이 남고, 그 사이에 본 사람은 이미 봤고, 채널 기록에도 남습니다. 글은 고쳐서 다시 배포하면 그만인데 영상은 안 그렇더라고요. 이 차이 하나 때문에 자동화를 어디까지 밀고 어디서 멈출지를 처음부터 다시 생각해야 했습니다.

 

46분 뒤에 손으로 달았습니다

 

로그를 다시 보시면 그 밑에 이런 줄이 하나 더 있어요.

 

 

21:46 댓글 보정(손으로). 9시에 터진 걸 9시 46분에 알아채고, 원인을 고친 다음 빠진 댓글을 손으로 달았습니다.

 

원인은 허무했어요.

 

 

댓글 문구를 만드는 자리에서 다른 파일 하나를 가져다 쓰는데, 그 '가져오기'를 다른 함수 안에서만 해뒀던 겁니다. 파이썬에서 함수 안에서 가져온 것은 그 함수 안에서만 살아요. 밖에서 부르면 없는 이름이 됩니다. 손으로 돌릴 때는 늘 그 함수를 먼저 거쳐서 갔기 때문에 멀쩡했고, 크론이 다른 길로 들어오는 밤 9시에만 죽었습니다.

 

노란 줄에 그 사연을 그대로 적어뒀어요. 나중에 저 줄을 지우고 정리하고 싶은 마음이 들 텐데, 그때 "이건 왜 여기 있지?"를 다시 겪지 않으려고요.

 

여기서 이미 규칙 하나가 나옵니다. 영상 올리기와 댓글 달기는 한 몸이면 안 된다. 그래서 지금은 댓글이 실패해도 프로그램이 안 멈춥니다. 업로드는 이미 끝났고 되돌릴 수 없으니, 뒷일이 깨졌다고 거기서 손을 놓으면 그다음 편까지 밀리거든요. 대신 로그에 남기고, 나중에 comment 명령으로 빠진 편만 따로 답니다.

 

그 전에 — 첫날 여섯 편을 한꺼번에 올렸다가

 

시간을 조금 앞으로 돌리겠습니다.

 

앞 편에서 62편을 만든 이야기를 했었죠. 다 만든 날 밤에 여섯 편을 한 번에 올렸어요. 다음 날 아침에 열어 보니 한 편만 1,981회였고 나머지는 0회에서 400회 사이였습니다.

 

처음엔 "그 편이 재밌었나 보다" 하고 넘어갔는데, 다시 놓고 보니 다르게 읽히더라고요. 같은 채널 영상 여섯 개가 같은 시간에 피드에 던져지면 자기들끼리 자리를 나눠 먹습니다. 하나가 뜨면 나머지는 그만큼 덜 뜨는 구조예요.

 

그래서 두 가지를 정했습니다.

 

 

첫째, 순서를 바꿨어요. 89번 줄이 그겁니다. 원래는 1편부터 차례대로 나갈 참이었는데, 3편(계산기 버그 잡던 이야기)과 5편(사진 2만 6천 장이 전부 엉뚱한 데로 간 이야기)을 앞으로 뺐습니다. 잘 돈 게 버그 이야기였으니까요. 소개하는 편은 뒤로 미뤘습니다.

 

둘째, 하루에 몇 편 올릴지를 숫자 하나로 못 박았어요. 91번 줄, 하루 5편입니다. 그리고 이 5를 하루 안에 흩어 놓는 건 크론이 합니다.

 

크론 다섯 줄

 

지금 맥미니가 매일 도는 일은 이렇게 생겼습니다.

 

 

세 번째 줄이 업로드예요. 9,12,13,15,18 — 하루 다섯 번, 한 번에 딱 한 편씩 올립니다. --limit 1 이 그 뜻이에요.

 

한 줄로 다섯 편을 올리게 하고 그 안에서 쉬게 할 수도 있었는데 안 그랬습니다. 프로그램이 한 번 돌면서 세 시간을 자고 있으면, 중간에 뭐 하나 잘못됐을 때 남은 네 편이 통째로 날아가요. 회차를 다섯 개로 쪼개 놓으면 한 회차가 깨져도 나머지 넷은 그냥 돕니다. 다음 회차는 세 시간 뒤에 아무 일 없었다는 듯이 또 오고요.

 

그 밑의 yt_stats.py snapshot 은 매시 30분마다 올린 영상들의 조회수를 한 줄씩 적어 두는 일입니다. 이게 나중에 "어느 시각에 올린 게 잘 되나"를 답해줍니다. 뒤에서 그 숫자를 보여드릴게요.

 

현황판에서는 이렇게 보입니다.

 

 

칸이 다섯 개죠. 위 숫자가 예정 시각, 아래 숫자가 실제로 돈 시각입니다. 09:00 예정에 09:00 실행. 다섯 칸 다 초록이면 그날은 다섯 편이 제 시각에 나갔다는 뜻이에요. 하나가 빨개지면 그 시각에 뭔가 걸린 겁니다.

 

이 화면을 만들기 전에는 로그를 열어서 눈으로 세어야 했는데, 사실 그러다 보면 안 세게 되거든요. 지금은 아침에 한 번 훑는 데 3초면 됩니다.

 

무엇을 언제 올릴지가 진짜 일이었어요

 

여기서 좀 재밌는 얘기를 해야 하는데요.

 

채널에는 갈래가 둘입니다. 하나는 지금 이 연재를 쪼갠 쇼츠고, 다른 하나는 제가 따로 모아 온 키보드 스위치 리뷰 쇼츠예요. 스위치 얘기는 이 연재의 주제가 아니니 여기서는 그냥 '다른 갈래' 정도로만 부르겠습니다. 중요한 건 한 채널에 성격이 다른 영상 두 종류가 섞여 나간다는 사실 하나예요.

 

처음엔 그냥 번갈아 내면 되겠지 했습니다. 그런데 그것만으로는 부족하더라고요. 아침에 이 채널을 보는 사람과 저녁에 보는 사람이 다른데, 아무 때나 아무거나 나가면 둘 다 자기 것을 못 만납니다.

 

그래서 시각마다 갈래를 정해뒀어요. 앞의 코드 화면 98번 줄이 그겁니다. 9시·15시·21시는 한 갈래, 12시·18시는 다른 갈래. 회차마다 "이 시각은 무엇 차례"가 정해져 있고, 대기열에서 그 갈래에 맞는 것만 골라 올립니다.

 

이틀치가 한 갈래로만 나갔습니다

 

그리고 여기서 한 번 크게 걸렸어요.

 

 

노란 줄을 보시면 사연이 적혀 있습니다. "실제로 그렇게 이틀치가 연재로만 나갔다."

 

무슨 일이었냐면요. 대기열을 만드는 함수가 매번 새로 돕니다. 크론이 한 편 가져갈 때마다 처음부터 다시 줄을 세워요. 그런데 줄을 세울 때 늘 연재편을 맨 앞에 놓고 시작했습니다. 번갈아 세우긴 하는데, 시작점이 항상 같았던 거죠.

 

한 번에 한 편만 가져가니까 결과는 이렇게 됩니다. 9시에 맨 앞(연재)을 가져가고, 12시에 다시 줄을 세우는데 또 연재가 맨 앞이고, 그걸 또 가져가고… 번갈아 세운 뜻이 완전히 사라집니다. 리스트 안에서만 번갈아 있고 실제로 나가는 건 한 갈래뿐이었어요.

 

이걸 어떻게 알았냐면, 코드를 읽다가 안 게 아니라 채널을 눈으로 보다가 알았습니다. 이틀치가 다 같은 종류로 올라가 있더라고요. 로그는 아무 문제 없다고 말하고 있었어요. 다섯 회차 전부 초록이었고, 매번 한 편씩 정확히 올라갔으니까요. 규칙은 지켜졌는데 의도가 안 지켜진 경우였습니다.

 

고친 방법은 단순합니다. 줄의 시작을 정해진 갈래가 아니라 직전에 올린 것으로 잡았어요. 마지막에 연재가 나갔으면 이번엔 다른 갈래부터, 반대면 반대로. 한쪽 대기열이 비면 남은 쪽이 이어서 나갑니다.

 

지금은 현황판에 이렇게 뜹니다.

 

 

시각마다 무엇이 나갈지가 미리 다 보여요. 09:00 스위치, 12:00 연재, 15:00 스위치, 18:00 연재… 딱지 색으로 갈래가 갈립니다. 올라가기 전에 제목을 볼 수 있다는 게 이 화면의 전부고, 그게 다음 이야기입니다.

 

나가는 문만 사람이 열게 하려다, 관문을 내렸습니다

 

애초에 제가 세운 규칙은 이거였어요.

 

"자동으로 만들고, 자동으로 줄 세우되, 나가는 문만 사람이 연다."

 

되돌릴 수 없는 일 앞에는 사람을 한 번 세우자는 거였습니다. 그래서 7월 27일에 현황판에 확인 단추를 붙였어요. 대기열의 편마다 체크박스가 있고, 제가 미리보기로 영상을 열어 보고 체크를 누르면 그 편만 나가는 구조로요.

 

그런데 이틀 뒤인 7월 29일에 그 관문을 내렸습니다.

 

 

노란 두 줄이 그 결정입니다. "확인(approved)은 게이트가 아니라 표시다. 확인이 안 된 편도 회차가 오면 그대로 나간다. 채널이 멈추는 쪽이 더 손해다."

 

왜 내렸냐면, 이틀 돌려보니 답이 나왔거든요. 제가 하루에 다섯 번, 정확히 그 시각 전에 영상을 확인할 수 있는 사람이 아니었습니다. 회사에 있고, 회의 중이고, 자고 있어요. 확인을 못 하면 그 회차는 그냥 빕니다. 하루 이틀 비는 게 아니라 평일이 통째로 비어요.

 

그러니까 관문을 세우면 이렇게 됩니다. 잘못 나갈 위험은 0이 되는데, 채널이 며칠에 한 번씩만 도는 채널이 됩니다. 매일 같은 시각에 뭔가 나오는 것이 이 일의 거의 전부인데, 그걸 지키려고 만든 자동화가 저 하나 때문에 멈추는 거예요.

 

그래서 확인은 남기되 막지는 않게 했습니다. 체크를 누르면 "이건 봤다"는 표시가 남고, 안 눌렀어도 회차가 오면 나갑니다. 올라가고 나면 그 표시는 지워져요. 이미 나간 건 볼 대상이 아니니까요.

 

이게 옳은 선택이었는지는 아직 모르겠습니다. 다만 저울의 양쪽에 뭐가 올라가는지는 분명해졌어요. 한쪽엔 "잘못 나갈 확률", 다른 쪽엔 "안 나갈 확률"이 있고, 저는 제가 확인을 못 할 확률이 훨씬 높다는 걸 이틀 만에 인정한 겁니다.

 

한 가지 조건은 붙였어요. 확인이 관문이 아니게 된 대신, 대기열 화면에는 앞으로 나갈 25편이 제목까지 다 보입니다. 5일치예요. 언제든 열어보면 앞으로 닷새 동안 뭐가 나갈지 알 수 있고, 이상한 게 끼어 있으면 그 전에 뺄 수 있습니다. 문 앞에서 한 편씩 막는 대신 닷새 앞을 미리 보는 쪽으로 바꾼 셈이에요.

 

화면에는 아직 '확인해야 올라감'이라고 적혀 있어요

 

이 글을 쓰려고 화면과 코드를 나란히 놓고 보다가 하나 걸렸습니다.

 

앞의 대기열 화면을 다시 보시면, 제목 옆에 작은 글씨로 '확인해야 올라감' 이라고 붙어 있어요. 그런데 바로 아래 설명줄에는 '확인 여부와 상관없이 회차가 오면 올라갑니다' 라고 적혀 있습니다. 같은 카드 안에서 두 문장이 정반대 얘기를 하고 있는 거죠.

 

관문을 만들 때 붙인 딱지가, 관문을 내리면서 안 떼어진 겁니다. 설명줄은 고쳤는데 제목 옆 딱지는 못 봤어요.

 

별것 아닌 것 같지만 저는 이런 게 제일 무섭습니다. 화면이 코드보다 오래 사는 거짓말을 합니다. 코드는 안 맞으면 터지기라도 하는데, 화면의 글자는 틀려도 아무 일이 안 일어나요. 몇 달 뒤에 저 화면을 보면 저는 "아, 확인해야 올라가는구나" 하고 믿을 거고, 안 눌렀으니까 안 나갔겠지 하고 넘어갈 겁니다. 실제로는 다 나갔는데요.

 

아직 안 고쳤습니다. 다음에 현황판을 손볼 때 같이 뗄 생각이에요.

 

쇼츠는 설명란을 아무도 안 엽니다

 

밤 9시에 죽었던 그 댓글 얘기로 돌아가겠습니다. 애초에 왜 댓글에 링크를 달게 됐냐면요.

 

처음엔 설명란에만 넣었어요. 영상 밑에 글 주소와 연재 주소를 적어두는 식으로요. 그런데 쇼츠는 설명란을 여는 사람이 거의 없습니다. 세로 화면을 위로 넘기면서 보는 흐름에 설명란을 펼치는 동작이 안 들어가요. 조회수가 3,569회까지 올라간 편에서도 링크를 눌러본 흔적이 거의 없었습니다.

 

댓글은 다릅니다. 화면에 바로 뜨고, 주소가 눌립니다. 그래서 올리자마자 댓글을 하나 다는 걸로 바꿨어요. 연재편이면 이 장면이 나온 글과 연재 전체 목록으로 갑니다.

 

여기서도 자동으로 안 되는 게 하나 있었어요. 댓글 고정(핀)은 유튜브 쪽에서 프로그램으로 할 수가 없습니다. 스튜디오에 들어가서 손으로 눌러야 해요. 그래서 댓글은 자동으로 달아두고, 고정만 제가 가끔 한 번씩 눌러 줍니다. 안 눌러도 댓글은 거기 있으니 손해가 크지 않고, 대신 매번 사람을 기다리지 않아도 되니까요.

 

인스타에도 같은 영상을 보냅니다 — 그런데 그대로는 못 올려요

 

같은 영상을 인스타 릴스로도 보내기로 했습니다. 이미 만들어둔 게 있으니 그냥 올리면 되는 줄 알았어요.

 

 

안 되더라고요. 표를 보시면 압니다. 릴스는 화면 아래를 계정명·캡션·음원 바가 320픽셀쯤 덮고, 오른쪽을 좋아요·공유 버튼이 130픽셀쯤 덮습니다. 유튜브 쇼츠는 아래에 제목 한 줄이 전부라 그 자리에 뭘 그려도 됐는데, 릴스에 그대로 올리면 화면 아래에 그려둔 게 통째로 가려집니다.

 

설명란도 없어요. 링크를 걸 자리가 프로필 하나뿐입니다. 해시태그도 유튜브처럼 30개 채우면 스팸으로 잡히고요.

 

그래서 영상을 만드는 코드는 한 줄도 안 건드렸습니다. 이유가 둘이었어요. 하나는 그게 유튜브용 렌더와 같은 코드라 릴스 때문에 좌표를 옮기면 유튜브가 같이 바뀐다는 것. 다른 하나는 그 좌표에 조건이 물려 있어서, 한 줄 옮겼을 때 어디가 깨지는지 렌더해 보기 전엔 모른다는 것이었습니다.

 

대신 다 뽑아둔 mp4를 한 번 더 변환하기로 했어요. 아래 두 줄을 잘라내고, 폭을 줄여 오른쪽을 버튼에 내주고, 아래에 여백을 붙여 캡션 자리를 만들고, 그 위에 "전체 리뷰는 프로필 링크에서"를 얹습니다. 원본 튜닝을 하나도 안 건드리고 이미 만들어둔 것 전부에 그대로 먹는 방식이에요.

 

자르는 선 바로 위에 내용이 남아 있으면 중요한 게 잘린 채 올라가겠죠. 그래서 잘림 검사를 따로 붙였습니다.

 

올리는 순서에도 규칙을 하나 뒀어요. 유튜브가 먼저입니다. 유튜브에 올라간 지 24시간이 지난 편만 인스타로 갑니다. 같은 영상이면 노출을 먼저 먹어야 할 쪽은 종착지니까요. 게시 시각을 모르겠으면 그 회차는 그냥 쉽니다 — 모르는 채로 올려서 유튜브보다 먼저 나가는 것보다 낫다고 봤어요.

 

첫 시도의 71%가 실패입니다

 

인스타는 파일을 안 받습니다. 공개된 주소만 받아요. 그래서 올리기 직전에 영상을 웹에 한 번 올리고, 그 주소를 인스타에 넘깁니다.

 

여기서 제대로 걸렸어요.

 

 

주소를 올리고 나서 우리 쪽에서 두 번 확인해 정상이어도, 인스타가 가지러 가면 아직 안 퍼져 있습니다. 그리고 인스타가 돌려주는 말은 ERROR 한 단어예요. 왜 실패했는지를 안 알려줍니다.

 

로그를 세어 보니 첫 시도의 71%가 실패였습니다. 게시 14번 중 10번이 재시도로 올라간 거예요. 처음엔 이걸 '고장'으로 봤는데, 세어 보고 나서 '정상'으로 다시 분류했습니다. 고칠 수 있는 종류가 아니라 견뎌야 하는 종류였어요.

 

그래서 두 가지를 넣었습니다. 하나는 넘기기 전에 30초를 그냥 기다리는 것(238번 줄). 크론이 도는 일이라 30초쯤은 아무 값도 아니고, 그 사이에 대부분 퍼집니다. 다른 하나는 재시도 간격 세 개(241번 줄) — 30초, 60초, 120초.

 

두 번째 줄에도 사연이 붙어 있어요. 처음엔 재시도를 한 번만 뒀는데, 8월 3일 10시 회차를 통째로 놓쳤습니다. 첫 시도가 71% 실패하는데 기회를 두 번만 주면 8%는 회차가 날아갑니다. 8%면 열이틀에 하루꼴이에요. 매일 나가는 게 이 일의 목적인데 열이틀에 하루가 비면 목적이 반쯤 무너집니다.

 

크론에는 node가 없습니다 (또)

 

 

이 세 줄은 앞선 회차에서 이미 한 번 나왔던 병입니다. 손으로 돌리면 멀쩡한데 크론에서만 조용히 죽는 것.

 

크론은 저와 같은 환경에서 돌지 않습니다. 제가 터미널을 열면 여기저기서 설정을 읽어와서 도구들 경로가 다 잡혀 있는데, 크론에게 주어지는 건 거의 맨바닥이에요. 주석에 적어둔 그대로입니다 — 손으로 돌릴 땐 멀쩡하다가 저녁 회차만 No such file or directory: npx 로 죽습니다.

 

주석 마지막 줄에 적어놨듯이, 사이트 배포 스크립트도 같은 이유로 같은 줄을 갖고 있어요. 두 번째 겪고 나서야 이게 우연이 아니라는 걸 알았습니다. 크론에 뭔가 새로 걸 때는 이제 이 줄부터 넣고 시작해요.

 

인스타 쪽 현황판은 이렇게 생겼습니다.

 

 

칸 세 개, 10시·16시·22시. 예정 10:00에 실제 10:01, 16:00에 16:01로 찍혀 있어요. 오른쪽 22시 칸은 아직 안 왔으니 비어 있습니다.

 

3주 반쯤 돌려놓고 세어봤습니다

 

8월 19일 밤에 숫자를 세어봤어요.

 

 

129편이 올라갔고 누적 조회가 56,734회입니다. 대단한 숫자는 아니지만, 도메인 붙인 지 얼마 안 돼서 검색 유입이 사실상 0이던 걸 생각하면 문이 하나 열리긴 열렸습니다.

 

재밌는 건 시각별 성적이에요. 올린 지 24시간 시점의 평균 조회수로 줄을 세우면 12시가 667회로 제일 높고, 18시 424회, 9시 413회, 15시 357회 순입니다. 갈래별로는 연재편이 531회, 다른 갈래가 363회고요.

 

다만 이 표를 읽을 때 조심할 게 있습니다. 시각과 갈래가 섞여 있어요. 12시가 잘 되는 게 점심시간이라서인지, 그 시각에 나가는 게 연재편이라서인지 이 표로는 못 가릅니다. 갈래를 바꿔 며칠 돌려보기 전에는 답이 안 나와요. 아직 안 해봤습니다.

 

맨 아래 13시 줄만 207회로 확 낮은데, 이건 다음 이야기와 이어집니다.

 

쇼츠가 사이트로 사람을 데려오나 — 잴 장치가 없었습니다

 

8월 9일에 "쇼츠가 사이트로 사람을 데려오고는 있나"를 따져보려다 벽에 부딪혔어요.

 

 

잴 방법이 없었습니다. 유튜브는 쇼츠 댓글에 달린 링크가 몇 번 눌렸는지를 안 알려주고, 제 사이트의 방문 집계는 글별 조회수만 세지 어디서 왔는지를 안 남깁니다. 그때까지 77편에 44,575회가 찍혀 있었는데, 그게 0명을 데려왔는지 500명을 데려왔는지 알 방법이 없었어요.

 

그래서 링크 뒤에 꼬리표를 하나 붙였습니다. 주소 끝에 ?from=yt 를 달아두면, 사이트에 이미 붙어 있는 방문 측정 도구에서 그 주소만 따로 볼 수 있거든요. 사이트 코드는 안 건드리고 링크만 바꿔서 흐름이 잡히는지부터 보기로 했습니다.

 

여기에도 정직하게 적어둔 한계가 있어요. 이미 올라간 77편에는 옛 링크가 박혀 있습니다. 앞으로 올리는 편만 잡혀요. 하루 두어 편씩 쌓이니 2주면 30~50편이 모이고, 그때 숫자가 의미 있게 나오면 옛 편 댓글도 일괄로 고칠 생각입니다.

 

그러니까 이 질문의 답은 아직 없습니다. 재기 시작한 날짜만 있어요.

 

지금도 안 맞는 것 하나

 

마지막으로 아직 안 고친 걸 하나 적어두겠습니다. 이 글을 쓰면서 발견했어요.

 

8월 9일에 밤 21시 회차를 낮 13시로 옮겼습니다. 크론은 제대로 고쳤어요. 지금 9,12,13,15,18 로 돌고 있습니다.

 

그런데 어느 시각에 무슨 갈래가 나갈지를 적어둔 표는 안 고쳤습니다. 거기엔 아직 9·12·15·18·21 이 적혀 있어요. 그러니까 13시 회차는 표에 없는 시각이고, 갈래가 정해져 있지 않은 회차입니다.

 

확인해보니 이렇게 되고 있었어요. 회차를 판정할 때 "예정 시각에서 한 시간 안이면 그 회차로 본다"는 규칙이 있는데, 13시 정각은 12시로부터 정확히 한 시간 뒤라 1초만 지나도 어느 회차도 아닌 게 됩니다. 크론이 13시 00분 몇 초에 도니까 실제로는 늘 '미지정'이에요.

 

미지정이면 갈래를 안 가리고 대기열 맨 앞의 것을 그냥 올립니다. 그런데 실제 기록을 세어 보니 13시에 나간 열 편이 전부 같은 갈래였어요. 우연이 아니라, 12시에 연재가 나갔으니 번갈아 세우는 규칙에 따라 그다음 차례가 항상 그 갈래였던 겁니다. 규칙 하나가 틀어졌는데 다른 규칙이 그 자리를 메워서 결과적으로는 멀쩡해 보이는 상태예요.

 

앞의 성적표에서 13시가 207회로 유독 낮았던 것도 여기 걸려 있습니다. 다만 이게 시각 탓인지 갈래 탓인지는, 앞에서 적은 것과 같은 이유로 아직 못 가릅니다. 표본도 아홉 편뿐이고요.

 

그리고 화면 설명에도 아직 '09·15·21시'라고 적혀 있어요. 관문 딱지와 똑같은 병입니다. 바꾼 것은 세 군데인데 고친 것은 한 군데였어요. 크론만 고치고, 코드의 표와 화면의 설명은 그대로 뒀습니다.

 

사람은 어디에 남았나

 

이번 편에서 갈라보면 이렇게 됩니다.

 

AI가 한 일 — 유튜브 인증, 끊겨도 이어서 올라가는 업로드, 잠깐 뻗은 서버에 대비한 재시도, 재생목록 자동 생성, 댓글 달기, 인스타용 화면 변환과 게시, 조회수 스냅샷까지. 저 혼자였으면 유튜브 인증 붙이는 데만 며칠 썼을 거예요.

 

제가 한 일 — 네 가지였습니다.

 

첫째, 첫날 여섯 편이 서로 자리를 나눠 먹는다는 걸 읽은 것. 숫자는 프로그램이 세줬지만, "이건 편이 재미없어서가 아니라 몰아 올려서다"라고 읽는 건 사람이 했어요. 그 한 줄에서 하루 다섯 회차가 나왔습니다.

 

둘째, 이틀치가 한 갈래로만 나간 걸 눈으로 잡은 것. 로그는 정상이라고 말하고 있었어요. 다섯 회차 다 초록이었고 매번 한 편씩 정확히 올라갔습니다. 규칙은 지켜졌는데 뜻이 안 지켜진 걸 알아채려면 채널을 열어봐야 했습니다.

 

셋째, 관문을 세울지 말지를 정한 것. 이건 기술 문제가 아니었어요. "잘못 나갈 위험"과 "안 나갈 위험" 중 어느 쪽이 나에게 더 큰지를 정하는 일이었고, 그건 제 생활을 아는 사람만 답할 수 있습니다. 이틀 돌려보고 관문을 내렸어요. 그 대신 닷새 앞을 미리 보는 화면을 남겼고요.

 

넷째, 터진 뒤 46분 만에 손으로 댓글을 단 것. 자동화가 끝까지 못 간 자리를 사람이 메운 거예요. 이건 자랑이 아니라 그냥 남는 몫입니다. 이런 자리가 앞으로도 계속 생길 거고요.

 

한 줄로 줄이면 이렇습니다. 자동화의 값어치는 손을 던 시간이 아니라, 매일 같은 시각에 빠지지 않는 것에 있더라고요. 그리고 빠지지 않으려면 실패를 견디는 장치가 있어야 합니다. 첫 시도가 71% 실패하는 걸 '고장'이 아니라 '정상'으로 다시 분류하고 나서야 매일 나가기 시작했어요.

 

되돌릴 수 없는 일 앞에 사람을 세우는 게 맞다고 아직도 생각합니다. 다만 그 사람이 하루 다섯 번 제시간에 서 있을 수 없다면, 문을 지키는 대신 닷새 앞을 내다보는 자리로 옮겨 앉는 편이 낫더라고요. 문 앞에 못 서 있는 사람은 문을 지키는 게 아니라 문을 잠그는 겁니다.

 

다음 편에서는 이렇게 늘어난 글과 영상이 검색에서 서로를 잡아먹는 문제를 다루겠습니다. 같은 내용이 여러 주소에 있으면 검색 쪽에서 어느 것을 진짜로 볼지 헷갈려 하는데, 그걸 정리한 이야기예요.

 

#AI로사이트만들기 #휴먼인더루프 #유튜브쇼츠 #쇼츠자동업로드 #유튜브API #YouTubeDataAPI #인스타릴스 #릴스자동화 #콘텐츠자동화 #크론탭 #크론 #맥미니 #파이썬 #자동화스크립트 #1인개발 #개인개발자 #사이드프로젝트 #클로드 #클로드코드 #바이브코딩 #유튜브채널운영 #쇼츠운영 #조회수분석 #재생목록 #댓글링크 #victorhouse #정적사이트 #클라우드플레어 #블로그운영 #자동배포

댓글

    로그인 없이 쓰는 대신, 등록한 댓글은 직접 지울 수 없습니다. 지워야 할 댓글은 옆의 신고를 눌러주세요.
    네이버 블로그글 원문 보러가기 →유튜브 쇼츠만드는 장면 20초로 보기 →
    관리자 Victor · 문의는 우상단 신고·제안으로 남겨주세요.
    글과 화면은 정적 파일로 만듭니다. 댓글과 조회수만 외부 데이터베이스에 저장합니다 — 개인정보처리방침

    오류 신고 · 제안

    관리자 Victor에게 전달됩니다