在任何国家创建真实 TikTok 账户的 MCP - TokPortal
发布: (2026年2月28日 GMT+8 00:37)
4 分钟阅读
原文: Dev.to
Source: Dev.to
概览
大多数 TikTok “自动化” 工具会启动无头浏览器,通过代理进行访问,并希望账户在 48 小时内不会被封禁。
TokPortal 采用了不同的方式:在 16 个以上国家拥有真实运营商的网络,使用当地网络上的真实手机。整个工作流程通过 REST API 公开,使您能够以编程方式创建真实的 TikTok 账户并发布视频。
API 基础
- Base URL:
https://app.tokportal.com/api/ext - Authentication: 来自开发者门户的 Bearer token
import os
import requests
API_KEY = os.environ["TOKPORTAL_API_KEY"]
BASE = "https://app.tokportal.com/api/ext"
HEADERS = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
}
捆绑包
捆绑包 将一个账户与一组视频槽位组合在一起。创建捆绑包、上传视频、设置元数据,然后发布。
resp = requests.post(f"{BASE}/bundles", headers=HEADERS, json={
"bundle_type": "account_and_videos",
"platform": "tiktok",
"country": "US", # change to BR, DE, ID, GB, FR, etc.
"videos_quantity": 3,
"title": "My first campaign",
})
bundle = resp.json()["data"]
print(f"Bundle {bundle['bundle_id']} created — {bundle['status']}")
上传视频
TokPortal 提供预签名 URL,免除 multipart‑form 的繁琐。
# Get a presigned upload URL
upload = requests.post(f"{BASE}/upload/video", headers=HEADERS, json={
"filename": "promo.mp4",
"content_type": "video/mp4",
"bundle_id": bundle["bundle_id"],
}).json()["data"]
# PUT the file directly (no auth header needed)
with open("promo.mp4", "rb") as f:
requests.put(upload["upload_url"], data=f,
headers={"Content-Type": "video/mp4"})
video_url = upload["public_url"]
设置视频元数据
from datetime import datetime, timedelta
publish_date = (datetime.utcnow() + timedelta(days=5)).strftime("%Y-%m-%d")
requests.put(
f"{BASE}/bundles/{bundle['bundle_id']}/videos/1",
headers=HEADERS,
json={
"video_type": "video",
"description": "This is wild 🔥 #fyp #tech",
"target_publish_date": publish_date,
"video_url": video_url,
},
)
发布捆绑包
requests.post(
f"{BASE}/bundles/{bundle['bundle_id']}/publish",
headers=HEADERS,
)
发布后,所选国家的真实运营商会在预定日期从其设备上上传视频。可通过 API 获取分析数据。
检索分析
analytics = requests.get(
f"{BASE}/accounts/{bundle['account_id']}/analytics",
headers=HEADERS,
).json()["data"]
print(f"Followers: {analytics['followers_count']}")
print(f"Views: {analytics['total_views']}")
print(f"Engagement: {analytics['average_engagement_rate']}%")
常见使用场景
- 音乐厂牌: 在 5–10 个市场创建账号,发布新曲目,并在投放广告前识别自然流量。
- DTC 品牌: 在新国家种植 10–20 个自然 TikTok 账号,然后启动付费活动。
- 代理机构: 通过单一 n8n 工作流管理 50+ 客户活动,覆盖不同国家。参见 n8n integration guide。
- AI 代理: 将 TokPortal 接入 Claude、Cursor 或其他代理,实现账号创建和发布的自动化。
批量创建
对于大规模部署,请使用批量端点:
resp = requests.post(f"{BASE}/bundles/bulk", headers=HEADERS, json={
"bundles": [
{"platform": "tiktok", "country": "US", "videos_quantity": 3,
"accounts_count": 10, "title": "US wave"},
{"platform": "tiktok", "country": "BR", "videos_quantity": 3,
"accounts_count": 10, "title": "Brazil wave"},
{"platform": "tiktok", "country": "GB", "videos_quantity": 3,
"accounts_count": 5, "title": "UK wave"},
]
})
# Creates 25 accounts across 3 countries in one call
截至目前的成果
- 35,000+ 个已创建账户
- 2 B+ 总观看次数
- 82 个细分领域已覆盖
- 16 个国家已支持
- 平均互动率:6–8 %(因细分领域和国家而异)
高留存率源于使用真实账户——没有影子封禁、没有标记,仅是普通的 TikTok 行为。
更多资源
- Full API reference: https://developers.tokportal.com
- Python 快速入门指南(帮助你从零开始,在约10 分钟内发布 TikTok)
如果您想要个性化演示,请安排与 TokPortal 团队的通话。欢迎在评论中提问——创作者乐于分享边缘案例的见解。