유튜브 쇼츠 일괄 업로드 — 한 편씩 올리던 작업을 바꾸기까지
유튜브 쇼츠 일괄 업로드 기능을 만들게 된 계기는 앨범마다 늘어나는 쇼츠였습니다. 앨범 한 장의 작업은 긴 영상 하나를 완성했다고 끝나지 않습니다. Rain on Porcelain에서는 앨범의 음악을 짧게 소개하는 쇼츠도 함께 만들고 있습니다.
처음에는 앨범마다 두세 곡을 골라 쇼츠를 올려봤습니다. 아직 쇼츠가 앨범 전체 영상의 조회수를 높이는 데 기여하는 정도는 크지 않은 것 같습니다. 다만 채널 전체 조회수를 상당 부분 끌어올려주는 효과는 체감하고 있습니다. 짧은 영상으로라도 제 음악을 접하는 기회가 늘어난다는 점에서 꾸준히 시도해볼 만하다고 생각했습니다.
그래서 지금은 ChatGPT와 Claude를 활용해 앨범 전 곡의 쇼츠를 제작하고 있습니다. 곡마다 30초 안팎의 하이라이트를 골라 영상과 소개 문구를 준비합니다. 아홉 곡짜리 앨범이면 쇼츠 아홉 편, 열 곡이면 열 편이 생깁니다.
음악을 고르고 영상과 문구를 다듬는 데는 곡마다 다른 판단이 필요합니다. 그런데 완성된 쇼츠를 유튜브에 올리는 단계에서는 비슷한 입력과 클릭이 계속 반복됐습니다. 제목과 설명을 붙여 넣고, 콘텐츠 관련 설정을 확인하고, 재생목록을 고르는 일을 다음 영상에서도 다시 해야 했습니다.
이번에는 이 반복을 줄여보기로 했습니다. 기존에 사용하던 유튜브 업로더에 유튜브 쇼츠 일괄 업로드 기능을 추가한 이야기입니다.
30초짜리 영상에도 업로드 절차는 길었습니다
처음에는 쇼츠를 한 편씩 올리는 일이 크게 부담스럽지 않았습니다. 몇 개만 올릴 때는 익숙한 화면에서 차례로 처리하면 됐기 때문입니다. 하지만 앨범의 각 곡을 쇼츠로 만들기 시작하니 같은 과정이 아홉 번, 열 번 이어졌습니다.
파일을 선택한 뒤에도 할 일이 남았습니다. 제목·설명·태그를 입력하고, 아동용 여부와 변경되거나 합성된 콘텐츠 관련 항목, 유료 광고 포함 여부를 확인했습니다. 재생목록을 지정하는 일도 매번 따라왔습니다.
제 작업 환경에서는 업로드를 기다리는 시간과 세부정보를 입력하는 시간을 합쳐 쇼츠 한 편에 대략 5분 정도가 들었습니다. 앨범 하나의 쇼츠를 모두 올리고 나면 50분에서 한 시간 가까이 지나곤 했습니다. 영상 자체는 짧아도 등록하는 데 드는 수고는 짧지 않았습니다.
앨범 전체 영상에도 비슷한 설정은 있습니다. 다만 긴 영상은 엔딩 화면이나 카드 등 마무리할 일이 있어 업로드 후 스튜디오를 다시 살펴보는 것이 자연스러웠습니다. 쇼츠에서는 짧은 영상 여러 편에 같은 등록 절차를 반복하는 부담이 더 크게 느껴졌습니다.
그래서 먼저 해결하고 싶은 일을 정했습니다. 곡마다 다른 제목과 설명은 각각 넣되, 공통 설정은 한 번에 적용하고 영상 파일은 순서대로 올릴 수 있게 하는 것이었습니다.
기존 업로더에 쇼츠 전용 탭을 추가했습니다
이미 앨범 전체 영상을 올릴 때 쓰는 유튜브 업로더가 있었습니다. Claude와 함께 만든 도구로, 챕터 생성과 번역 등 기존 작업에 필요한 기능을 담아 사용하고 있었습니다.
이번 유튜브 쇼츠 일괄 업로드 기능도 기존 코드를 바탕으로 만들었습니다. 익숙한 프로그램 안에 쇼츠 일괄 업로드 탭을 추가해, 앨범 영상과 쇼츠를 같은 도구에서 다룰 수 있도록 했습니다.
개발을 시작하며 확인한 것은 콘텐츠 관련 설정도 함께 전송할 수 있는지였습니다. 영상 파일과 제목만 올리고 나머지 설정을 스튜디오에서 다시 입력해야 한다면, 반복 작업이 상당 부분 남기 때문입니다.
YouTube Data API 공식 문서에는 아동용 여부, 변경되거나 합성된 콘텐츠 공개, 유료 광고 포함 여부에 해당하는 항목이 있습니다. 이 설정들을 프로그램에서 다룰 수 있는지 확인한 뒤 기능을 붙였습니다. developers.google.com
관련 기술 항목은 YouTube Data API 공식 문서에서 확인할 수 있습니다.

