free-course-share

小红书"免费课程/证书"分享笔记生产工作流。筛课打分 → 素材拼图 → 证书姓名打码(中文OCR+嵌入图同步修复) → 竖版封面 → 文案初稿 → 发布 checklist 一站式产出。

Bonnie Geng

@bonniegeng-max

Install

$ openclaw skills install @bonniegeng-max/free-course-share

免费课程分享笔记工作流(小红书 · 公开版)

服务场景:把免费课程/证书做成小红书笔记的完整生产流水线。 脚本自动化素材生产(拼图 + 打码 + 竖版封面),文档沉淀方法论与文案模板。

环境准备(一次性)

推荐 venv 隔离安装(避免污染系统 Python):

python3 -m venv .venv && source .venv/bin/activate
pip install \
    pillow==12.1.0 \
    numpy==2.3.5 \
    opencv-python-headless==4.13.0.92 \
    pytesseract==0.3.13
# OCR 中文包(系统级,需 sudo,与 pip 安装隔离)
sudo apt-get install -y tesseract-ocr tesseract-ocr-chi-sim

版本号与 2026-09 release 测试一致;升级前请看脚本 README 的兼容性说明。

隐私与同意(发布前必读)

证书截图可能含姓名、邮箱、员工编号、CPE 积分账号、Registry ID、登录账号等个人/账户关联信息。本 skill 的打码脚本 redact.py辅助而非保证

  • OCR 不完美:艺术字、低清字符、特殊字体可能识别失败 → 打码框偏移或漏字
  • 嵌入缩略图:封面/配图里的证书缩略图经缩放/插值后边缘可能露字
  • 元数据残留:PNG EXIF、文件名路径、URL 参数里的个人信息脚本不会清理

所以强制要求

  1. 每张成品图发布前人眼确认打码到位(脚本会输出验证裁剪图,逐张放大确认)
  2. 不确定能否完全打码时,宁可不用真证书:用裁剪到不含姓名/ID 的局部图,或用课程官方提供的脱敏示例图替代
  3. 公司/机构证书常有保密/分发限制条款,发布前确认自己有发布权限
  4. 不要发布他人证书:只发自己名下、且有权分享的

流程总览

Step 1 · 筛课(先判断值不值得发)

references/course-screening.md 的 8 项验证清单 + 品牌分级 + 打分表。 先核"是否真免费、无订阅墙",再查时长、证书可挂 LinkedIn 等核心价值项; 时效信息(截止/改版)单独加分。结论:发 / 缓发 / 不发,各给一句话理由。

Step 2 · 素材拼图

用户跑完课程后把截图发来(大纲页、quiz、证书页等),统一放在一个目录(如 uploads/)。 顺序按文件名序号排Clipboard_Screenshot.png-1.png-2.png … 不要按目录名或 mtime 排。

默认两列布局(手机可读,勿横排拉宽):

python3 {baseDir}/scripts/stitch.py two-col 图1 图2 ... -o /workspace/第N章quiz拼图.png

3张→左2右1;5张→左3右2(左侧 ceil(n/2) 张)。背景自动检测(深界面→深底,白底→白底)。

Step 2.5 · 敏感信息打码(发布前必做)

证书上的姓名、工号、邮箱等个人信息必须打码。用脚本一条龙(中文OCR定位 → 马赛克 → 嵌入缩略图同步修复 → 自动出验证图):

python3 {baseDir}/scripts/redact.py \
  --src 证书原图.png --text "张三" \
  --targets 封面.png 配图-实拍页.png \
  --out /workspace/证书-打码.png --target-out /workspace/ \
  --verify-dir /tmp/redact_verify

