AI로 직접 만든 유튜브 업로더 자동화 프로그램
|

유튜브 업로더 직접 만들기|AI로 시작한 유튜브 자동화

지난 이야기에서 저는 반복되는 일을 컴퓨터에게 맡겨보자는 생각으로 AI 업무 자동화를 시작하게 된 이야기를 했습니다.

이번 글에서는 그렇게 만든 첫 번째 결과물인 유튜브 업로더를 소개하려고 합니다.

저는 개발자가 아닙니다. 프로그램을 전문적으로 배운 적도 없습니다.

그런 제가 AI의 도움을 받아 실제로 사용하고 있는 프로그램을 하나씩 만들기 시작했습니다.

이번 글에서는 복잡한 코딩 이야기는 잠시 미뤄두고, 제가 만든 유튜브 업로더가 어떤 일을 하는지, AI와 함께 프로그램을 만든다는 것이 어떤 방식인지, 그리고 유튜브에 프로그램으로 접근하려면 무엇을 준비해야 하는지 정도부터 이야기해보겠습니다.

손으로 해본 적이 없습니다

Rain on Porcelain의 첫 음악 플레이리스트를 유튜브에 올릴 때부터 저는 이 프로그램을 사용했습니다.

사실 영상을 몇 번 직접 올려보다가 반복 작업에 지쳐서 자동화를 시작한 것은 아닙니다. 오히려 반대에 가까웠습니다.

여러 곡을 이어 하나의 플레이리스트 영상으로 만들면 각 트랙이 몇 분 몇 초에 시작하는지 계산해 챕터를 만들어야 합니다.

영상 제목과 설명도 작성해야 하고, 해외 시청자를 생각하면 이것을 여러 언어로 번역해 다시 입력해야 합니다.

앞으로 이런 영상을 계속 올린다고 생각하니 이 작업을 처음부터 하나씩 손으로 할 엄두가 나지 않았습니다.

그래서 생각했습니다.

“영상을 올리기 전에, 이 일을 대신해줄 프로그램부터 만들어보자.”

그렇게 유튜브 업로더 제작을 시작했습니다.

제가 만든 유튜브 업로더가 하는 일

현재 제가 사용하고 있는 유튜브 업로더는 음악 파일이 담긴 폴더를 넣어주면 몇 가지 작업을 자동으로 처리합니다.

유튜브 업로더에서 음악 파일 길이를 계산해 챕터 타임라인을 자동 생성하는 화면
음악 파일을 순서대로 불러오면 각 곡의 길이를 계산해 유튜브 챕터용 타임라인을 자동으로 만들어줍니다.

먼저 폴더 안에 있는 각각의 음악 파일 길이를 확인합니다.

그리고 그 길이를 차례로 더해서 유튜브 설명에 들어갈 챕터 타임라인을 만들어줍니다.

예를 들어 첫 번째 곡이 3분 20초라면 두 번째 곡은 03:20부터 시작하고, 두 번째 곡이 3분 10초라면 세 번째 곡은 06:30부터 시작하는 식입니다.

곡이 10곡, 15곡, 20곡으로 늘어나면 이것을 직접 계산하는 것도 제법 번거로운 일이 됩니다.

유튜브 업로더에서 영상 제목과 설명을 여러 언어로 번역하는 화면
제목과 설명을 입력하면 여러 언어로 번역해 유튜브 업로드에 사용할 수 있도록 만든 기능

제목과 설명 같은 정보도 약 60개 언어로 번역합니다.

여기서 흔히 말하는 메타데이터(metadata)​라는 것이 등장합니다. 말은 조금 어렵지만, 제가 사용하는 범위에서는 영상에 붙는 제목이나 설명 같은 부가 정보라고 생각하면 이해하기 쉽습니다.

이렇게 준비한 정보와 영상 파일을 이용해 실제 유튜브 업로드까지 진행합니다.

유튜브 업로더에서 영상 파일과 공개 범위를 선택해 업로드하는 화면
준비된 영상과 정보를 이용해 실제 유튜브 업로드를 진행하는 화면

