npm.io
1.0.85 • Published 2d agoCLI

yuque-dl

Licence
ISC
Version
1.0.85
Deps
13
Size
990 kB
Vulns
0
Weekly
264
Stars
2.2K

yuque-dl

语雀知识库下载为本地markdown

header

Prerequisite

  • Node.js 18.4 or later

Install

npm i -g yuque-dl

Usage

$ yuque-dl --help

  Usage:
    $ yuque-dl <url>

  Commands:
    <url>                语雀知识库url
    batch <...urls>      批量下载多个知识库
    user                 下载当前账号的所有知识库
    doc <...urls>        下载单个或多个文档
    server <serverPath>  启动web服务

  For more info, run any command with the `--help` flag:
    $ yuque-dl --help
    $ yuque-dl doc --help
    $ yuque-dl server --help

  Options:
    -d, --distDir <dir>                  下载的目录
                                          └─ eg: -d download (默认值: download)
    -i, --ignoreImg                      忽略图片不下载 (默认值: false)
    --ignoreAttachments [fileExtension]  忽略附件, 可选带上忽略的附件文件后缀(多种后缀逗号分割)
                                          └─ eg: --ignoreAttachments mp4,pdf // 忽略后缀名mp4,pdf的附件
                                          └─ eg: --ignoreAttachments // 忽略所有附件 (默认值: false)
    -k, --key <key>                      语雀的cookie key, 默认是 "_yuque_session" 在某些企业版本中 key 不一样
    -t, --token <token>                  语雀的cookie key 对应的值
    -p, --password <password>            公开密码访问的知识库/文档密码
    --toc                                是否输出文档toc目录 (默认值: false)
    --incremental                        开启增量下载[初次下载加不加该参数没区别] (默认值: false)
    --convertMarkdownVideoLinks          转化markdown视频链接为video标签 (默认值: false)
    --hideFooter                         是否禁用页脚显示[更新时间、原文地址...] (默认值: false)
    -h, --help                           显示帮助信息
    -v, --version                        显示当前版本
Start

下载整个知识库

# url 为对应需要的知识库地址
yuque-dl "https://www.yuque.com/yuque/thyzgp"

下载知识库中指定文档

# 下载单个文档
yuque-dl doc "https://www.yuque.com/yuque/thyzgp/repository"

# 下载多个文档
yuque-dl doc "https://www.yuque.com/yuque/thyzgp/repository" "https://www.yuque.com/yuque/thyzgp/gbdfpb"
多知识库下载

下载当前账号的所有知识库

# 需要提供登录token,自动枚举并下载所有知识库
yuque-dl user -t "your_yuque_session_token"

# 指定输出目录
yuque-dl user -t "token" -d ./my-yuque-backup

必须带 -t 指定token

批量下载多个知识库

# 指定多个知识库URL批量下载
yuque-dl batch "https://www.yuque.com/yuque/eaghk3" "https://www.yuque.com/yuque/rdglqp"

# 搭配其他选项
yuque-dl batch "url1" "url2" -t "token" -d ./backup --hideFooter

Example

demo

其他场景

私有知识库

通过别人私有知识库 分享的链接,需使用-t添加token才能下载

yuque-dl "https://www.yuque.com/yuque/thyzgp" -t "abcd..."

token的获取请看

企业私有服务

企业服务有自己的域名(黄色语雀logo),非yuque.com结尾, 如https://yuque.antfin.com/r/zone

这种情况 token的key不唯一, 不一定是为_yuque_session 需用户使用 -k 指定 token的key,-t 指定 token的值。

至于key具体是什么只能靠用户自己在 浏览器Devtools-> Application -> Cookies 里找了

公开密码访问的知识库

下载"公开密码访问的知识库" 前提是需要知道别人设置的密码,输入密码后拿cookie进行下载,无法做到破解密码, 请须知

public_pwd

现有两种方式下载公开密码访问的知识库

通过密码
yuque-dl "url" -p "知识库密码"
通过cookie

通过cookie公开密码访问的知识库两种情况:

  • 已经登录语雀,访问需要密码的知识库 输入密码后使用_yuque_session这个cookie

    yuque-dl "url" -t "_yuque_session的值"
  • 未登录语雀,访问需要密码的知识库 输入密码后需要使用verified_books/verified_docs这个cookie

    yuque-dl "url" -k "verified_books" -t "verified_books的值"

内置启动web服务可快速预览

使用vitepress快速启动一个web服务提供可预览下载的内容

yuque-dl server ./download/知识库/

  Local:   http://localhost:5173/
  Network: use --host to expose

server

Feature

  • 支持下载中断继续
  • 支持图片下载本地
  • 支持下载分享私有的知识库
  • 支持转换表格类型的文档 (ps: 表格内插入图表暂不支持)
  • 添加toc目录功能
  • 添加测试
  • 添加附件下载
  • 支持下载单个或多个指定文档
  • 支持一键下载当前账号的所有知识库
  • 支持批量下载多个指定知识库
  • 支持其他文档类型?
  • 直接打包成可执行文件

常见错误

  1. 由于token可能含有 特殊字符导致参数识别错误
yuque-dl "https://www.yuque.com/yuque/thyzgp" -t "-a123"
yuque-dl [ERROR]: Unknown option `-1`

解决方案

yuque-dl "https://www.yuque.com/yuque/thyzgp" -t="-a123"
  1. 附件下载失败,需设置登录token

附件文件下载需要用户登录token,即使是完全公开的知识库,下载附件也可能需要

完全公开的知识库未登录的情况下查看附件:

attachments

Tips

由于网络波动下载失败的,重新运行即可,已下载的进度不会受到影响

Keywords