要点(踩坑总结,别跳步):

  1. 中文定位必须用 chi_sim——eng OCR 对中文输出乱码坐标,是打码打偏的最常见根因
  2. 嵌在封面/配图里的缩略图不要重做整图:脚本用"模板匹配粗定位 + MSE 网格精搜(scale 和 offset 都要精调)"求出嵌入变换后局部贴片修复;按比例手工估算坐标必错
  3. OCR 认不出(艺术字/低清)→ --box x1,y1,x2,y2 手动兜底
  4. 交付前必须看脚本输出的验证裁剪图,确认框只盖住目标文字再发布
  5. 清除历史打错的内容用 --clean-box(从干净源图取贴片还原)

Step 3 · 封面(3:4 竖版 1080×1440)

按主体截图底色选主题:深色界面截图→--theme dark;白底 quiz→--theme light

python3 {baseDir}/scripts/cover_vertical.py \
  --out /workspace/笔记封面.png \
  --theme dark|light \
  --top-badge "品牌名|色" \
  --badges "标签1" "标签2" \
  --title "主标题" \
  --sub "副标题" \
  --body 主体图.png \
  --points "大字|小字" ... \
  --warn "警示1" "警示2" \
  --cta "底部引导语"

硬性要求:封面与笔记标题中的时长数字必须一致。

Step 4 · 文案初稿

标题公式:白嫖 + 大厂/名校名 + 具体时长 + 拿证 + 附加钩子 例:白嫖微软✅LinkedIn联名AI证书 4h直接挂简历

正文结构:

  1. 钩子句(1-2行,白嫖 + 官方 + 谁背书)
  2. 这是什么(品牌、几门课、时长、免费程度)
  3. 保姆级步骤(编号 5 步内:注册→进路径→学→测验→领证挂档案)
  4. 大纲速览(表或一行一个)
  5. 紧迫/稀缺提醒
  6. 标签

Step 5 · 交付

产物:筛课结论 + 拼图 + 封面 + 文案 + 发布 checklist。 checklist 通用项:按目标账号活跃时段发布 / 发布后置顶评论(放短链+引导)/ 预备问答 / 数据观察点。

通用踩坑原则

  1. 证书 > 徽章:标题优先用"证书/认证"
  2. 答案/测验截图放评论区,不放正文(防限流+促互动)
  3. 标题与封面时长一致
  4. 小众品牌慎发;优先微软/Google/名校
  5. 一切以"自己走一遍流程"为准,素材截图=最强信任状
  6. 政策随时变:发文前自核

Top skills in this category

Google Ads

@hith3sh

Inspect Google Ads accounts and campaigns, run GAQL reports, and coordinate campaign or audience changes with confirmation via the Google Ads API. Use this s...

336.8k

Google Analytics

@hith3sh

Run GA4 reports, inspect properties, list audiences and data streams, and analyze traffic and conversion data via the Google Analytics Data API. Use this ski...

327.0k

Feishu Evolver Wrapper

@autogame-17

(Depreciated: This skill is no longer maintained; its related functions have been absorbed by the Evolver main body.) Feishu-integrated wrapper for the capability-evolver. Manages the evolution loop lifecycle (start/stop/ensure), sends rich Feishu card reports, and provides...

1076k

Edge TTS

@i3130002

Text-to-speech conversion using node-edge-tts npm package for generating audio from text. Supports multiple voices, languages, speed adjustment, pitch control, and subtitle generation. Use when: (1) User requests audio/voice output with the "tts" trigger or keyword. (2) Content needs to be spoken rather than read (multitasking, accessibility, driving, cooking). (3) User wants a specific voice, speed, pitch, or format for TTS output.

3322k

LinkedIn

@byungkyu

LinkedIn API integration with managed OAuth. Share posts, manage profile, and access LinkedIn features. Use this skill when users want to share content on LinkedIn, get profile/organization information, or interact with LinkedIn's platform. Advertising features (campaigns, ad accounts) require additional OAuth scopes — verify granted scopes before use. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway). Requires network access and valid Maton API key. Calls run through the `maton` CLI with OAuth login; default to read and list calls, and confirm every write or new connection with the user.

4513k