결국 전체 과정을 간단히 정리하면 이렇습니다.

음악 파일 확인 → 트랙 길이 계산 → 챕터 생성 → 제목·설명 번역 → 유튜브 업로드

파일을 프로그램으로 끌어다 놓을 수 있게 했고, 여러 영상도 한 번에 관리할 수 있도록 만들었습니다.

제목을 입력할 때는 유튜브의 글자 수 제한을 넘지 않는지 바로 확인할 수 있고, 번역 과정에서만 문제가 생겼다면 처음부터 모든 작업을 다시 할 필요 없이 번역 부분만 다시 시도할 수도 있습니다.

지금도 실제로 사용하면서 필요한 기능이 생기면 하나씩 추가하고 있습니다.

그런데 프로그램을 어떻게 만들었을까

여기서 아마 이런 의문이 생길 수 있습니다.

“프로그램을 배운 적도 없다면서 이걸 어떻게 만들었을까?”

저는 처음부터 프로그램의 구조를 직접 설계하고 코드를 작성한 것이 아닙니다.

대신 AI에게 제가 하고 싶은 일을 설명했습니다.

“음악 파일이 들어 있는 폴더를 선택하면 각각의 곡 길이를 계산해서 유튜브 챕터를 만들어줬으면 좋겠다.”

“영상 제목과 설명을 여러 언어로 번역했으면 좋겠다.”

“마지막에는 준비된 영상과 정보를 내 유튜브 채널에 올릴 수 있었으면 좋겠다.”

이런 식입니다.

AI는 제가 설명한 기능을 실제 프로그램으로 만들기 위한 코드를 작성해주고, 저는 그것을 실행해봤습니다.

잘 작동하면 다음 기능으로 넘어가고, 문제가 생기면 오류 메시지나 화면을 다시 AI에게 보여주면서 고쳐나갔습니다.

제가 “무엇이 필요한지 정하고 실제로 사용해보는 역할”​을 했다면, AI는 그것을 “프로그램 코드로 구현하는 역할”​을 맡았다고 할 수 있습니다.

물론 이렇게 설명하면 모든 것이 순조롭게 만들어진 것처럼 들릴 수도 있습니다.

실제로는 그렇지 않았습니다.

그 이야기는 조금 뒤로 미뤄두겠습니다.

API라는 것은 무엇일까

프로그램을 만들다 보니 처음 보는 용어들도 하나씩 등장하기 시작했습니다.

그중 하나가 API였습니다.

처음에는 꽤 어려운 기술 용어처럼 느껴졌지만, 제가 이해한 방식은 비교적 단순합니다.

제가 만든 프로그램이 직접 모든 일을 하는 것은 아닙니다.

번역이 필요하면 구글의 번역 서비스에 부탁하고, 유튜브에 영상을 올려야 하면 유튜브에 부탁합니다.

이렇게 프로그램과 다른 서비스가 서로 일을 요청하고 결과를 주고받을 수 있게 만들어놓은 창구를 API라고 생각하면 이해하기 쉽습니다.

제가 만든 유튜브 업로더에서도 비슷합니다.

화면에서 파일을 선택하고 버튼을 누르면 프로그램 내부에서 트랙 길이를 계산하고 필요한 정보를 정리합니다.

그리고 번역이 필요할 때는 구글의 번역 API에 요청을 보내고, 영상 업로드가 필요할 때는 유튜브의 API에 요청을 보냅니다.

처음에는 API라는 말 자체가 낯설었지만, 이렇게 실제 프로그램에서 사용하는 모습을 보고 나니 조금씩 개념이 잡히기 시작했습니다.

구글 클라우드 콘솔은 왜 필요했을까

또 하나 처음 만난 것이 Google Cloud Console이었습니다.

제가 만든 프로그램이 제 유튜브 채널에 영상을 올리려면 구글 입장에서는 확인해야 할 것이 있습니다.

“이 프로그램은 무엇인가?”

“정말 이 사람의 유튜브 채널에 접근해도 되는가?”