유튜브 쇼츠 일괄 업로드의 작업 순서
사용 흐름은 제가 평소 파일을 준비하고 올리는 순서에 맞췄습니다. 여러 영상을 한 화면에 모아두고, 필요한 내용을 입력한 뒤 업로드를 시작하는 방식입니다.
1. 완성된 쇼츠 파일을 한꺼번에 추가합니다
쇼츠 영상 파일 여러 개를 목록 영역에 드래그해서 넣습니다. 파일명 앞에 01, 02처럼 번호를 붙여두면 그 번호를 기준으로 정렬됩니다.
평소 앨범 트랙 순서에 맞춰 파일을 준비해두므로 업로더에서도 같은 순서를 유지하도록 했습니다. 파일과 입력 내용을 대조할 때도 번호가 있으면 확인하기 편합니다.
2. 쇼츠별 제목·설명·태그를 입력합니다
같은 앨범의 쇼츠라도 소개할 곡과 하이라이트는 다릅니다. 제목과 설명은 쇼츠마다 따로 입력합니다.
이 단계에서 곡명과 영상 파일이 맞는지도 함께 확인합니다. 여러 편을 한꺼번에 처리하더라도, 각 곡을 어떤 말로 소개할지는 직접 살펴봐야 하는 부분입니다.
3. 공통 설정을 전체에 적용합니다
아동용 여부, 변경되거나 합성된 콘텐츠 관련 설정, 유료 광고 포함 여부는 상단 공통 설정에서 지정한 뒤 모든 쇼츠에 적용 버튼으로 한꺼번에 반영할 수 있습니다.
매번 같은 화면을 열고 체크하던 일을 한곳에 모았습니다. 해당 묶음에 적용할 값을 먼저 확인하고, 개별 영상에 다른 설정이 필요하면 따로 조정하는 방식입니다.

4. 썸네일용 이미지를 추출합니다
영상의 지정한 시점에서 프레임을 추출하는 기능도 넣었습니다. 기본 시점은 시작 후 1초이며 직접 수정할 수도 있습니다. 이미지 추출에는 ffmpeg를 사용합니다.
영상에서 이미지 파일을 만드는 것과 유튜브에서 최종적으로 표시되는 결과는 구분해서 확인하려고 합니다. 추출·등록 처리를 마쳤더라도 실제 화면은 업로드 후 다시 살펴보는 방식입니다.
5. 순서대로 비공개 업로드합니다
입력이 끝나면 전체 쇼츠 업로드 시작 버튼을 누릅니다. 프로그램은 목록 순서대로 영상을 올리고, 모두 비공개 상태로 등록합니다.
업로드된 영상은 Shorts라는 이름의 재생목록에도 추가하도록 했습니다. 해당 재생목록이 없으면 새로 만드는 방식입니다. 스튜디오에서 영상마다 재생목록을 고르던 작업도 이 단계에 포함했습니다.
관련 영상 연결과 공개 일정 설정, 최종 공개 전환은 업로드 후 스튜디오에서 직접 진행합니다.
실제로 써보니 파일 순서부터 손봐야 했습니다
첫 기능을 만든 뒤 여러 파일을 한꺼번에 넣어보니 예상했던 순서와 다르게 목록에 들어오는 문제가 있었습니다.
파일명 앞에 번호를 붙여두었으니 당연히 그 순서대로 들어올 것이라고 생각했습니다. 하지만 드래그해서 전달되는 파일 순서가 항상 파일명 순서는 아니었습니다. 프로그램이 전달받은 순서를 그대로 사용하면 목록이 섞일 수 있었습니다.
그래서 파일을 추가할 때 파일명의 번호를 기준으로 자동 정렬하도록 바꿨습니다. 이미 들어간 목록도 다시 정리할 수 있도록 파일명순으로 재정렬 버튼을 추가했습니다.
쇼츠마다 제목과 설명을 따로 넣으므로, 목록이 예상과 다르면 파일과 문구를 맞춰보는 과정도 번거로워집니다. 유튜브 쇼츠 일괄 업로드는 여러 파일을 전송하는 기능과 함께, 전송 전에 내용을 확인하기 쉬운 구성이 필요했습니다.
다음으로 손본 것은 마우스 휠이었습니다. 여러 쇼츠가 쌓인 목록에서 스크롤바는 움직이는데 휠로는 이동하지 않았습니다. 기능 자체는 작동해도 실제로 사용하는 입장에서는 자꾸 걸리는 부분이었습니다.
이를 수정한 뒤에는 재생목록 자동 추가까지 붙였습니다. 직접 사용하면서 반복되거나 불편한 부분을 다음 수정에 반영했습니다.
| 버전 | 추가·수정한 내용 | 해결하려던 문제 |
|---|---|---|
| v1.13 | 쇼츠 일괄 업로드 탭과 공통 설정, 비공개 업로드 등 | 쇼츠를 한 편씩 등록하던 반복 |
| v1.14 | 파일명 기준 자동 정렬과 재정렬 버튼 | 여러 파일을 넣을 때 순서가 섞이는 문제 |
| v1.15 | 목록 영역의 마우스 휠 스크롤 | 긴 목록을 오갈 때의 불편 |
| v1.16 | Shorts 재생목록 자동 추가 | 업로드 후 재생목록을 반복 지정하는 작업 |

