Social Publishing
Social Publishing
- Social Publishing 可以将你在 MuAPI 上生成的媒体直接発布到社交账户。通过 OAuth 连接一次账户后,使用媒体 URL 和已连接账户的 ID 调用発布エンドポイント即可。
可用平台: YouTube、Instagram 和 TikTok 提供中并完全支持。
How it works(工作原理)
発布分として三个步骤:
- 连接账户(一次性操作)——在 Integrations 页面授权 MuAPI 代表你発布内容。
- 查找账户 ID——列出已连接账户,获取数字形式的 account_id。
- 発布——使用 account_id 和公开可访問的 media_url 提交异步発布任务。
和其他 MuAPI 任务一样,発布采用“提交后轮询”模式:発布调用会返回 request_id,然后轮询(或接收 webhook)获取最终结果。
1. Connect an account(连接账户)
前往 Dashboard → Integrations,在目标平台旁点击 Connect。在跳转到平台 OAuth 授权页面前,可以として连接添加可選标签(例如 “品牌频道”)。授权完成后,你会返回 MuAPI,账户会出現在已连接列表中。
- 每个平台支持多个账户——可以按需连接多个 YouTube/TikTok/Instagram 账户,每个账户都有自己的 account_id。
- 可以在同一页面重命名或断开连接。
2. Find your account id(查找账户 ID)
列出已连接账户,获取要発布到的 account_id:
curl --location 'https://muapi.ai/api/social/accounts' \
--header 'x-api-key: YOUR_API_KEY'
响应:
[
{
"id": 42,
"platform": 1,
"platform_name": "youtube",
"account_name": "Brand channel",
"platform_user_id": "...",
"connected": true,
"connected_at": "2026-05-29T05:50:00Z"
}
]
在発布请求中使用 id フィールド(此处として 42)作として account_id。platform 值として 1=YouTube、2=TikTok、3=Instagram。connected: false 表示账户已断开(见下文),重新连接后才能再次発布。
3. Publish a video (YouTube)(発布視频到 YouTube)
curl --location --request POST 'https://api.muapi.ai/api/v1/youtube-publish' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"account_id": 42,
"media_url": "https://cdn.muapi.ai/your-video.mp4",
"title": "My generated video",
"description": "Made with MuAPI",
"tags": ["ai", "muapi"],
"privacy": "public"
}'
响应:
{
"request_id": "abc123xyz",
"status": "processing"
}
YouTube parameters(YouTube 参数)
| 参数 | 型 | 必須 | 说明 |
|---|---|---|---|
| account_id | integer | ✅ | 已连接的 YouTube 账户 ID(来自 GET /api/social/accounts)。 |
| media_url | string(URL) | ✅ | 要上传的視频公开 URL。 |
| title | string | ✅ | 視频标題(最多 100 个字符)。 |
| description | string | 視频説明。默認として空字符串。 | |
| tags | string[] | 関連键词标签。 | |
| privacy | enum | public、private 或 unlisted。默認として public。 | |
| category_id | enum | YouTube 類别 ID(字符串)。省略時默認として "22"(People & Blogs)。参见下方類别表。 | |
| made_for_kids | boolean | COPPA 面向儿童标记。默認として false。 |
YouTube 類别 ID——将 id 作として字符串传入 category_id:
| 類别 | id |
|---|---|
| Film & Animation | "1" |
| Autos & Vehicles | "2" |
| Music | "10" |
| Pets & Animals | "15" |
| Sports | "17" |
| Travel & Events | "19" |
| Gaming | "20" |
| People & Blogs(默認) | "22" |
| Comedy | "23" |
| Entertainment | "24" |
| News & Politics | "25" |
| Howto & Style | "26" |
| Education | "27" |
| Science & Technology | "28" |
| Nonprofits & Activism | "29" |
4. Get the result(获取结果)
轮询结果(或传入 webhook 查询参数,在完成后接收通知;参见 Webhooks):
curl --location 'https://api.muapi.ai/api/v1/predictions/abc123xyz/result' \
--header 'x-api-key: YOUR_API_KEY'
完成后的响应:
{
"id": "abc123xyz",
"status": "completed",
"output": {
"platform": "youtube",
"url": "https://youtube.com/watch?v=..."
}
}
5. Publish to Instagram(発布到 Instagram)
Instagram 発布面向已连接的 Instagram Business 账户。視频会作として Reels 発布,図片会発布到信息流。
curl --location --request POST 'https://api.muapi.ai/api/v1/instagram-publish' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"account_id": 57,
"media_url": "https://cdn.muapi.ai/your-video.mp4",
"caption": "Made with MuAPI #ai",
"media_type": "VIDEO"
}'
Instagram — POST /api/v1/instagram-publish
| 参数 | 型 | 必須 | 说明 |
|---|---|---|---|
| account_id | integer | ✅ | 已连接的 Instagram Business 账户 ID。 |
| media_url | string(URL) | ✅ | 視频或図片的公开 URL。 |
| caption | string | 帖子说明,支持 hashtags。 | |
| media_type | enum | VIDEO 或 IMAGE。默認として VIDEO。 | |
| cover_url | string(URL) | 用作 Reel 网格缩略図的 JPEG/PNG 図片 URL。会作として cover_url 传给 Meta;同時提供時优先于 thumb_offset。 | |
| thumb_offset | integer | 从視频中提取封面帧的位置,单位として毫秒(例如 8000 表示第 8 秒)。設置 cover_url 時会忽略。 | |
| placement | enum | reels、stories 或 timeline。默認として reels。 | |
| share_to_feed | boolean | 除 Reels 标签页外是否同時显示在主信息流中。默認として true。 |
输出:{ "platform": "instagram", "media_id": "..." }
視频必须符合 Instagram Reels 的要求(MP4/MOV、受支持的宽高比和時長)。発布任务会創建媒体容器,等待 Instagram 完成处理后再発布,因此可能比 YouTube 上传耗時更長。
6. Publish to TikTok(発布到 TikTok)
TikTok 発布会将生成的視频直接発布到已连接 TikTok 账户的信息流。
curl --location --request POST 'https://api.muapi.ai/api/v1/tiktok-publish' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"account_id": 88,
"media_url": "https://cdn.muapi.ai/your-video.mp4",
"title": "My generated video #ai"
}'
TikTok — POST /api/v1/tiktok-publish
| 参数 | 型 | 必須 | 说明 |
|---|---|---|---|
| account_id | integer | ✅ | 已连接的 TikTok 账户 ID。 |
| media_url | string(URL) | ✅ | 視频的公开 URL。 |
| title | string | 帖子标題/说明(最多 150 个字符,支持 hashtags)。 | |
| privacy_level | enum | PUBLIC_TO_EVERYONE、MUTUAL_FOLLOW_FRIENDS、FOLLOWER_OF_CREATOR、SELF_ONLY。默認として PUBLIC_TO_EVERYONE。 | |
| disable_comment | boolean | 禁用視频评论。默認として false。 | |
| disable_duet | boolean | 禁用合拍。默認として false。 | |
| disable_stitch | boolean | 禁用 Stitch。默認として false。 |
输出:{ "platform": "tiktok", "publish_id": "..." }
Publishing to your users' accounts(発布到用户账户)
如果你正在 MuAPI 之上构建应用,可以连接最终用户的 YouTube、TikTok、Instagram 或 Facebook 账户并代として発布,而无需用户拥有 MuAPI 账户。MuAPI 负责 OAuth 和 token 存储,你只需通过自己的 API Key 驱動整个流程。
How it works(工作原理)
- として用户获取其想要连接的平台的 connect URL。
- 将用户重定向到该 URL——用户会看到平台授权页面并批准访問。
- 列出其已连接账户,获取 account_id。
- 使用标准 POST /api/v1/{youtube,tiktok,instagram,facebook}-publish エンドポイント和该 account_id 発布。
Step 1 — Get a connect URL(获取连接 URL)
# YouTube
curl -X POST 'https://api.muapi.ai/api/v1/social/youtube/connect-url' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"external_user_id": "user_123",
"redirect_to": "https://yourapp.com/connected"
}'
# TikTok
curl -X POST 'https://api.muapi.ai/api/v1/social/tiktok/connect-url' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"external_user_id": "user_123",
"redirect_to": "https://yourapp.com/connected"
}'
# Instagram
curl -X POST 'https://api.muapi.ai/api/v1/social/instagram/connect-url' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"external_user_id": "user_123",
"redirect_to": "https://yourapp.com/connected"
}'
# Facebook
curl -X POST 'https://api.muapi.ai/api/v1/social/facebook/connect-url' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"external_user_id": "user_123",
"redirect_to": "https://yourapp.com/connected"
}'
四个平台返回相同结构:
{
"url": "https://accounts.google.com/o/oauth2/auth?..."
}
| 参数 | 型 | 必須 | 说明 |
|---|---|---|---|
| external_user_id | string | ✅ | 你として最终用户設置的标识符(任意字符串,例如用户 ID、邮箱等),之后用于查找其账户。 |
| redirect_to | string(URL) | 用户完成授权页面后要跳转到的位置。 |
Step 2 — Redirect your user(重定向用户)
将用户発送到第 1 步返回的 url。用户会看到平台的 OAuth 授权页面;批准后会被重定向到 redirect_to。
Instagram 连接的目标是 Instagram Business 账户,与上面的自助 Instagram 连接相同。
Step 3 — List their connected accounts(列出用户的已连接账户)
所有平台使用同一个エンドポイント——它会返回 external_user_id 下连接的所有 YouTube/TikTok/Instagram/Facebook 账户:
curl 'https://api.muapi.ai/api/v1/social/ext/accounts?external_user_id=user_123' \
--header 'x-api-key: YOUR_API_KEY'
响应:
[
{
"id": 88,
"platform_name": "youtube",
"account_name": "user_123",
"platform_user_id": "UCxxxxxx",
"external_user_id": "user_123",
"connected": true,
"connected_at": "2026-06-02T10:00:00Z"
},
{
"id": 91,
"platform_name": "tiktok",
"account_name": "user_123_tiktok",
"platform_user_id": "spc_xxxxxx",
"external_user_id": "user_123",
"connected": true,
"connected_at": "2026-07-25T10:00:00Z"
}
]
在発布调用中使用 id フィールド作として account_id。connected: false 表示账户已断开,重新连接后才能発布。
Step 4 — Publish(発布)
与発布到自己的账户相同——将第 3 步得到的 account_id 传给对应平台的発布エンドポイント:
curl -X POST 'https://api.muapi.ai/api/v1/tiktok-publish' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"account_id": 91,
"media_url": "https://cdn.muapi.ai/your-video.mp4",
"title": "My generated video #ai"
}'
Rename an account(重命名账户)
curl -X PATCH 'https://api.muapi.ai/api/v1/social/ext/accounts/88' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{"account_name": "New label"}'
Disconnect an account(断开账户)
根据你是要永久删除账户还是暂時停用,有两种方式:
永久断开——完全移除账户。对于 TikTok/Instagram/Facebook,这也会撤销平台侧的访問权限,使同一账户之后可以由你或其他最终用户重新连接:
curl -X DELETE 'https://api.muapi.ai/api/v1/social/ext/accounts/88' \
--header 'x-api-key: YOUR_API_KEY'
可恢复断开——撤销访問权限,但保留账户的 ID、名称和 external_user_id。此時对它的発布调用会以 409 失败,直到你再次通过 connect-url 让同一用户完成连接并重新激活:
curl -X POST 'https://api.muapi.ai/api/v1/social/ext/accounts/88/disconnect' \
--header 'x-api-key: YOUR_API_KEY'
只有通过你的 API Key 连接的账户才能由你重命名或断开。尝试操作其他开発者的用户账户会返回 404。