Community写作与编辑github.com

publora/social-post

使用户能够通过 Publora MCP 服务器发布或安排内容到 YouTube、Facebook 主页和 Mastodon。YouTube 每篇帖子需要视频,Facebook 仅支持主页发布,Mastodon 限制 500 字符。不适用于拥有独立技能的平台。

social-post 是什么?

Social Post (YouTube, Facebook, Mastodon) 技能通过 Publora MCP 服务器,让 AI 代理能够创建和安排发布到 YouTube、Facebook 主页和 Mastodon 的帖子。它专为这些标准发布平台设计,避开了平台特定的复杂处理。用户或代理可以一次性将内容发布到多个平台,而 Publora 会自动处理各平台的限制和要求,例如 YouTube 需要视频附件、Facebook 仅支持主页、Mastodon 的 500 字符限制。该技能支持 Starter 免费计划,并提供了 MCP 工具(如 `create_post`、`list_connections`)以及 REST API 备用方案。同步或定时发布、上传媒体、管理草稿和定时帖子等高级功能均可用。用户需先在 Publora 注册账号、通过 OAuth 连接平台并获取 API 密钥。该技能适用于 Claude Desktop、Cursor、Codex、OpenClaw 及 claude.ai 连接器等主流 AI 代理平台。

兼容平台✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/publora/skills/tree/main/skills/social-post

Installed? Explore more 写作与编辑 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Social Post (YouTube, Facebook, Mastodon)

使用 Publora MCP 服务器创建并安排发布到 YouTube、Facebook 主页和 Mastodon 的帖子。本技能覆盖那些通过标准发布方式工作、无需平台特定复杂处理的平台。

前提条件

套餐: 可在免费的 Starter 套餐下使用。当前限制和定价:publora.com/pricing。

开始使用

  1. 创建账号:访问 publora.com/register 免费注册。
  2. 连接平台:通过 Publora Dashboard 的 OAuth 连接:
    • YouTube:Google OAuth(需要 YouTube 频道)
    • Facebook:Facebook OAuth(仅限主页,不支持个人主页)
    • Mastodon:OAuth(mastodon.social 实例)
  3. 获取 API 密钥:访问 app.publora.com/dashboard/api 获取。
  4. 将你的代理连接到 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 头

# 获取已连接平台
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": ["youtube-UCxxx", "facebook-123456", "mastodon-789"],
    "content": "你的帖子内容",
    "scheduledTime": "2026-03-25T10:00:00Z"
  }'

平台 ID 格式:

  • YouTube:youtube-{channel_id}(例如 youtube-UCxxx)
  • Facebook:facebook-{page_id}(例如 facebook-112233445566)
  • Mastodon:mastodon-{id}(例如 mastodon-456)

📖 文档: docs.publora.com


YouTube

纯视频平台 - 每篇帖子都需要一个视频文件。

平台限制

功能限制
视频标题100 个字符
视频描述5,000 个字符
视频时长12 小时
视频大小256 GB
视频格式MP4、MOV、AVI、WebM

平台设置(通过 REST API)

{
  "platformSettings": {
    "youtube": {
      "privacy": "public",
      "title": "我的视频标题"
    }
  }
}
设置项值默认值
privacy"public"、"unlisted"、"private""public"
title字符串从内容的前 70 个字符派生

注意:platformSettings 既可通过 MCP 的 create_post 和 update_post 工具使用,也可通过 REST 使用。模式严格:如果平台名称或键名拼写错误,会直接返回校验错误,而不会静默忽略。

YouTube 示例

将本教程视频上传到 YouTube:
"如何在 10 分钟内构建 REST API - 初学者完整指南"
将此视频以未列出方式上传(用于内部分享):
"内部演示 - Q1 仪表盘功能"

YouTube 限制

  1. 需要视频:YouTube 不支持纯文字或图片帖子
  2. 单个视频:每篇帖子只能有一个视频
  3. 处理时间:视频上传后需要几秒到几分钟的处理时间
  4. 令牌刷新:YouTube 令牌约 6 个月过期,如需重新连接

Facebook

仅限主页 - 帖子发布到 Facebook 主页,而非个人主页。

平台限制

功能限制
帖子文字前端 2,200 字符 / API 63,206 字符
图片每篇最多 10 张
图片大小10 MB
视频时长45 分钟
视频大小2 GB

多主页支持

如果你管理多个 Facebook 主页,每个主页都有独立的平台 ID:

  • facebook-112233445566(主页 1)
  • facebook-778899001122(主页 2)

你可以在一次请求中发布到多个主页。

Facebook 示例

将本公告发布到我的 Facebook 主页:
"我们非常激动地宣布我们的新产品发布!请访问我们的网站了解更多。"
将以下内容发布到我的两个 Facebook 主页:
"假日通知:我司办公室将于周一关闭。"
在 Facebook 上分享这些活动照片:
"公司团建精彩回顾!优秀的团队,美好的回忆。"

Facebook 限制

  1. 仅限主页:无法通过 API 发布到个人主页
  2. WebP 自动转换:WebP 图片会自动转为 JPEG
  3. 59 天令牌:令牌会自动刷新,但若刷新失败可能需要重新连接
  4. 不支持混合媒体:一篇帖子可以包含图片或视频,但不能同时包含两者

Mastodon

联邦宇宙平台 - 帖子会在去中心化网络中传播。

平台限制

