做海外短剧推广的人都有一个共同的噩梦:每天要往 Facebook 主页搬运上千条视频,每条都要手动填文案、加标签、设发布时间。一部 80 集的剧,光是搬运就能耗掉一整天。在做这个工具之前,我同时推广 7 种语言的短剧——英语、法语、西班牙语、德语、阿拉伯语、日语、韩语,背后是 7 个 Facebook 账号、70 个公共主页。每个语种对应不同的主页矩阵,每部剧有不同的推广文案,每天要往这些主页里发布超过 1000 条视频。哪个主页发到第几集了?这部剧的阿拉伯语文案复制了没?日语区的标签是不是又漏了?这种规模靠手动管理,不是迟早出错,是每天都在出错。于是我用 Python 写了这个桌面工具,把从选集到发布的全链路自动化了,全程无人值守。今天聊聊这套系统是怎么设计和使用的。
一、运营痛点:短剧推广的日常有多繁琐?
先还原一下短剧推广的典型工作流:
- 找素材 — 从本地硬盘里找到今天要发的剧,确认哪些集已经发过、哪些还没发,手动记在 Excel 或者脑子里。
- 抓文案 — 打开海豹推手(haibao.club)的任务中心,选平台、选语言、搜剧名、点进去、复制 Facebook 推广文案。一部剧一套文案,搜索+复制大概 2 分钟。
- 上传视频 — 打开 Facebook Business Suite 的批量上传页面,选视频文件,等上传完成,等版权检测通过。8 个视频大概要等 5~10 分钟。
- 填描述 — 给每个视频粘贴推广文案、加上 Hashtag 标签(
- 设定时 — 每个视频间隔 60 分钟定时发布(比如 90:00、10:00、11:00……),要手动点开日期选择器、设小时、设分钟,一个视频操作 5~6 次点击。8 个视频就是近 50 次点击。
- 发布 — 确认无误,点击发布。
以上是一部剧、一个主页、一批次的工作量。如果你同时在推 7 个语种、每个语种 1 部剧、每个语种 10 个主页,每天的纯搬运时间就要十几个小时,一个人根本做不完,即使两三个人分工协作,也得各忙上大半天。
二、解决方案:六步全自动发布
【发布页面】
【设置页面】
我的工具把上面的手动流程浓缩成了一键触发的自动化管道:点击「开始发布」↓① 智能选集 → ② 自动抓文案 → ③ 读取标签 → ④ 拼接描述 → ⑤ 批量上传 → ⑥ 状态记录逐步拆解:① 智能选集 — 永远不会发重、发漏工具扫描本地目录(按 语言/剧名/EP 1.mp4 结构组织),自动对比状态文件中已发布的集数列表,只选取尚未发布的集。运营上最实用的功能是「随机发布」模式:不需要手动选剧,工具自动在所有未发完的剧中随机挑选——优先选全新的剧,一部发完无缝切到下一部。设好之后完全不用管。② 自动抓取推广文案 — 告别手动复制粘贴工具自动打开海豹推手的任务中心,按平台和语言筛选,搜索剧名,点击「获取 Facebook 推广链接」,从弹窗中提取推广文案。实现上,这一步用了 Playwright 浏览器自动化来模拟真实用户的页面操作:点击筛选按钮、输入搜索关键词、定位弹窗中的文案区域、提取文本。即使页面结构变化,也预留了多套备用定位策略。如果文案获取失败(网络问题、剧名未收录等),工具会优雅降级——用空文案继续发布,不会中断整个流程。这在运营层面很重要:宁可文案缺失也不要卡住整个发布计划。③ 读取 Hashtag 标签 — 多语种标签一次配好预先在 tag.yaml 中为每种语言配置好一套 Hashtag:
配一次,所有后续发布自动读取,不用每次手敲。④ 模板化拼接描述 — 统一品牌调性用可自定义的描述模板,将推广文案、标签组合成最终的视频描述:
实际输出效果:When she thought love was lost forever, fate brought a second chance through the most unexpected encounter...#二创#ShortVideo#Drama#Viral#NewRelease从运营角度看,模板化带来的好处是内容一致性。所有视频的描述格式统一,品牌调性可控,SEO 标签不会遗漏。⑤ Facebook 批量上传 — 最复杂的一步,全程自动化
这是技术含量最高的环节,自动操控 Facebook Business Suite 的批量上传页面:打开页面 — 导航到批量上传入口选择文件 — 拦截文件选择器事件,自动选中本地 MP4 文件等待上传 — 轮询检测上传进度和版权审查状态(通过识别页面上的「可以发布了」标记)填写描述 — 逐个定位 Facebook 的富文本输入框(contenteditable div),使用模拟键盘输入的方式填入文案设置定时 — 逐个展开定时面板,选择「定时发布」,通过日历选择器选日期,用键盘输入小时和分钟统一发布 — 点击底部「发布」按钮,等待处理完成,点击「完成」定时排期的自动计算也很实用:你只需指定一个起始时间和间隔(比如从 09:00 开始,每 60 分钟一条),工具自动算出 09:00、10:00、11:00……如果排到 24:00 之后,自动顺延到第二天。整个操作过程加入了 1~4 秒的随机延迟,模拟真人操作节奏,降低被平台风控检测的风险。更关键的是,工具支持多主页批量发布——同一批视频一键发到多个 Facebook 主页。做多账号矩阵的运营者,效率直接翻倍。⑥ 状态记录与防重发 — 运营数据沉淀每次发布完成后,工具将结果写入状态文件:
{
"drama": "Kissed by Claw and Fang",
"language": "英语",
"total_episodes": 80,
"published_episodes": [1, 2, 3, 4, 5, 6, 7, 8],
"publish_history": [{
"batch_id": "20260218_120000",
"episodes": [1, 2, 3, 4, 5, 6, 7, 8],
"timestamp": "2026-02-18T12:00:00",
"status": "success"
}]
}
这份数据有双重作用:技术层面:下次发布时自动跳过已发集数,杜绝重复发布运营层面:清晰追踪每部剧的发布进度、成功率,历史页还支持按剧名筛选和统计
三、多语种账号隔离:一台电脑管多个市场
做海外短剧推广的人通常同时运营多个语种市场。每个语种对应不同的 Facebook 主页和海豹推手账号。工具为每种语言创建了独立的浏览器数据目录:browser_data/├── 英语/ ← 英语 Facebook 主页 + 海豹推手登录态├── 阿拉伯/ ← 阿拉伯语 Facebook 主页+ 海豹推手登录态└── 日语/ ← 日语 Facebook 主页+ 海豹推手登录态切换语言时,浏览器自动加载对应的 Cookie 和登录状态,完全隔离,互不干扰。首次使用只需手动登录一次,之后通过 Playwright 的持久化上下文(persistent context)长期保持登录态。同时集成了 playwright-stealth 反检测库,修改浏览器指纹特征,降低被识别为自动化工具的概率。
四、定时调度:设一次,全天自动跑
除了手动触发,工具内置了每日定时执行机制。在设置页配好执行时间:
工具会在每天的 10 点、16 点、22 点自动启动发布流程。搭配随机选剧模式,真正实现了「开机即挂机,全天自动发剧」。
五、技术栈一览
整个项目不依赖任何数据库和云服务,所有数据本地存储。一台 Windows电脑就是完整的工作站。
六、投入产出比:一组真实数据
七、写给运营人/老板的话
很多做短剧推广的朋友是运营背景,可能看到 Python、Playwright 这些词就觉得很远。但其实自动化工具的价值,不在于技术多炫,而在于:你不用再记「这部剧发到第几集了」你不用再担心「是不是忘加标签了」你不用再花时间在「点击→等待→粘贴→点击→等待」的死循环里你可以同时管理更多语种、更多主页,而不是被搬运工作淹没短剧出海赛道拼的是效率。谁能用更少的人力覆盖更多的渠道,谁就能跑得更快。
八、写给技术人的话
如果你也想做类似的浏览器自动化工具,几个实践经验分享:Facebook 的富文本框不能用 fill(),它是 contenteditable div,需要模拟键盘输入(press_sequentially)登录检测要考虑 SPA 导航,Facebook 页面是单页应用,evaluate() 可能在导航中报错,需要 try-catch + 重试定时发布的日期选择器用 aria-label 定位最可靠,格式是 "Tuesday, 17 February 2026"persistent context 比手动管理 Cookie 靠谱得多,省去了序列化/反序列化的麻烦一定要加随机延迟,固定间隔的操作节奏是最容易被风控识别的特征
九、结语
效率是最好的竞争力。与其每天重复劳动,不如花点时间把流程自动化。这不仅是技术问题,更是运营思维的升级。如果你也在做海外短剧推广,不管是刚入行还是已经跑了一段时间,欢迎在评论区聊聊你的日常工作流——你每天花多少时间在搬运视频上?你同时在运营几个语种、几个主页?除了 Facebook,你还在哪些平台发?另外,需要这个自动化发布工具,请关注符哥