单篇与批量
接受 Docx / Wiki 链接,或逐行读取 URL 列表。批量任务中单个失败会继续处理其余链接,再统一汇总。
batch_download.py将有权限访问的飞书 / Lark Docx 与 Wiki 导出为 Markdown。
文档、图片、目录和结果清单,放进你自己的工作空间。
脚本、Skill、本地 Web 服务调用同一套导出逻辑。选择入口,输出规则始终一致。
适用于 Codex、Claude Code、DeepSeek Harness、OpenClaw、Hermes。仓库根目录就是 Skill 目录,助手读取 SKILL.md 后调用现有脚本。
复制右侧提示词交给助手,再提供你要导出的文档。安装 Skill 后仍需完成飞书用户授权。
查看各 Agent 安装说明 ↗请把 https://github.com/rovertang/lark-docs-to-md 安装为你的 Skill。
读取 SKILL.md,复用仓库脚本,不要重写下载逻辑。
先运行 scripts/check_env.py --json 检查环境。
需要用户登录时使用 --login --no-wait,将授权链接与二维码给我;等我确认后再用 --device-code 收尾。
使用 user 身份导出我随后提供的文档。递归或整库导出前先确认范围;整库先执行 --dry-run。
完成后报告输出目录、文档与图片数量、失败或降级项。图片失败时不要声称完整导出。单文档、链接列表、递归引用和整个知识库都有独立入口。Python 3.10+,只用标准库,无需安装 Python 第三方包。
适合本地归档脚本、定时任务和已有自动化流程。执行环境需要可用的 lark-cli 与授权。
# 在仓库目录内执行;替换为你的文档链接
python3 scripts/download_docx_tree.py \
"https://example.feishu.cn/docx/YOUR_DOC_TOKEN" \
-o ./downloads --identity userWindows 可将 python3 改为 py -3,并将分行命令写为一行。
粘贴文档链接,或填写知识库空间 ID;支持登录面板、实时日志、结果预览和 ZIP 打包。无需 Node 前端构建。
默认只监听本机 127.0.0.1,使用启动服务时的 CLI 登录身份。
python3 web/lark_download_web.py --open默认地址:http://127.0.0.1:8765/
这张专题页用于介绍项目;下载操作由你本机的服务执行。
离线阅读、个人知识库、Agent 上下文、资料迁移。保留可以导出的结构与资源,并记录每次导出的结果。
接受 Docx / Wiki 链接,或逐行读取 URL 列表。批量任务中单个失败会继续处理其余链接,再统一汇总。
batch_download.py按需跟随正文引用,也可遍历整个 Wiki 空间或指定子树。整库导出镜像分类目录,生成本地索引。
download_wiki_space.pyMarkdown 图片改成本地相对路径。知识库附件优先取原件,权限不允许时尝试预览件并标记降级。
assets/清单保留来源、输出文件与状态。长任务从首跑就启用 --resume,后续重试失败与降级节点。
_manifest.json| 资源 | 本地产物 | 需要知道的边界 |
|---|---|---|
| Docx | Markdown + 图片 | 图片失败会单独记录,不能视为完整导出。 |
| 旧版 Doc | 纯文本 .md | 格式、表格和图片会丢失;需要对应接口权限。 |
| 电子表格 | 按子表导出 CSV | 保留可见子表名称,隐藏子表跳过。 |
| 附件 | 原件 / 可用预览件 | 预览件标记为 partial,原件与预览均不可用时记录失败。 |
| 其他类型 | 记录为 unsupported | 多维表格、思维笔记、幻灯片、画板与未知类型会记入问题列表,不会静默跳过。 |
这个项目依赖 lark-cli 调用飞书接口。Python 脚本和 Agent Skill 都需要复用一套已经配置、授权的 CLI 环境。
先为 lark-cli 配置飞书 / Lark 应用及所需权限。应用配置是调用接口的基础。
lark-cli config init下载自己的文档,默认使用 user。通过登录引导完成授权,Token 由 CLI 管理。
check_env.py --login当前账号要能访问目标文档;递归子文档、图片和附件可能各自有权限要求。
--identity user用户登录与直接使用 bot 身份是两条不同的访问路径。只有机器人也被授予目标资源访问权时,--identity bot 才适合;它不会自动继承你的个人权限。
优先用于自己的文档或明确获授权的资料。浏览器能打开的外部公开链接,不代表当前应用和账号一定能通过 API 导出。
已有可用的 CLI 配置与登录态?直接克隆仓库并自检。首次使用,则先安装和配置 lark-cli。
npm install -g @larksuite/cli
# 首次使用 CLI 时,先完成应用配置
lark-cli config init
git clone https://github.com/rovertang/lark-docs-to-md.git
cd lark-docs-to-mdpython3 scripts/check_env.py
# 需要登录时再执行
python3 scripts/check_env.py --login
# 授权后重新自检
python3 scripts/check_env.py --jsonWindows 可使用 py -3 代替 python3。登录默认申请 docs,wiki,drive,sheets;应用侧权限与用户授权都需要满足。项目脚本不读取或保存 API Token。
python3 scripts/download_docx_tree.py "https://example.feishu.cn/docx/YOUR_DOC_TOKEN" -o ./downloads --identity user需要连同正文引用下载时,再添加 -r --max-docs 50。
python3 scripts/batch_download.py -f ./urls.txt -o ./downloads --identity user按列表顺序处理,不递归;单个失败会继续,最后查看汇总清单。
python3 scripts/download_wiki_space.py --space-id YOUR_SPACE_ID --dry-run
python3 scripts/download_wiki_space.py --space-id YOUR_SPACE_ID -o ./downloads --resume --identity user空间 ID 可通过 lark-cli wiki +space-list --as user 查看。可用 --node-token 指定子树;长任务从第一次运行就加 --resume。
知识库导出会生成分类索引、状态清单和问题列表。成功、预览降级、空文档、失败、不支持、主动跳过,都有记录。
拿到预览件,不等于拿到原件;有图片失败,也不等于完整归档。检查清单后再判断导出结果。
downloads / 我的知识库 /
├── _INDEX.md 分类索引
├── _failures.md 问题列表
├── _manifest.json 结构化清单
├── _manifest.csv Excel 可读
├── state.json 启用 --resume 时
└── 项目资料 /
├── _分类页.md
├── 项目笔记.md
├── 进度表__总览.csv
└── assets / … / image-001.png多子表 CSV 保留真实名称,文件数与体积计入图片资源,断点续传明确提示检查点状态。无标题回退命名与清单格式也已统一。