TikTok 포스트
Publora MCP 서버를 사용하여 TikTok에 동영상을 업로드하고 예약합니다. 공개 범위 제어, 상호작용 설정(댓글, 듀엣, 스티치), 상업적 콘텐츠 공개를 지원합니다.
필수 조건
요금제: 무료 Starter 요금제에서 작동합니다. 현재 한도 및 가격: publora.com/pricing
시작하기
- 계정 생성: publora.com/register (무료)
- TikTok 연결: Publora 대시보드에서 OAuth를 통해 연결
- API 키 발급: app.publora.com/dashboard/api
- MCP 서버에 에이전트 연결:
https://mcp.publora.com, 인증은Authorization: Bearer sk_YOUR_API_KEY사용. Claude Code의 경우:
claude mcp add publora --transport http https://mcp.publora.com \
--header "Authorization: Bearer sk_YOUR_API_KEY"
Claude Desktop, Cursor, Codex, OpenClaw 및 claude.ai 커넥터는 각각 다른 설정 파일이나 흐름이 필요합니다. 자세한 경로와 코드 조각은 클라이언트 설정을 참조하세요.
REST API 대체 방법
MCP 서버를 사용할 수 없거나 오류가 발생하는 경우 REST API를 직접 사용하세요:
기본 URL: https://api.publora.com/api/v1
인증: x-publora-key 헤더 사용 (Authorization: Bearer 아님):
# 연결된 플랫폼 조회
curl -X GET "https://api.publora.com/api/v1/platform-connections" \
-H "x-publora-key: sk_your_api_key"
# 포스트 생성
curl -X POST "https://api.publora.com/api/v1/create-post" \
-H "x-publora-key: sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"platforms": ["tiktok-99887766"],
"content": "동영상 캡션 #해시태그",
"scheduledTime": "2026-03-25T10:00:00Z",
"platformSettings": {
"tiktok": {
"viewerSetting": "PUBLIC_TO_EVERYONE",
"allowComments": true
}
}
}'
플랫폼 ID 형식: tiktok-{id} 여기서 {id}는 /platform-connections 응답에서 가져옵니다.
예시 ID: tiktok-99887766, tiktok-123456789
📖 전체 API 문서: docs.publora.com
플랫폼 제한 (API vs 네이티브 앱)
네이티브 TikTok 앱과 다른 중요한 API 제한:
동영상 요구 사항
| 사양 | API 제한 | 네이티브 앱 |
|---|---|---|
| 최대 길이 | 10분 | 60분 |
| 최소 길이 | 3초 | 3초 |
| 최대 파일 크기 | 4GB | 4GB |
| 최소 프레임 속도 | 23FPS | 23FPS |
| 형식 | MP4, MOV, WebM | MP4, MOV, WebM |
캡션 제한
| 요소 | API 제한 | 네이티브 앱 |
|---|---|---|
| 캡션 길이 | 2,200자 | 4,000자 |
| 해시태그 | 캡션 글자 수에 포함됨 | 캡션 글자 수에 포함됨 |
속도 제한
| 제한 | 값 |
|---|---|
| 일일 포스트 수 | 15-20개 |
| 분당 동영상 수 | 최대 2개 |
사용 가능한 도구
create_post
새로운 TikTok 포스트를 생성합니다.
매개변수:
platforms: TikTok 연결 ID 배열 (예:["tiktok-99887766"])content: 동영상 캡션 (최대 2,200자)scheduledTime: ISO 8601 UTC 날짜/시간. 선택 사항: 생략하면 포스트가 초안으로 생성됩니다. 미래 시간을 보내면 예약됩니다. 5분 이상 과거의 시간은SCHEDULED_TIME_IN_PAST오류로 거부되므로, 즉시 게시하려면 현재 시간에 1분을 더한 시간을 사용하세요.mediaUrls: 최대 10개의 공개 https 이미지 또는 동영상 URL. Publora가 서버 측에서 다운로드하여 유효성 검사 전에 첨부하므로, 미디어와 예약이 한 번의 호출로 처리됩니다. 이는 초안 작성 후get_upload_url→complete_media흐름의 일회성 대안입니다. URL 처리는 시간당 60개로 제한됩니다.
get_upload_url
동영상 업로드를 위한 사전 서명된 URL을 가져옵니다.
매개변수:
postGroupId: 동영상을 첨부할 포스트 IDfileName: 동영상 파일 이름 (예: "video.mp4")contentType:video/mp4,video/quicktime, 또는video/webmtype:"video"
complete_media
사전 서명된 PUT이 성공한 후 get_upload_url을 통해 업로드된 파일을 최종 처리합니다. 선택 사항입니다. 예약 시에도 보류 중인 미디어가 최종 처리되지만, 이 메서드를 먼저 호출하면 게시 전에 형식 및 프로브 오류를 감지할 수 있습니다. mediaUrls로 첨부된 미디어에는 필요하지 않습니다.
매개변수:
mediaId:get_upload_url이 반환한 ID
list_connections
연결된 계정과 플랫폼 ID를 나열합니다. 먼저 이 메서드를 호출하고 ID를 있는 그대로 복사하세요. ID는 추측이 불가능합니다.
list_posts / get_post / update_post / delete_post
예약된 포스트와 초안을 관리합니다. update_post는 초안이나 예약된 포스트의 content와 platforms도 패치하므로, 오타 수정이나 타겟 변경 시 삭제 후 재생성할 필요가 없습니다. delete_media와 prune_media_reference는 업로드된 파일을 정리합니다.
플랫폼 설정 (REST API 통해)
TikTok은 platformSettings를 통해 제어되는 7개의 플랫폼별 설정이 있습니다:
{
"platformSettings": {
"tiktok": {
"viewerSetting": "PUBLIC_TO_EVERYONE",
"allowComments": true,
"allowDuet": false,
"allowStitch": false,
"commercialContent": false,
"brandOrganic": false,
"brandedContent": false
}
}
}
시청자 설정 (필수)
| 값 | 설명 |
|---|---|
PUBLIC_TO_EVERYONE | 누구나 시청 가능 (기본값) |
MUTUAL_FOLLOW_FRIENDS | 맞팔로우 친구만 |
FOLLOWER_OF_CREATOR | 나의 팔로워만 |
SELF_ONLY | 나만 (초안과 유사) |
상호작용 설정
| 설정 | 기본값 | 설명 |
|---|---|---|
allowComments | true | 시청자가 댓글을 달 수 있는지 여부 |
allowDuet | false | 시청자가 듀엣을 만들 수 있는지 여부 |
allowStitch | false | 시청자가 스티치를 할 수 있는지 여부 |
상업 콘텐츠 설정
| 설정 | 기본값 | 설명 |
|---|---|---|
commercialContent | false | 상업 콘텐츠인지 여부 |
brandOrganic | false | 유기적 브랜드 홍보 |
brandedContent | false | 유료 파트너십/스폰서 |
참고: commercialContent가 true이면 brandOrganic 또는 brandedContent 중 하나 이상이 반드시 true여야 합니다.
참고: platformSettings는 MCP의 create_post 및 update_post 도구와 REST에서 모두 허용됩니다. 스키마는 엄격합니다. 잘못된 플랫폼이나 키는 자동으로 무시되지 않고 유효성 검사 오류와 함께 거부됩니다.
중요한 제한 사항
1. 감사되지 않은 앱 = 비공개 전용
중요: TikTok 앱이 TikTok의 검토 과정을 통과하지 못한 경우 비공개 동영상만 게시할 수 있습니다 (SELF_ONLY). 다른 모든 viewerSetting 값은 SELF_ONLY로 재정의됩니다.
공개 동영상을 게시하려면 TikTok의 감사를 받아야 합니다.
2. 미디어 필수, 동영상 또는 이미지 캐러셀
TikTok은 텍스트만 있는 포스트를 지원하지 않습니다. 모든 포스트에는 미디어가 필요합니다.
이미지 캐러셀은 최대 35개의 이미지, JPEG, PNG 또는 WebP 형식, 각 20MB까지 지원합니다. 포스트는 캐러셀 또는 단일 동영상 중 하나여야 하며, 둘 다일 수 없습니다.
3. 최소 23FPS
초당 23프레임 미만의 동영상은 TikTok에서 거부됩니다.
예제
기본 동영상 포스트
이 동영상을 TikTok에 게시:
"60초 안에 스타트업을 만든 방법 #startup #tech #coding"
비공개 초안 (테스트)
이 동영상을 TikTok에 비공개 초안으로 업로드 (나만 볼 수 있음):
"새 콘텐츠 형식 테스트"
공개하기 전 테스트용으로 viewerSetting: "SELF_ONLY"를 사용하세요.
브랜드 콘텐츠
이 스폰서 동영상을 적절한 공개와 함께 TikTok에 게시:
"@brand의 이 신제품이 정말 마음에 들어요! #ad #sponsored"
유료 파트너십의 경우 commercialContent: true와 brandedContent: true를 설정하세요.
예약된 포스트
이 TikTok 동영상을 내일 오후 6시에 예약:
"주말 분위기 옵니다! #weekend #fun"
지원되는 동영상 형식
| 형식 | 권장 | 참고 |
|---|---|---|
| MP4 | 예 | 가장 신뢰할 수 있음 |
| MOV | 예 | Apple 형식 |
| WebM | 예 | 웹 형식 |
| AVI | Publora에서 허용 | TikTok에서 거부될 수 있음 |
| MKV | Publora에서 허용 | TikTok에서 거부될 수 있음 |
권장: 가장 호환성이 좋은 MP4를 사용하세요.
모범 사례
콘텐츠
- 처음 3초 후크: 즉시 주목을 끌기
- 최적 길이: 15-60초가 가장 좋은 참여율
- 트렌드 사운드: 가능하면 트렌드 오디오 사용
- 해시태그 전략: 3-5개의 관련 해시태그
기술
- 세로 동영상: 9:16 화면 비율이 가장 좋은 성과
- 고품질: 최소 720p 해상도
- 23FPS 이상: 부드러운 재생 보장
- MP4 형식: 가장 신뢰할 수 있는 형식
타이밍
- 최적 시간: 대상 시간대 기준 오전 7-9시, 오후 12-3시, 오후 7-11시
- 빈도: 성장을 위해 하루 1-3개 게시
- 일관성: 정기적인 게시 일정이 알고리즘에 도움
문제 해결
| 오류 | 원인 | 해결책 |
|---|---|---|
unaudited_client_can_only_post_to_private_accounts | 앱이 승인되지 않음 | TikTok 검토를 위해 앱 제출 또는 SELF_ONLY 사용 |
spam_risk_too_many_posts | 일일 한도 도달 | 24시간 대기 |
duration_check_failed | 동영상이 너무 김/짧음 | 3초에서 10분 사이인지 확인 |
file_format_check_failed | 잘못된 동영상 형식 | MP4, MOV, WebM 사용 |
| "23 FPS required" | 낮은 프레임 속도 | 동영상을 23FPS 이상으로 재인코딩 |
| "TikTok requires selecting who can view" | viewerSetting 누락 | platformSettings에 항상 viewerSetting 포함 |