feishu2md
这是一个使用Go语言实现的工具,用于将飞书文档下载为Markdown文件。
请注意:正在招募有需求和兴趣的开发者,共同探讨开发维护,如有兴趣请联系。
动机
《一日一技 | 我开发的这款小工具,轻松助你将飞书文档转为 Markdown》
获取 API Token
配置文件需要填写APP ID和APP SECRET信息,请参考飞书官方文档获取。推荐按以下步骤设置:
- 进入飞书开发者后台
- 创建企业自建应用(个人版),信息可随意填写
- (重要)打开权限管理,开通以下必要的权限(可点击以下链接参考 API 调试台->权限配置字段)
- 获取文档基本信息,「查看新版文档」权限
docx:document:readonly
- 获取文档所有块,「查看新版文档」权限
docx:document:readonly
- 下载素材,「下载云文档中的图片和附件」权限
docs:document.media:download
- 获取文件夹中的文件清单,「查看、评论、编辑和管理云空间中所有文件」权限
drive:file:readonly
- 获取知识空间节点信息,「查看知识库」权限
wiki:wiki:readonly
- 获取文档基本信息,「查看新版文档」权限
- 打开凭证与基础信息,获取App ID和App Secret
如何使用
注意:飞书旧版文档的下载工具已决定不再维护,但分支v1_support仍可使用,对应的归档为v1.4.0,请知悉。
命令行版本
借助Go语言跨平台的特性,已编译好了主要平台的可执行文件,可以在Release中下载,并将相应平台的feishu2md可执行文件放置在PATH路径中即可。
查阅帮助文档
$ feishu2md -h
名称:
feishu2md - 下载飞书/Larksuite文档为Markdown文件
用法:
feishu2md [全局选项] 命令 [命令选项] [参数...]
版本:
v2-0e25fa5
命令:
config 读取配置文件或设置字段(如果提供)
download, dl 下载飞书/Larksuite文档为Markdown文件
help, h 显示命令列表或某个命令的帮助
全局选项:
--help, -h 显示帮助 (默认: false)
--version, -v 打印版本 (默认: false)
$ feishu2md config -h
名称:
feishu2md config - 读取配置文件或设置字段(如果提供)
用法:
feishu2md config [命令选项] [参数...]
选项:
--appId value 设置 OPEN API 的应用 ID
--appSecret value 设置 OPEN API 的应用密钥
--help, -h 显示帮助信息(默认:false)
$ feishu2md dl -h
名称:
feishu2md download - 将飞书/Lark 文档下载为 Markdown 文件
用法:
feishu2md download [命令选项] <url>
选项:
--output value, -o value 指定 Markdown 文件的输出目录(默认:"./")
--dump 导出 OPEN API 的 JSON 响应(默认:false)
--batch 下载文件夹下的所有文档(默认:false)
--help, -h 显示帮助信息(默认:false)
**生成配置文件**
通过 `feishu2md config --appId <your_id> --appSecret <your_secret>` 命令即可生成该工具的配置文件。
通过 `feishu2md config` 命令可以查看配置文件路径以及是否成功配置。
更多的配置选项请手动打开配置文件更改。
**下载单个文档为 Markdown**
通过 `feishu2md dl <your feishu docx url>` 直接下载,文档链接可以通过 **分享 > 开启链接分享 > 互联网上获得链接的人可阅读 > 复制链接** 获得。
示例:
```bash
$ feishu2md dl "https://domain.feishu.cn/docx/docxtoken"
批量下载某文件夹内的全部文档为 Markdown
此功能暂时不支持 Docker 版本
通过 feishu2md dl --batch <your feishu folder url>
直接下载,文件夹链接可以通过 分享 > 开启链接分享 > 互联网上获得链接的人可阅读 > 复制链接 获得。
示例:
$ feishu2md dl --batch -o output_directory "https://domain.feishu.cn/drive/folder/foldertoken"
Docker 版本
Docker 镜像:https://hub.docker.com/r/wwwsine/feishu2md
Docker 命令:docker run -it --rm -p 8080:8080 -e FEISHU_APP_ID=<your id> -e FEISHU_APP_SECRET=<your secret> -e GIN_MODE=release wwwsine/feishu2md
Docker Compose:
# docker-compose.yml
version: '3'
services:
feishu2md:
image: wwwsine/feishu2md
environment:
FEISHU_APP_ID: <your id>
FEISHU_APP_SECRET: <your secret>
GIN_MODE: release
ports:
- "8080:8080"
启动服务 docker compose up -d
然后访问 https://127.0.0.1:8080 粘贴文档链接即可,文档链接可以通过 分享 > 开启链接分享 > 复制链接 获得。
在线版本
我使用个人的测试 API Token 部署了一个不稳定版本在 Render 平台上,该版本不会保存任何的文档资料和图片在容器中,直接通过 HTTP 从内存中返回压缩包文件,但是 Render 平台的日志可能会记录一些 HTTP 信息。
该版本仅供不在意隐私或懒于配置的用户临时使用,也可用于测试对比是否自己的 Token 权限配置有问题。Render 平台使用免费配额,仅有 512M 内存,不保证高可用性,信任链全靠开源代码,请自行斟酌。
访问 https://feishu2md.onrender.com/ 粘贴文档链接即可,文档链接可以通过 分享 > 开启链接分享 > 复制链接 获得。
感谢