가이드

소셜 미디어에 동영상을 일괄 업로드하는 방법

폴더에 동영상 50개가 있습니다. 제품 데모일 수도 있고, 클라이언트 릴스일 수도 있고, AI 생성 클립일 수도 있습니다. 각 플랫폼에 하나씩 업로드하면 몇 시간이 걸립니다. 스크립트, 대기열 시스템, 또는 비주얼 자동화 도구를 사용하여 몇 분 만에 처리하는 방법을 알려드립니다.

접근 방식: 반복, 업로드, 대기열

아이디어는 간단합니다. 동영상 파일 목록을 가져와서 각각을 순회하며 소셜 미디어 API로 전송합니다. 한 번에 50개의 게시물이 올라가 오디언스를 압도하지 않도록 대기열 시스템을 사용하여 최적의 시간에 분배합니다.

기술적 숙련도에 따라 세 가지 방법이 있습니다:

  1. Python or Bash script - 완전한 제어가 가능
  2. n8n + Google Drive - 비주얼, 노코드 워크플로우
  3. Make.com - 다른 인터페이스의 유사한 자동화

세 가지 모두 살펴보겠습니다.

방법 1: Python 일괄 업로드 스크립트

가장 유연한 옵션입니다. 스크립트가 동영상 폴더를 지정하면 대기열을 활성화하여 각각을 업로드합니다. 먼저 SDK를 설치하세요:

pip install upload-post

그런 다음 이 스크립트를 실행하세요:

import os
import glob
from upload_post import UploadPostClient

client = UploadPostClient(api_key="your-api-key-here")

video_folder = "/path/to/your/videos"
videos = glob.glob(os.path.join(video_folder, "*.mp4"))

print(f"업로드할 비디오 {len(videos)} 개를 찾았습니다.")

for i, video_path in enumerate(videos):
    filename = os.path.basename(video_path)
    title = filename.replace(".mp4", "").replace("-", " ").replace("_", " ")

    try:
        response = client.upload_video(
            video_path=video_path,
            title=title,
            user="mybrand",
            platforms=["tiktok", "instagram", "youtube"],
            add_to_queue=True,
            async_upload=True
        )
        job_id = response.get("job_id", "async")
        print(f"[{i+1}/{len(videos)}] Queued: {filename} (Job: {job_id})")
    except Exception as e:
        print(f"[{i+1}/{len(videos)}] Failed: {filename} - {e}")

print("모든 비디오가 대기열에 추가되었습니다!")

이 스크립트에 대해 몇 가지 참고할 점이 있습니다. add_to_queue=True 플래그는 각 동영상이 대기열 스케줄의 다음 가용 슬롯에 배정된다는 의미입니다. 그리고 async_upload=True는 모든 플랫폼의 처리가 완료될 때까지 기다리지 않고 각 호출이 즉시 반환되게 합니다. 59초 이상 걸리는 동기 업로드는 어차피 자동으로 비동기로 전환되므로, 일괄 작업에서는 이 설정이 중요합니다.

방법 1b: cURL을 사용한 Bash 스크립트

명령줄을 선호하고 Python을 설치하고 싶지 않다면, 간단한 Bash 루프로 같은 작업을 할 수 있습니다:

#!/bin/bash
API_KEY="your-api-key-here"
VIDEO_DIR="/path/to/your/videos"

