← 返回博客

CSDN自动发布:标题是位置参数,「提交成功」不代表过了审核

·CSDN自动发布CSDN发布文章APICSDN审核未通过技术博客一稿多发

CSDN自动发布:标题是位置参数,「提交成功」不代表过了审核

一句话回答:CSDN 没有面向个人创作者开放的官方发布 API,自动化发布走的是本机浏览器操作这条路;标题是命令的位置参数、没有封面参数(自动取正文首图),当日配额按账号等级计算,而且命令返回提交成功不等于机审通过——这几处是实测踩过的坑。

一篇代码教程先发了掘金、又发了开源中国,轮到 CSDN 的时候,很多人是把前两个平台的调用方式直接搬过来:填标题、贴正文、点发布。结果这次报错变成一句「正文字数太多,请分成几篇博文发布 (HTTP 400)」——文章明明没写多长,翻来覆去数字数也数不出问题在哪。更麻烦的是另一种情况:命令返回成功,第二天回头看这篇文章阅读量却一直卡在 0,以为是平台没给推荐,其实文章根本没过审核。

CSDN 没有对外开放的发布 API,自动化走的是本机浏览器这条路

网上能搜到不少用 Selenium、Playwright 或者按接口抓包硬撸的自动发布方案,说的都是同一件事:CSDN 没有给个人创作者提供官方文档化的发布接口,写文章目前只能通过网页版的创作中心完成。PublishPort 走的也是这条路,让 AI 在你本机已经登录的浏览器里,用你自己的账号执行跟手动操作等效的动作,不依赖一个官方并不提供的接口。

命令形态上 CSDN 跟掘金、开源中国这类同类工具不完全一样:标题是位置参数,没有单独的 --title;摘要用 --description(限 256 字以内,留空平台会自动从正文截取一段);也没有封面参数,CSDN 自动取正文里的第一张图当封面,想指定封面就把想用的图放在正文最前面。--category 填的是你自己账号下已有的专栏名,不是平台的公共分类,得先用 ppcli csdn columns 查一遍自己账号真实有哪些专栏,编一个不存在的专栏名会直接被拒;--tags 是自由词,逗号分隔最多 5 个,不需要像专栏名那样提前查表。

「正文字数太多」大概率是图片惹的祸,配额还得临发前再查一遍

实测遇到的「正文字数太多,请分成几篇博文发布」这条报错,十次里有大半跟字数没关系,是本机大图被内联计入了正文长度。CSDN 会把正文里引用的本机图片一起折算进内容体积,一张没压缩的截图动辄几 MB,很容易把这个体积算爆。遇到这条报错先别忙着删段落,把图压到宽度 1200 像素以内、单张控制在 200KB 左右(JPEG 质量调到 82 左右足够)再试,往往就通了。

另一个容易漏掉的细节是发布节奏:草稿验证跑完紧接着就提正式发布,容易触发「文章频繁发布,请稍后再试」的限频,两步之间隔几分钟更稳妥。

当日配额是最容易被忽略、也最容易踩坑的一处。CSDN 对每个账号当天能发的文章数有上限,具体数字随账号等级不同,超出会报 HTTP 400「今天发表文章数量已达到限制的N篇」。这个配额是账号级的,如果同一个账号被多个任务、或者人和 AI 交替使用,配额是共享的,会互相争抢。稳妥的做法是临发布前再用 ppcli csdn stats 查一遍今天已经发了几篇,而不是任务一开始查过一次就当数字不会变。这里还有个反直觉的地方:已经删进回收站的当天文章、发布失败的草稿,照样占当天配额,删除不等于清零。真实场景是任务开头查过配额没问题,写文章写到一半用户自己手动又发了一篇,等真要提交的时候配额已经用完——遇到这种情况先跟用户确认要不要等到明天,别把一整篇文章白写了。

「提交成功」不等于「审核通过」,真相藏在 stats 的 badges 字段里

这是 CSDN 跟前面几个技术社区最不一样的地方。命令返回发布成功,只代表这次提交动作被平台接受了,不代表内容真的过了审核。命令层面看到的 status 只会告诉你“已发布”,但这篇文章有没有真正对外展示、有没有被判定成低质或违规,得看 ppcli csdn stats 返回里的 badges 字段。badges 抓的其实是 CSDN 给文章挂的标签:显示「原创」代表这篇正常过审,出现「审核未通过」就是内容被驳回或者限流了——技术上这篇文章的状态仍然是“已发布”,只看 status 字段会误判成功,实际表现是这篇文章的阅读量常年卡在 0。

高频往同一个分类发同一种体裁的文章,建议发布后主动回查一遍 badges,不要等阅读量长期为零才回头怀疑。如果最近几篇同类目文章接连出现「审核未通过」,值得留意内容体裁本身:偏“逐条列点+据某某数据”的横向对比清单体,实测更容易触发机审判定;换成围绕一个点深入展开的融合叙事写法,过审率会更稳一些。机审有时候要等 15 分钟以上才出结果,当次任务里查不到结论很正常,交给下一轮再回查就行。

