YouTube Shorts 업로드를 자동화해야 하는 이유
YouTube Shorts는 현재 채널을 성장시키는 가장 빠른 방법입니다. 알고리즘이 짧은 세로 동영상 콘텐츠를 적극적으로 추천하며, Shorts를 꾸준히 게시하는 크리에이터는 장편 동영상만으로는 몇 달이 걸릴 구독자 성장을 경험합니다.
문제는 업로드 과정입니다. YouTube Studio에서는 로그인하고, 메타데이터 필드를 채우고, 공개 설정을 하고, 태그를 추가하고, 게시 버튼을 눌러야 합니다. 이것을 두 채널에 걸쳐 주당 5개의 Shorts로 곱하면, 반복 작업에 몇 시간을 보내게 됩니다.
YouTube의 공식 Data API(v3)는 옵션이지만, 상당한 마찰이 수반됩니다. Google Cloud 프로젝트를 만들고, OAuth 2.0 동의 화면을 구성하고, 토큰 갱신을 처리하고, 예측 불가능하게 리셋되는 일일 업로드 할당량을 관리해야 합니다. 대부분의 개발자에게는 작업 대비 과도한 인프라입니다.
Upload-Post는 이 모든 것을 단일 POST 요청으로 래핑합니다. 동영상을 보내고 메타데이터를 설정하면 API가 인증, 형식 검증, YouTube로의 전달을 처리합니다. 동일한 요청으로 TikTok과 인스타그램 릴스에도 동시에 게시할 수 있습니다.
API로 YouTube Short 업로드하기
업로드 엔드포인트는 동영상 파일과 메타데이터가 포함된 multipart form을 수신합니다. YouTube Short로 처리되려면 동영상이 세로(9:16 화면 비율)이고 60초 미만이어야 합니다. cURL 예제는 다음과 같습니다:
curl -X POST https://api.upload-post.com/api/upload \
-H "권한 부여: API 키 your-api-key-here" \
-F "[email protected]" \
-F "user=mybrand" \
-F "title=This cooking hack saves 20 minutes every night #shorts #cooking" \
-F "platform[]=youtube" \
-F "youtube_description=Quick kitchen tip that changed my meal prep routine. Full recipe on my channel." \
-F "youtube_tags=cooking,kitchen hack,meal prep,shorts" \
-F "youtube_visibility=public" 업로드가 성공하면 API는 작업 세부 정보가 포함된 응답을 반환합니다:
{
"success": true,
"job_id": "yt_short_abc123",
"platform": "youtube",
"status": "processing"
} video 필드는 로컬 파일 경로(cURL에서 @ 접두사 사용) 또는 공개 URL을 허용합니다. title 필드는 YouTube 동영상 제목에 매핑됩니다. 제목에 #shorts를 포함하는 것은 Shorts 감지에 반드시 필요하지는 않지만(YouTube는 화면 비율과 재생 시간을 사용), 검색 가능성에 도움이 될 수 있습니다.
YouTube 전용 매개변수
표준 video, title, user, platform[] 필드 외에도 API는 여러 YouTube 전용 옵션을 제공합니다:
| 매개변수 | 값 | 설명 |
|---|---|---|
youtube_description | 문자열 | 플레이어 아래에 표시되는 동영상 설명. 링크와 줄 바꿈을 지원합니다. 생략하면 기본 title이 사용됩니다. |
youtube_tags | 쉼표로 구분된 문자열 | YouTube 검색 및 발견을 위한 태그. 예: "cooking,recipe,shorts". YouTube는 총 500자까지 허용합니다. |
youtube_visibility | "public", "private", "unlisted" | 동영상을 볼 수 있는 사람을 제어합니다. 생략하면 기본값은 "public"입니다. |
youtube_shorts | true / false | 자동 감지 기준을 충족하지 않더라도 동영상을 Short로 처리하도록 강제합니다. 정사각형(1:1) 동영상과 같은 경계 사례에 유용합니다. |
youtube_category_id | 정수 | YouTube 카테고리 ID. 일반적인 값: 22 (인물 및 블로그), 24 (엔터테인먼트), 26 (노하우 및 스타일), 28 (과학 및 기술). |
youtube_playlist_id | 문자열 | 업로드된 동영상을 특정 재생 목록에 자동으로 추가합니다. YouTube 채널의 재생 목록 ID를 전달하세요. |
youtube_made_for_kids | true / false | COPPA 준수 플래그. 콘텐츠가 어린이를 대상으로 하는 경우 true로 설정하세요. 이 설정은 동영상의 댓글과 맞춤형 광고를 비활성화합니다. |
youtube_shorts 플래그는 Short 처리를 보장하려는 경우 특히 유용합니다. 일반적으로 YouTube는 화면 비율과 재생 시간을 기반으로 Shorts를 감지하지만, 동영상이 경계에 정확히 있는 경우(예: 정사각형 형식이거나 60초에 매우 가까운 경우) 명시적으로 youtube_shorts=true를 설정하면 모호함이 제거됩니다.
최적 시간에 Shorts 예약하기
적절한 시간에 게시하는 것이 중요합니다. YouTube Shorts는 게시 후 처음 몇 시간 동안 가장 많은 초기 견인력을 얻으므로, 오디언스가 활발한 시간에 맞춰 업로드하면 알고리즘에 더 강한 신호를 줍니다.
Short를 예약하려면 요청에 scheduled_date(ISO-8601 형식)와 timezone(IANA 형식)을 추가하세요:
curl -X POST https://api.upload-post.com/api/upload \
-H "권한 부여: API 키 your-api-key-here" \
-F "[email protected]" \
-F "user=mybrand" \
-F "title=5 AM routine that actually works #shorts #productivity" \
-F "platform[]=youtube" \
-F "youtube_visibility=public" \
-F "scheduled_date=2025-09-15T08:00:00Z" \
-F "timezone=America/New_York"
수동 예약 대신 대기열 시스템을 사용하세요. 선호하는 게시 슬롯을 한 번만 설정한 다음 add_to_queue=true로 콘텐츠를 추가하면 됩니다. API가 자동으로 다음 사용 가능한 슬롯에 각 동영상을 할당합니다. 이는 한 세션에서 일주일 분량의 콘텐츠를 업로드하는 일괄 워크플로우에 이상적입니다. 대기열 설정에 대한 자세한 내용은 예약 가이드를 참조하세요.
YouTube Shorts의 최적 게시 시간은 분야에 따라 다르지만, 일반적인 패턴은 현지 시간 오전 7시~9시(아침 스크롤), 오후 12시~2시(점심시간), 오후 7시~10시(저녁 휴식)에 강한 성과를 보입니다. 소셜 미디어 기념일 캘린더를 사용하여 Shorts를 트렌딩 날짜 및 이벤트에 맞추세요.
Shorts를 TikTok과 Reels에 크로스 포스팅하기
60초 미만의 세로 동영상은 YouTube Shorts, TikTok, Instagram Reels에서 모두 작동합니다. 같은 파일을 세 개의 다른 인터페이스에서 세 번 업로드하는 대신, 한 번 보내고 API가 배포하도록 하세요:
curl -X POST https://api.upload-post.com/api/upload \
-H "권한 부여: API 키 your-api-key-here" \
-F "[email protected]" \
-F "user=mybrand" \
-F "title=Wait for it... #shorts" \
-F "tiktok_title=Wait for it... #fyp #viral" \
-F "instagram_title=Wait for it... Full video on YouTube (link in bio)" \
-F "platform[]=youtube" \
-F "platform[]=tiktok" \
-F "platform[]=instagram" \
-F "media_type=REELS" \
-F "youtube_visibility=public" \
-F "privacy_level=PUBLIC" \
-F "add_to_queue=true"
몇 가지 주목할 점: media_type=REELS는 Instagram에 피드 게시물이 아닌 Reel로 게시하도록 지시합니다. 각 플랫폼은 tiktok_title과 instagram_title을 통해 자체 캡션을 갖고, 기본 title은 YouTube에 전달됩니다. add_to_queue=true 플래그는 대기열 설정에 따라 세 가지 모두를 예약합니다.
멀티 플랫폼 워크플로우에 대한 자세한 내용은 크로스 포스팅 가이드를 참조하세요. 긴 YouTube 동영상을 Shorts로 재활용하는 경우 재활용 가이드에서 전체 클립 및 배포 파이프라인을 다룹니다.
Python으로 Shorts 일괄 업로드하기
Shorts 폴더가 준비되어 있을 때, Python SDK로 일괄 업로드가 간편해집니다. 먼저 SDK를 설치하세요:
pip install upload-post 그런 다음 동영상을 순회하면서 각각 시차를 두고 예약하세요:
import os
import glob
from datetime import datetime, timedelta
from upload_post import UploadPostClient
client = UploadPostClient(api_key="your-api-key-here")
video_folder = "/path/to/youtube-shorts"
videos = sorted(glob.glob(os.path.join(video_folder, "*.mp4")))
# Start scheduling from tomorrow at 8 AM Eastern
base_time = (datetime.now() + timedelta(days=1)).replace(
hour=8, minute=0, second=0, microsecond=0
)
print(f"Found {len(videos)} Shorts to schedule")
for i, video_path in enumerate(videos):
publish_time = base_time + timedelta(hours=3 * i) # Every 3 hours
filename = os.path.basename(video_path)
title = filename.replace(".mp4", "").replace("-", " ").replace("_", " ")
try:
response = client.upload_video(
video_path=video_path,
title=f"{title} #shorts",
user="mybrand",
platforms=["youtube"],
scheduled_date=publish_time.isoformat(),
timezone="미국/뉴욕",
youtube_visibility="public",
youtube_tags="shorts,daily",
youtube_shorts=True,
async_upload=True
)
job_id = response.get("job_id", "pending")
print(f"[{i+1}/{len(videos)}] Scheduled {filename} for {publish_time} (Job: {job_id})")
except Exception as e:
print(f"[{i+1}/{len(videos)}] Failed: {filename} - {e}")
print("모든 Shorts가 예약되었습니다!")
이 스크립트는 각 Short를 3시간 간격으로 배치하여 다음 게시 전에 초기 견인력을 얻을 시간을 줍니다. 선호하는 게시 간격에 맞게 timedelta를 조정하세요. platforms=["youtube", "tiktok", "instagram"]을 전달하여 모든 Short를 자동으로 크로스 포스팅할 수도 있습니다.
대규모 대량 동영상 작업의 경우, 대량 업로드 가이드에서 병렬 업로드, 재시도 로직, 웹훅 기반 상태 추적과 같은 고급 패턴을 다룹니다.
n8n으로 노코드 자동화
코드 작성보다 시각적 워크플로우를 선호한다면, n8n이 좋은 선택입니다. 일반적인 설정은 Google Drive 폴더에서 새 동영상을 감시하고 파일이 나타날 때마다 YouTube Shorts로 자동 게시하는 것입니다.
워크플로우에는 세 개의 노드가 있습니다:
- Google Drive 트리거: "Shorts" 폴더에 새 MP4 파일이 추가되면 작동합니다.
- HTTP 요청: 동영상, 파일명에서 파생된 제목,
platform[]=youtube,add_to_queue=true와 함께https://api.upload-post.com/api/upload로multipart/form-dataPOST를 전송합니다. - Slack/이메일 알림: 업로드 성공을 확인하거나 실패 시 알립니다.
YouTube Shorts 워크플로우를 다루는 즉시 사용 가능한 템플릿이 있습니다:
- Gemini AI로 YouTube 콘텐츠 자동 게시
- Veo3로 AI 동영상 생성, Drive에 저장, YouTube에 업로드
- Whisper와 Gemini로 긴 동영상을 바이럴 Shorts로 변환
- Google Drive에서 소셜 미디어로 자동 게시
- 완전 자동화 AI 동영상 생성
- Veo3로 저비용 AI 동영상 제작
더 많은 아이디어를 위해 사용 가능한 모든 n8n 템플릿을 찾아보세요. Make.com으로도 유사한 자동화를 구축할 수 있습니다.
YouTube Shorts 요구 사항
업로드 전에 동영상이 YouTube의 Shorts 사양을 충족하는지 확인하세요. 이러한 요구 사항을 충족하지 않는 파일을 업로드하면 업로드 실패 또는 일반(비Shorts) 업로드로 처리될 수 있습니다.
| 요구 사항 | 사양 |
|---|---|
| 최대 재생 시간 | 60초 |
| 화면 비율 | 9:16 (세로). 정사각형(1:1)도 가능하지만 세로가 권장됩니다. |
| 권장 해상도 | 1080x1920 픽셀 |
| 지원 형식 | MP4, MOV, WebM |
| 최대 파일 크기 | 256 GB (YouTube 제한), 짧은 Shorts는 일반적으로 50 MB 미만 |
| 코덱 | H.264 권장. H.265 (HEVC) 지원됩니다. |
| 프레임 레이트 | 30 또는 60 fps 권장 |
원본 동영상이 가로 형식인 경우, FFmpeg API로 게시 전에 클라우드에서 세로로 자르고 크기를 조정할 수 있습니다. 이는 장편 동영상을 Shorts로 재활용할 때 특히 유용합니다.
자주 묻는 질문
일반(장편) YouTube 동영상도 업로드할 수 있나요?
네. 동일한 POST /api/upload 엔드포인트가 Shorts와 일반 동영상 모두를 처리합니다. 차이점은 자동입니다: 세로 형식의 60초 미만 동영상은 Shorts로 처리되고, 나머지는 표준 YouTube 동영상으로 게시됩니다. youtube_shorts=true 매개변수를 사용하여 Short 처리를 강제하거나, 생략하면 YouTube가 파일 크기와 재생 시간에 따라 결정하도록 할 수 있습니다.
여러 YouTube 채널에서 작동하나요?
네. 연결된 각 YouTube 채널은 Upload-Post 계정에서 다른 user 값으로 표시됩니다. 대시보드를 통해 채널을 연결하고, 해당 user 매개변수를 전달하여 게시할 채널을 지정합니다. 다른 user 값으로 별도의 요청을 보내면 같은 Short를 여러 채널에 업로드할 수 있습니다.
Shorts 수익화는 어떻게 되나요?
Upload-Post는 수익화 상태에 영향을 미치지 않습니다. API를 통해 업로드된 동영상은 YouTube Studio를 통해 업로드된 동영상과 동일하게 처리됩니다. 채널이 YouTube 파트너 프로그램에 가입되어 있다면 Shorts는 다른 Short와 마찬가지로 Shorts 수익 공유 프로그램의 대상이 됩니다. 여기서 youtube_made_for_kids 플래그가 관련이 있습니다: true로 설정하면 맞춤형 광고가 비활성화되어 수익에 영향을 미칩니다.
Shorts, Reels, TikTok의 차이점은 무엇인가요?
세 가지 모두 짧은 세로 동영상 형식이지만 제약이 다릅니다. YouTube Shorts는 최대 60초, Instagram Reels는 최대 15분, TikTok은 최대 10분입니다. 크로스 포스팅의 경우 YouTube에서 Shorts로 분류되도록 동영상을 60초 미만으로 유지하세요. 캡션도 다릅니다: TikTok은 트렌딩 해시태그와 비격식적인 톤을 선호하고, YouTube Shorts는 검색 가능한 제목과 키워드가 풍부한 설명이 유리합니다. 플랫폼별 제목 필드(tiktok_title, instagram_title)를 사용하여 각 캡션을 맞춤 설정하세요. TikTok 관련 팁은 TikTok 예약 가이드를 참조하세요.
무료 티어가 있나요?
네. Upload-Post는 월 10회 업로드가 포함된 무료 플랜을 제공하며, 무료를 포함한 모든 플랜에서 모든 기능(예약, 대기열, 크로스 포스팅, YouTube 전용 매개변수)을 사용할 수 있습니다. 시작하는 데 신용카드가 필요 없습니다. 더 많은 볼륨이 필요하면 유료 플랜이 합리적인 가격으로 확장됩니다. Hootsuite나 Buffer와 같은 도구에 비해 API 중심 접근 방식이 훨씬 더 유연하고 저렴합니다.