아무 프로그램이나 마음대로 내 유튜브 채널에 영상을 올릴 수 있다면 큰 문제가 될 테니까요.

그래서 Google Cloud Console에서 프로젝트를 하나 만들고, 프로그램에서 사용할 유튜브 관련 기능과 번역 기능을 사용할 수 있도록 준비했습니다.

그리고 제가 만든 프로그램이 실제 제 계정에 접근할 수 있도록 인증 과정도 거쳐야 했습니다.

은행 앱을 처음 설치했을 때 본인 확인을 하고 사용 권한을 받는 과정과 비슷하다고 생각하면 조금 이해하기 쉽습니다.

개념 자체는 그렇게 복잡하지 않았습니다.

문제는 실제 화면이었습니다.

공식 설명을 읽고 따라가는데 설명에 나온 메뉴와 지금 화면의 메뉴 이름이 조금 다르기도 하고, 필요한 설정이 어디에 숨어 있는지 찾기 어려운 경우도 있었습니다.

결국 화면을 캡처해서 AI에게 보여주고,

“여기서 뭘 눌러야 하지?”

라고 물어보면서 하나씩 진행했습니다.

그리고 바로 이런 부분부터 본격적인 시행착오가 시작됐습니다.

코딩을 몰라도 프로그램을 만들 수 있을까

유튜브 업로더를 만들기 전의 저였다면 프로그램을 만든다는 것은 코딩을 할 줄 아는 사람들의 영역이라고 생각했을 것 같습니다.

직접 해본 뒤에는 생각이 조금 달라졌습니다.

물론 AI가 있다고 해서 프로그램 개발이 저절로 되는 것은 아니었습니다.

하지만 적어도 내가 어떤 일을 줄이고 싶은지, 프로그램이 무엇을 해줬으면 하는지를 설명할 수 있다면 시작해볼 수 있는 환경​은 만들어졌다고 느꼈습니다.

코드를 직접 작성하지 못하더라도 결과를 실행해보고,

“이건 내가 원한 방식이 아닌데?”

“여기서는 이런 기능이 하나 더 필요하겠는데?”

라고 판단하는 것은 제가 할 수 있는 일이었습니다.

그리고 그 판단을 다시 AI에게 설명하면서 조금씩 프로그램을 고쳐갔습니다.

그렇게 만들어진 첫 번째 도구가 지금도 Rain on Porcelain의 영상을 올릴 때 사용하고 있는 유튜브 업로더입니다.

물론 한 번에 된 것은 아닙니다

여기까지만 보면 AI에게 필요한 기능을 설명하고 몇 번 대화를 나누니 프로그램 하나가 완성된 것처럼 보일 수도 있습니다.

실제로는 꽤 많은 시행착오가 있었습니다.

번역기가 챕터에 들어 있는 시간 표시를 엉뚱하게 해석하면서 타임라인이 깨지기도 했고, 제목과 설명을 다른 언어로 번역하자 유튜브의 글자 수 제한을 넘어가는 문제도 생겼습니다.

Google Cloud Console에서는 설명대로 따라가고 있다고 생각했는데 원하는 화면이 나오지 않아 같은 곳을 몇 번씩 오가기도 했습니다.

AI가 알려준 대로 했는데도 프로그램이 작동하지 않는 경우도 있었습니다.

그리고 그런 문제를 하나씩 해결하면서 오히려 프로그램이 어떻게 작동하는지를 조금씩 이해하게 됐습니다.

프로그램을 만든 경험보다 어쩌면 프로그램이 안 돼서 헤맨 경험에서 더 많이 배웠는지도 모르겠습니다.

다음 글부터는 그 이야기를 해보려고 합니다.

AI와 함께 처음 프로그램을 만들면서 어디에서 막혔고, 무엇이 생각처럼 되지 않았으며, 결국 어떻게 해결했는지.

제가 직접 겪었던 시행착오들을 하나씩 정리해보겠습니다.


Rain on Porcelain에서 더 알아보기

구독을 신청하면 최신 게시물을 이메일로 받아볼 수 있습니다.

Similar Posts

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다