让 AI 用你自己的账号接管这一步

PublishPort 的做法是让 AI 用你电脑上已经登录的 CSDN 账号操作,登录会话留在本地,账号密码不会上传到某个云端服务器代管。装好客户端、在 CSDN 后台登录一次,AI 就能按你给的稿子先查真实的专栏名、把大图压缩好,再决定要不要先等一等配额,最后发布完主动回查 badges 确认是不是真的过审了,而不是提交完就当任务结束。

下载 PublishPort 之后,接管的也不只是发布这一步。文章发出去之后同样会有评论区,把互动接住、把哪篇文章数据表现好用来定下一篇的选题,可以参考私信评论运营怎么做,账号体系是打通的,不是发完就撒手。

具体怎么做:先查专栏和配额,发完记得回查 badges

CSDN 发布背后有好几处硬性校验,按这个顺序走能少踩几次坑:

  1. 查真实的专栏名。 ppcli csdn columns,返回你账号下已有的专栏,--category 只能填这里面真实存在的名字。
  2. 临发布前查今天的配额。 ppcli csdn stats,数一遍 published_at 是今天的条目,包括已经删除的当天文章,确认还有余量再往下走。
  3. 处理正文里的图片。 图片先落到本机(prepare_upload 或者 curl -o),正文引用本机绝对路径;每张图控制在 200KB 左右、宽度不超过 1200 像素,避免触发“正文字数太多”的误报。
  4. 发布命令示例ppcli csdn article "标题" --file draft.md --category "专栏名" --tags "标签1,标签2" --description "摘要" --execute。不加 --execute 会直接拒绝执行,这是防误触发布的保护,不是校验参数用的预览模式。
  5. 发布完回查 statsbadges 字段,确认是「原创」还是「审核未通过」,而不是看到 status 显示已发布就直接收工。首次调用 stats 如果报 Pre-navigation ... timed out,加 --site-session ephemeral 重试通常就能通。

具体参数以 ppcli csdn --help 为准,命令行版本会持续迭代。

边界与注意:AI 起草不等于可以不标注、不等于稳过审

CSDN 作为技术社区,对内容质量和原创性的审核比一些泛内容平台更敏感。按国家网信办等四部门联合发布的《人工智能生成合成内容标识办法》,AI 生成合成内容需要主动标识,这条规则自 2025 年 9 月 1 日起正式施行,不是某个平台自己定的土规矩。CSDN 自己的社区内容创作规范里也明确列出了不允许发布的内容类型和处理办法,用 AI 辅助起草、自己审核核实、如实标注之后再发布,跟直接甩一篇没人看过的机器搬运文完全是两回事。没有工具能保证提交就一定过审,按真人的发布节奏来、内容标注如实,比赌“发出去就算数”靠谱。

发布前检查清单

常见问题 / FAQ

CSDN 有官方开放的发布 API 吗?

没有面向个人创作者公开的官方发布接口,写文章目前只能通过网页版创作中心完成。PublishPort 走的是本机浏览器自动化路线,用你自己已经登录的账号执行发布动作,跟手动在网页上操作的效果一致。

CSDN 显示发布成功,为什么阅读量一直是 0?

先查一下 csdn stats 返回里的 badges 字段,如果显示「审核未通过」,说明命令层面的“发布成功”只是提交动作被接受,内容实际被机审判定为不过审或限流了,status 字段不会告诉你这件事。

CSDN 每天能发几篇文章?

具体数字跟账号等级有关,官方没有对外公布统一数字,超出当天配额会报 HTTP 400 提示「今天发表文章数量已达到限制」。稳妥的做法是发布前用 csdn stats 实时查一遍今天已经发了几篇,别只信任务开始时候查到的数字。

CSDN 发布报错「正文字数太多」,但文章明明不长怎么办?

大概率不是文字本身的问题,是正文里引用的本机图片体积太大,被平台一起折算进了内容长度。把图压缩到宽度 1200 像素、单张 200KB 左右再试。

CSDN 存的草稿之后能不能单独发布?

不能。CSDN 这个发布命令保存的草稿只能整体重新提交成一篇新文章,没有“把已有草稿发布出去”这个入口。跨天留着的草稿会变成需要手动清理的东西,建议要发就直接发,配额不够就当次不发、留到下一轮。

CSDN 和掘金、开源中国比,一稿多发有什么共同的坑?

代码块高亮、图床转存、标签体系在这几个平台之间基本都不通用,这部分的通用坑点在技术博客一稿多发里讲过;CSDN 单独拎出来说,是因为它在配额按账号等级计算、“提交成功”不等于“审核通过”这两处有自己独有的逻辑,跟掘金、开源中国的报错方式不是一回事。