功能限制
帖子文字500 个字符
图片每篇最多 4 张
图片大小16 MB
视频大小~99 MB
图片格式JPEG、PNG、GIF、WebP
视频格式MP4、WebM、MOV

Mastodon 示例

将以下内容发布到 Mastodon:
"大家好!我们刚刚为我们的开源项目发布了重大更新。#opensource"
在 Mastodon 上分享这张截图:
"新功能:深色模式来啦!#ui #darkmode"

Mastodon 限制

  1. 仅限 mastodon.social:目前只能连接到 mastodon.social 实例
  2. 公开可见性:所有帖子默认公开
  3. 不支持自动线程:与 X/Twitter 不同,Mastodon 不会拆分长内容
  4. 严格 500 字符:超过 500 字符的内容会被拒绝

可用工具(所有平台通用)

create_post

创建新帖子到任何平台。

参数:

  • platforms:平台 ID 数组(例如 ["youtube-UCxxx", "facebook-123", "mastodon-456"])
  • content:帖子文字
  • scheduledTime:ISO 8601 UTC 时间。可选:省略则创建为草稿。传入未来的时间则安排定时发布。如果时间早于当前时间 5 分钟或以上,会返回 SCHEDULED_TIME_IN_PAST 错误,因此如需立即发布,请使用当前时间再加一分钟。
  • mediaUrls:最多 10 个公开 https 图片或视频 URL。Publora 在服务器端下载并在校验前附加,因此媒体和定时发布可以在一次调用中完成。这是草稿→get_upload_url→complete_media 流程的一次性替代方案。每小时限制 60 个 URL 的摄入。

get_upload_url

获取用于媒体上传的预签名 URL。

参数:

  • postGroupId:要附加媒体的帖子 ID
  • fileName:文件名
  • contentType:MIME 类型
  • type:"image" 或 "video"

complete_media

在通过 get_upload_url 获取的预签名 PUT 成功后,最终确认文件上传。可选,因为定时发布也会自动完成待处理的媒体文件,但提前调用可以在发布前暴露格式和探测错误。对于通过 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 用于清理已上传的文件。


跨平台发布

一次发布到多个平台:

将此视频发布到 YouTube,并将这段文字发布到 Facebook 和 Mastodon:
"宣布我们的新功能——观看演示!"

Publora 会自动处理各平台的特殊要求:

  • YouTube:接收视频及标题/描述
  • Facebook:接收文字 + 视频
  • Mastodon:接收文字(受 500 字符限制)

故障排除

平台错误解决方法
YouTube"需要视频"附加一个视频文件
YouTube"账号已断开"在仪表盘中重新连接
Facebook"未找到页面"验证页面连接
Facebook"令牌已过期"在仪表盘中重新连接页面
Mastodon"内容过长"缩短至 500 字符以内
Mastodon"图片过多"减少至 4 张或更少
所有平台速率限制错误等待后重试

之前这里出现的 512 MB 限制属于仪表盘的 /media/process-video 多部分端点。API 和 MCP 的上传使用预签名方式,因此以平台的上限为准。

Individual skills in this repo

This repo contains 8 individual skills — each has its own dedicated page.

publora/bluesky-post

Use when the user wants to post or schedule to Bluesky through Publora. Handles the 300-character cap, auto-detected hashtags and links, up to 4 images, and videos. Alt text cannot be set through the API. Needs a Bluesky app password, never the main password. Not for Mastodon (use social-post).

publora/instagram-post

Use when the user wants to post or schedule to Instagram through Publora: a single image, a 2-10 image carousel, a Reel or a Story. Requires a Business account and an image or video; text-only posts are rejected by the API. Not for Threads (use threads-post).

publora/linkedin-analytics

Analyze LinkedIn performance and manage engagement through Publora. Use when the user asks how a LinkedIn post or account performed (impressions, reach, reactions, comments, reshares, follower growth) or wants to react, comment, reshare or resolve an @mention. Statistics run over the REST API, engagement over MCP tools. Not for creating posts (use linkedin-post).

publora/linkedin-post

Use when the user wants to publish or schedule a LinkedIn post through Publora: text, a multi-image grid, a video, a PDF document, or @mentions. Not for analytics, reactions, comments or reshares (use linkedin-analytics), and not for other platforms.

publora/telegram-post

Use when the user wants to post or schedule to a Telegram channel or group through Publora, using a bot. Covers Telegram markdown, silent delivery, link previews and forward protection. Bot API caps media captions at 1,024 characters and videos at 50 MB. Not for other platforms (each has its own skill).

publora/threads-post

Create and schedule Threads posts with image carousels and reply control via Publora MCP. Use when the user wants to post to Meta's Threads. Multi-part threading is currently disabled by the platform, so long content stays a single post. Not for Instagram (use instagram-post) or X threads (use x-post).

publora/tiktok-post

Use when the user wants to upload or schedule a TikTok video through Publora, with privacy, comment, duet, stitch and commercial-disclosure settings. Video runs 3 seconds to 10 minutes at 23+ FPS; carousels take up to 35 images. Unaudited apps can publish private videos only. Not for Reels (use instagram-post).

publora/x-post

Use when the user wants to post or schedule to X (Twitter) through Publora, including threads auto-split past 280 characters, up to 4 images, or a video up to 140 seconds. X needs a paid Publora plan. Not for Threads or Bluesky (each has its own skill).

相关技能