Step 1: Install the SDK
Install the multi-upload-tool Python package from PyPI:
pip install multi-upload-toolRequirements: Python 3.8+. No other dependencies.
Step 2: Get Your API Token
- Sign up at multi-upload-tool.com
- Go to Settings → API Keys
- Click "Create API Key" and copy your token
os.environ.get("MUT_API_TOKEN").Step 3: Connect Your TikTok Account
- In the dashboard, click "Add Account" → TikTok
- Authorize via TikTok's official OAuth flow (no password shared)
- Note the Account ID shown in the dashboard. You'll need it for API calls
Step 4: Upload a Video to TikTok
from multi_upload_tool import MultiUploadClient
# Initialize client
client = MultiUploadClient(api_token="your-api-token")
# Upload a video to TikTok
upload = client.uploads.upload(
account_id='ACCOUNT_ID', # Your TikTok account ID
file_path="/path/to/video.mp4", # Local video file
title="My first automated TikTok! #python #coding",
privacy_level="PUBLIC_TO_EVERYONE", # or "SELF_ONLY", "MUTUAL_FOLLOW_FRIENDS"
)
print(f"Upload {upload['data']['uploadId']}: {upload['data']['status']}")
client.close()That's it. Your video is queued and publishes to TikTok in the background.
Advanced: Schedule, Bulk Upload, Multi-Platform
Schedule a TikTok Post for Later
from multi_upload_tool import MultiUploadClient
from datetime import datetime, timedelta
from zoneinfo import ZoneInfo
client = MultiUploadClient(api_token="your-api-token")
# Schedule for tomorrow at 7 PM New York time (timezone-aware ISO 8601)
tomorrow_7pm = (datetime.now(ZoneInfo("America/New_York")) + timedelta(days=1)).replace(
hour=19, minute=0, second=0, microsecond=0
)
upload = client.uploads.upload(
account_id='ACCOUNT_ID',
file_path="video.mp4",
title="Scheduled post 📅",
schedule_date=tomorrow_7pm.isoformat(),
)
print(f"Scheduled for: {tomorrow_7pm}")
client.close()Bulk Upload from a File List
from multi_upload_tool import MultiUploadClient
client = MultiUploadClient(api_token="your-api-token")
# List of videos with metadata
videos = [
{"file_path": "video_01.mp4", "title": "Morning routine", "schedule_date": "2026-12-01T19:00:00Z"},
{"file_path": "video_02.mp4", "title": "Quick tip", "schedule_date": "2026-12-02T19:00:00Z"},
]
for video in videos:
upload = client.uploads.upload(
account_id='ACCOUNT_ID',
file_path=video["file_path"],
title=video["title"],
schedule_date=video["schedule_date"],
)
print(f"✅ Scheduled: {video['title']}")
client.close()Upload to TikTok + YouTube + Instagram at Once
from multi_upload_tool import MultiUploadClient
client = MultiUploadClient(api_token="your-api-token")
# Get all connected accounts
accounts = client.accounts.list(status="active")
account_ids = [a["id"] for a in accounts]
# Upload to ALL platforms in one call
upload = client.uploads.upload(
account_id=account_ids, # List of account IDs
file_path="video.mp4",
title="Published everywhere! 🚀",
)
# One result per account
for item in upload["results"]["results"]:
print(f"{item.get('platform')}: {'queued' if item['success'] else item['error']}")
client.close()Alternative: Use the REST API Directly
If you prefer not to use the SDK, you can call the API directly with requests:
import requests
url = "https://api.multi-upload-tool.com/api/v1/upload"
headers = {"x-api-key": "YOUR_API_KEY"}
with open("video.mp4", "rb") as f:
response = requests.post(
url,
headers=headers,
files={"video": f},
data={
"accountId": "ACCOUNT_ID",
"title": "My TikTok Video #python",
"privacy_level": "PUBLIC_TO_EVERYONE",
},
)
print(response.json())
@chef.nova
@novafitness
@nova.travels
@nova.lifts