함께 쓰던 도구의 문제도 발견했습니다
이번 작업 중에는 기존 캡컷 플레이리스트 빌더의 총 재생시간 표시도 다시 살펴봤습니다. 유튜브 업로더에서는 보이던 정보가 다른 도구에서는 제대로 나타나지 않았기 때문입니다.
처음에는 실행 파일을 만드는 과정에서 필요한 라이브러리가 빠진 것으로 생각했습니다. 하지만 테스트 결과, 음원에 제목이나 아티스트 같은 태그가 없을 때 파일 정보를 잘못 판단하는 코드가 원인이었습니다. 재생시간 정보는 있는데도 태그가 비어 있다는 이유로 먼저 빈 값처럼 처리하고 있었습니다.
이 부분도 함께 수정했습니다. 자동화 도구를 만든 뒤에는 실제로 사용하는 파일을 넣어봐야 한다는 것을 다시 느꼈습니다. 처음 짐작한 원인과 실제 원인이 다를 수 있었고, 평소의 작업을 해봐야 드러나는 문제도 있었습니다.
첫 사용에서는 10분이 채 걸리지 않았습니다
처음으로 유튜브 쇼츠 일괄 업로드를 사용했을 때는 10분이 채 걸리지 않았습니다. 기존에 한 편씩 올리며 50분에서 한 시간가량 쓰던 작업과 비교하면 차이가 크게 느껴졌습니다.
처음 쓰는 기능이어서 업로드 후에는 결과를 다시 확인했습니다. 제목과 설명이 맞게 들어갔는지, 지정한 설정과 재생목록이 반영됐는지 스튜디오에서 살펴봤습니다. 확인한 항목들은 의도한 대로 들어가 있었습니다.
이 시간은 제 PC와 네트워크, 당시 올린 파일을 기준으로 한 첫 사용 경험입니다. 영상 크기와 편수에 따라 소요 시간은 달라질 수 있습니다. 그래도 다음 영상을 열고 같은 항목을 다시 입력하던 수고가 줄었다는 점은 확실히 체감했습니다.
물론 쇼츠별 제목과 설명을 준비하거나 관련 영상을 연결하고 공개 일정을 정하는 시간은 별도로 필요합니다. 업로드를 빠르게 마친 덕분에 그 마무리 작업도 한결 가벼운 마음으로 할 수 있었습니다.

공개 전 확인은 직접 하는 방식으로 남겼습니다
이번 유튜브 쇼츠 일괄 업로드에서 정한 기준은 비공개 등록까지 자동으로 진행하는 것이었습니다. 파일 전송과 공통 설정을 묶어 처리한 뒤, 공개할 준비가 됐는지는 직접 확인합니다.
쇼츠가 여러 편 준비돼 있다고 모두 같은 날 공개할 필요는 없습니다. 어떤 앨범 영상으로 연결할지, 어느 곡부터 소개할지, 공개 간격을 어떻게 둘지는 채널 운영 흐름을 보고 결정합니다. 그래서 관련 영상 연결과 일정 설정은 스튜디오에서 마무리하도록 남겨뒀습니다.
이번 개발에서 제가 계속 확인한 것도 실제 작업에 맞는지였습니다. 파일을 넣었을 때 순서가 유지되는지, 목록을 편하게 움직일 수 있는지, 업로드 후 같은 클릭을 또 해야 하는지 살펴보고 수정을 요청했습니다. 코드를 작성하는 일과 함께, 사용하는 사람이 불편을 구체적으로 설명하는 과정이 필요했습니다.
음악을 듣고 하이라이트를 고르는 일에는 시간을 충분히 쓰고 싶습니다. 같은 설정을 여러 번 입력하는 수고가 줄면 그만큼 음악과 영상을 살펴볼 여유도 생깁니다. 이번 기능은 그동안 사용하던 업로더를 제 작업에 한 걸음 더 맞춘 변화였습니다.
앞으로도 실제로 사용하면서 불편한 부분을 보완하려 합니다. 음악 제작과 채널 운영에서 반복 작업을 줄여온 다른 경험은 AI 음악 제작 · 자동화에서 이어서 볼 수 있습니다.
Rain on Porcelain에서 더 알아보기
구독을 신청하면 최신 게시물을 이메일로 받아볼 수 있습니다.