특정 시간에 TikTok 게시물 예약하기
가장 직접적인 방법은 정확한 게시 날짜를 설정하는 것입니다. 업로드 요청에 scheduled_date 매개변수(ISO-8601 형식)와 timezone(IANA 형식)을 추가하세요. API는 최대 365일 후까지의 날짜를 허용합니다.
다음은 TikTok 동영상을 뉴욕 시간 기준 9월 22일 오전 10시에 공개 설정하고 듀엣을 비활성화하여 예약하는 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=Morning routine that changed everything #fyp #routine" \
-F "platform[]=tiktok" \
-F "scheduled_date=2025-09-22T10:00:00Z" \
-F "timezone=America/New_York" \
-F "privacy_level=PUBLIC" \
-F "disable_duet=false" \
-F "disable_comment=false" \
-F "disable_stitch=false"
게시물이 성공적으로 예약되면 API는 202 상태 코드와 job_id를 반환합니다:
{
"success": true,
"job_id": "scheduler_job_abc123",
"scheduled_date": "2025-09-22T10:00:00Z"
}
해당 job_id를 저장하세요. 나중에 게시물을 수정, 재예약 또는 취소할 때 필요합니다. 언제든지 대기 중인 예약 게시물 전체 목록을 조회할 수도 있습니다:
curl https://api.upload-post.com/api/uploadposts/schedule \
-H "권한 부여: API 키 your-api-key-here"
이 요청은 모든 대기 중인 작업의 job_id, scheduled_date, 플랫폼 세부 정보 및 콘텐츠 미리보기 URL이 포함된 배열을 반환합니다. 모든 플랫폼에서의 예약에 대한 자세한 내용은 일반 예약 가이드를 참조하세요.
대기열을 사용한 자동 예약
정확한 날짜를 선택하는 것은 게시물이 몇 개일 때는 괜찮습니다. 하지만 콘텐츠를 일괄 제작하는 경우, 각 동영상의 시간을 수동으로 선택하는 것은 금방 번거로워집니다. 대기열 시스템이 이를 해결합니다. 선호하는 게시 일정을 한 번만 정의하면, 추가하는 모든 콘텐츠가 자동으로 다음 사용 가능한 슬롯에 할당됩니다.
대기열 일정 설정
먼저 콘텐츠가 게시될 시간을 시스템에 알려주세요. 이 예제는 뉴욕 시간대 기준으로 월요일부터 금요일까지 하루에 세 개의 슬롯을 설정합니다:
curl -X POST https://api.upload-post.com/api/uploadposts/queue/settings \
-H "권한 부여: API 키 your-api-key-here" \
-H "Content-Type: application/json" \
-d '{
"timezone": "미국/뉴욕",
"slots": [
{ "hour": 8, "minute": 0 },
{ "hour": 12, "minute": 30 },
{ "hour": 18, "minute": 0 }
],
"days": [0, 1, 2, 3, 4]
}' 이렇게 하면 주당 15개의 TikTok 슬롯이 생깁니다: 월요일부터 금요일까지 오전 8시, 오후 12시 30분, 오후 6시. 하루에 최대 24개의 슬롯을 정의할 수 있으며, 5와 6을 추가하면 주말도 포함할 수 있습니다.
대기열에 콘텐츠 추가
이제 scheduled_date를 전달하는 대신 add_to_queue=true를 설정합니다. 시스템이 자동으로 다음 빈 슬롯을 채웁니다:
curl -X POST https://api.upload-post.com/api/upload \
-H "권한 부여: API 키 your-api-key-here" \
-F "[email protected]" \
-F "user=mybrand" \
-F "title=POV: you finally automated your TikTok posting #devlife" \
-F "platform[]=tiktok" \
-F "add_to_queue=true" \
-F "privacy_level=PUBLIC" 수요일 오후 2시라면, 이 동영상은 같은 날 오후 6시 슬롯에 배정됩니다. 수요일 슬롯이 모두 찬 경우 목요일 오전 8시로 이동합니다. 콘텐츠를 추가하기 전에 예정된 사용 가능한 슬롯을 미리 볼 수 있습니다:
curl https://api.upload-post.com/api/uploadposts/queue/preview?count=10 \
-H "권한 부여: API 키 your-api-key-here" 이 요청은 정확한 날짜와 시간이 포함된 다음 10개의 사용 가능한 슬롯을 반환하므로, 대기열에 추가된 각 게시물이 정확히 언제 게시되는지 알 수 있습니다.
알아야 할 TikTok 전용 설정
TikTok의 API는 다른 플랫폼에 없는 여러 매개변수를 제공합니다. 일부는 선택 사항이지만, 특정 상황에서는 법적으로 필수인 것도 있습니다. 전체 참고 자료는 다음과 같습니다:
| 매개변수 | 값 | 설명 |
|---|---|---|
privacy_level | "공개", "FRIENDS", "PRIVATE" | 동영상을 볼 수 있는 사람을 제어합니다. 생략하면 TikTok 계정 설정이 기본값으로 적용됩니다. |
disable_duet | true / false | 다른 사용자가 내 동영상으로 듀엣을 만드는 것을 방지합니다. |
disable_comment | true / false | 동영상의 댓글 기능을 비활성화합니다. |
disable_stitch | true / false | 다른 사용자가 내 동영상을 스티치하는 것을 방지합니다. |
brand_content_toggle | true / false | 동영상을 유료 파트너십으로 표시합니다. 광고비를 받고 브랜드를 홍보할 때 FTC 및 EU 규정에 의해 필수입니다. |
brand_organic_toggle | true / false | 동영상을 자사 비즈니스 홍보로 표시합니다. 제3자 스폰서십이 아닌 자사 제품이나 서비스에 대한 콘텐츠일 때 사용합니다. |
is_aigc | true / false | 콘텐츠가 AI에 의해 생성되었거나 상당히 편집되었음을 공개합니다. TikTok이 시청자에게 이에 따라 라벨을 표시할 수 있습니다. |
tiktok_title | string | 플랫폼별 제목/캡션. TikTok 캡션이 다른 플랫폼에 전송되는 기본 title 필드와 다를 때 유용합니다. |
cover_timestamp | integer (ms) | 이 밀리초 시점의 동영상 프레임을 썸네일로 선택합니다. 예를 들어, 5000은 5초 시점의 프레임을 선택합니다. |
post_mode | "DRAFT", "PUBLISH" | "DRAFT"로 설정하면 TikTok에 초안으로 동영상을 업로드합니다 (나중에 검토 후 수동으로 게시 가능). 기본값은 "PUBLISH"입니다. |
브랜드 콘텐츠에 대한 참고 사항: 스폰서 콘텐츠를 만드는 경우 반드시 brand_content_toggle=true를 설정해야 합니다. 이는 선택 사항이 아닙니다. 미국 FTC와 동등한 EU 규정 모두 유료 파트너십의 명확한 공개를 요구합니다. TikTok도 자체적으로 이를 시행하므로, 올바르게 표시하지 않으면 콘텐츠가 삭제될 수 있습니다. 자사 비즈니스를 홍보하는 경우 (제3자 브랜드가 아닌), 대신 brand_organic_toggle=true를 사용하세요.
AI 생성 콘텐츠의 경우, is_aigc=true를 설정하면 시청자에게 보이는 공개 라벨이 추가됩니다. AI 콘텐츠 규정이 진화함에 따라, 이를 사전에 표시하는 것이 좋은 관행입니다.
Python으로 TikTok 게시물 예약하기
Python 자동화 가이드에서 SDK에 대해 자세히 다룹니다. 다음은 TikTok을 위한 실용적인 예제입니다: 폴더의 모든 동영상을 내일 아침부터 한 시간 간격으로 일괄 예약합니다.
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/tiktok-videos"
videos = sorted(glob.glob(os.path.join(video_folder, "*.mp4")))
# Start scheduling from tomorrow at 9 AM Eastern
base_time = (datetime.now() + timedelta(days=1)).replace(
hour=9, minute=0, second=0, microsecond=0
)
print(f"Found {len(videos)} videos to schedule")
for i, video_path in enumerate(videos):
publish_time = base_time + timedelta(hours=i)
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"],
scheduled_date=publish_time.isoformat(),
timezone="미국/뉴욕",
privacy_level="공개",
disable_duet=False,
disable_comment=False,
cover_timestamp=3000,
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("모든 비디오가 예약되었습니다!")
이 스크립트는 각 동영상을 한 시간 간격으로 배치합니다. 선호하는 게시 간격에 맞게 timedelta를 조정할 수 있습니다. TikTok은 계정당 24시간 롤링 윈도우 기준으로 하루 15개 업로드 제한을 적용합니다. 동영상이 15개를 초과하는 경우, 여러 날에 걸쳐 분산하거나 제한을 자동으로 처리하는 대기열 시스템을 사용하세요.
또한 예약 전에 동영상을 리사이즈하거나 트리밍하기 위해 FFmpeg API와 결합하거나, 소셜 미디어 기념일 캘린더를 사용하여 트렌딩 주제에 맞춰 게시 날짜를 조정할 수 있습니다.
노코드: n8n으로 TikTok 게시물 예약하기
코드 작성보다 시각적 자동화를 선호한다면, n8n이 훌륭한 옵션입니다. HTTP Request 노드를 사용하여 Upload-Post API를 호출하며, Google Sheets, Google Drive, Airtable 또는 수동 버튼으로 트리거할 수 있습니다.
기본 흐름은 다음과 같습니다:
- 트리거 노드: 일정에 따라, 새 스프레드시트 행에 따라, 또는 클라우드 폴더의 새 파일에 따라 실행됩니다.
- HTTP 요청 노드: API 키, 동영상 파일, 제목,
platform[]=tiktok,add_to_queue=true와 함께https://api.upload-post.com/api/upload으로multipart/form-dataPOST를 전송합니다. - 선택 사항: 업로드 성공 또는 실패 시 Slack 또는 이메일 알림.
한 번의 클릭으로 가져올 수 있는 n8n용 TikTok 업로드 템플릿을 준비해 두었습니다. 더 많은 자동화 아이디어는 사용 가능한 모든 n8n 템플릿을 찾아보세요. 선호하는 자동화 플랫폼이 다르다면 Make.com으로도 설정할 수 있습니다.
TikTok 동영상 요구 사항
예약하기 전에 동영상이 TikTok의 사양을 충족하는지 확인하세요. 이러한 요구 사항을 충족하지 않는 파일을 업로드하면 게시가 실패합니다.
| 요구 사항 | 사양 |
|---|---|
| 최대 파일 크기 | 4 GB |
| 지원 형식 | MP4, WebM, MOV |
| 권장 화면 비율 | 9:16 (세로). 1:1과 16:9도 허용되지만 레터박스가 표시될 수 있습니다. |
| 해상도 | 1080x1920 권장. 최소 720p. |
| 재생 시간 | 1초 ~ 10분 |
| 코덱 | H.264 권장. H.265 (HEVC)도 지원됩니다. |
| 일일 업로드 제한 | 계정당 24시간 롤링 윈도우 기준 동영상 15개 |
원본 동영상이 잘못된 형식이나 화면 비율인 경우, FFmpeg API가 게시 전에 클라우드에서 변환을 처리할 수 있습니다. 또한 YouTube 동영상을 TikTok 형식으로 자동 변환할 수도 있습니다.
자주 묻는 질문
TikTok 게시물을 무료로 예약할 수 있나요?
네. Upload-Post는 월 10회 무료 업로드가 포함된 무료 플랜을 제공하며, 무료 플랜을 포함한 모든 플랜에서 예약이 가능합니다. 정확한 날짜로 게시물을 예약하거나 대기열 시스템을 무료로 사용할 수 있습니다. 더 많은 볼륨이 필요한 경우, 유료 플랜은 장기 약정 없이 합리적인 가격으로 시작됩니다.
예약된 시간에 TikTok이 다운되어 있으면 어떻게 되나요?
Upload-Post는 실패한 업로드를 자동으로 재시도합니다. 예약된 시간에 TikTok의 API가 일시적으로 사용 불가능한 경우, 시스템은 이후 몇 분에 걸쳐 다시 게시를 시도합니다. 문제가 지속되면 웹훅(설정된 경우)을 통해 알림을 받거나 GET /api/uploadposts/status?job_id=your_job_id 엔드포인트를 사용하여 상태를 확인할 수 있습니다. 콘텐츠가 손실되는 일은 없습니다.
TikTok과 Instagram에 동시에 예약할 수 있나요?
물론입니다. 같은 요청에서 여러 플랫폼을 전달하면 됩니다: platform[]=tiktok과 platform[]=instagram. 같은 동영상, 제목, 예약 날짜가 모든 플랫폼에 적용됩니다. 플랫폼별로 다른 캡션이 필요한 경우, TikTok 전용 텍스트에는 tiktok_title 매개변수를 사용하고 기본 title 필드는 다른 플랫폼에 전달하세요. 더 고급 멀티 플랫폼 워크플로우에 대해서는 여러 플랫폼에 동영상 일괄 업로드 가이드를 참조하세요.
TikTok 게시물을 얼마나 미리 예약할 수 있나요?
최대 365일입니다. scheduled_date 매개변수는 다음 1년 이내의 모든 날짜를 허용합니다. 대기열 시스템과 결합하면 이론적으로 단일 일괄 세션에서 1년 전체의 콘텐츠를 채울 수 있습니다. 대부분의 사용자는 1~4주 앞서 예약하며, 이는 계획과 유연성 사이의 좋은 균형입니다. 소셜 미디어 기념일 캘린더를 사용하면 연중 주요 날짜에 맞춰 콘텐츠를 계획하는 데 도움이 됩니다.