for video in "$VIDEO_DIR"/*.mp4; do
    filename=$(basename "$video" .mp4)
    echo "Uploading: $filename"

    curl -s -X POST https://api.upload-post.com/api/upload \
      -H "권한 부여: API 키 $API_KEY" \
      -F "video=@$video" \
      -F "user=mybrand" \
      -F "title=$filename" \
      -F "platform[]=tiktok" \
      -F "platform[]=instagram" \
      -F "add_to_queue=true" \
      -F "async_upload=true"

    echo ""
done

echo "완료! 모든 비디오가 대기 중입니다."

방법 2: n8n + Google Drive (노코드)

폴더에 새 동영상이 나타날 때마다 자동으로 실행되는 비주얼 워크플로우를 원한다면 이 방법이 최선입니다. 흐름은 다음과 같습니다: Google Drive가 새 파일을 감지하고, 다운로드하고, Upload-Post로 전송하고, 게시를 위해 대기열에 추가합니다.

원클릭으로 n8n 인스턴스에 가져올 수 있는 Google Drive에서 소셜 미디어로의 미리 만들어진 템플릿이 있습니다. AI 생성 설명과 Airtable 추적을 사용하는 더 고급 버전도 있습니다.

직접 구축하고 싶다면 n8n 통합 가이드에서 단계별 설정을 확인하세요. 핵심은 HTTP Request 노드를 multipart form data로 구성하고 Google Drive 노드에서 바이너리 파일을 전달하는 것입니다.

AI 기반 콘텐츠의 경우, AI 생성 캡션으로 동영상을 대량 자동 게시하는 템플릿도 있습니다.

방법 3: Make.com 자동화

Make.com(구 Integromat)도 비슷하게 작동합니다. Google Drive 또는 Dropbox 트리거로 시나리오를 만들고, Upload-Post API용으로 구성된 HTTP 모듈에 연결한 다음, 스케줄에 따라 실행하거나 새 파일이 감지될 때 실행하도록 설정합니다.

HTTP 모듈은 multipart/form-data 콘텐츠 타입으로 설정하고, API 키를 커스텀 헤더로 추가해야 합니다. 사전 구축된 시나리오는 Make.com 템플릿을 참고하세요.

업로드 전 동영상 처리

원본 동영상이 적합한 형식이 아닐 때가 있습니다. 너무 길거나, 화면 비율이 맞지 않거나, TikTok에서 허용하지 않는 코덱으로 인코딩되어 있을 수 있습니다. 로컬에서 처리하는 대신, Upload-Post FFmpeg 편집기 API를 사용하여 클라우드에서 동영상을 변환한 후 게시할 수 있습니다.

예를 들어 가로 영상을 세로 9:16으로 크롭하거나, YouTube Shorts를 위해 60초로 트리밍하거나, 최대 호환성을 위해 H.264로 재인코딩할 수 있습니다:

curl -X POST https://api.upload-post.com/api/uploadposts/ffmpeg/jobs/upload \
  -H "권한 부여: API 키 your-api-key-here" \
  -F "[email protected]" \
  -F 'full_command=ffmpeg -i {input} -vf "crop=ih*9/16:ih,scale=1080:1920" -c:v libx264 -preset medium -t 60 {output}' \
  -F "output_extension=mp4"

FFmpeg API는 모든 플랜에 포함되어 있습니다 (무료 플랜 월 30분, Business 플랜 최대 10,000분).

일괄 업로드 모니터링

수십 개의 동영상을 업로드할 때는 어떤 것이 처리되었고 어떤 것이 실패했는지 추적해야 합니다. 두 가지 방법이 있습니다:

상태 엔드포인트 폴링

curl https://api.upload-post.com/api/uploadposts/status?request_id=abc123 \
  -H "권한 부여: API 키 your-api-key-here"

응답에는 completedtotal 카운트가 포함되어 실시간으로 진행 상황을 확인할 수 있습니다.

웹훅 설정

별도 관리 없이 처리하려면 웹훅 URL을 설정하세요. 각 플랫폼 업로드가 완료될 때마다 Upload-Post가 서버에 알림을 보냅니다. 각 알림에는 플랫폼, 게시물 URL, 성공/오류 상태가 포함됩니다.

업로드 기록

기록 엔드포인트를 사용하여 업로드된 모든 항목을 검토할 수도 있습니다:

curl "https://api.upload-post.com/api/uploadposts/history?page=1&limit=50" \
  -H "권한 부여: API 키 your-api-key-here"

각 항목에는 플랫폼, 타임스탬프, 성공 상태, 게시물 URL, 파일 크기 및 오류 메시지가 표시됩니다. 리포트 작성이나 업로드 감사에 유용합니다.

대규모 일괄 업로드 팁

  • 일괄 작업에는 항상 async_upload=true를 사용하세요. 동기 업로드는 단일 게시물에는 괜찮지만, 다음 파일을 보내기 전에 10개 플랫폼의 처리가 끝나기를 기다리고 싶지 않을 겁니다.
  • 특정 타이밍 요구사항이 없다면 고정 날짜 대신 대기열을 사용하세요. 대기열은 콘텐츠를 균등하게 분배하고 플랫폼 일일 제한을 준수합니다.
  • 일일 제한에 주의하세요. TikTok은 계정당 하루 15회, YouTube는 10회를 허용합니다. TikTok 동영상 50개를 대기열에 넣으면 자동으로 여러 날에 걸쳐 분배됩니다.
  • 파일명을 설명적으로 지정하세요. 위의 스크립트처럼 파일명을 게시물 제목으로 사용한다면, "summer-collection-lookbook.mp4"가 "VID_20250615_001.mp4"보다 훨씬 보기 좋습니다.
  • 캡션이 달라야 할 때는 플랫폼별 제목을 사용하세요. tiktok_title로 짧은 캡션을, youtube_description으로 SEO 키워드가 포함된 긴 캡션을 설정하세요.

자주 묻는 질문

한 번에 업로드할 수 있는 동영상 수에 제한이 있나요?

API 요청 수에 대한 하드 리밋은 없습니다. 다만, 각 플랫폼에는 일일 업로드 제한이 있습니다 (TikTok 15회, YouTube 10회 등). 대기열 시스템이 게시물을 여러 날에 걸쳐 분배하여 이를 자동으로 처리합니다.

로컬 파일 대신 URL로 동영상을 업로드할 수 있나요?

네. -F "[email protected]"로 파일을 전달하는 대신, video 파라미터에 공개 URL을 전달할 수 있습니다. Upload-Post가 다운로드하여 처리합니다.

최대 파일 크기는 얼마인가요?

플랫폼에 따라 다릅니다. YouTube는 최대 256GB, TikTok은 최대 4GB, Instagram은 최대 300MB를 허용합니다. 전체 내역은 동영상 요구사항 페이지를 확인하세요.

모든 동영상을 한 번에 업로드하세요

수동 업로드에 몇 시간을 쓰지 마세요. 콘텐츠를 모아서 API로 보내고, 나머지는 대기열에 맡기세요. 설정은 5분이면 됩니다.

신용카드 불필요. 무료 업로드 10회 포함.