← 返回 Skills 市场
64
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install book-library-scanner
功能描述
扫描本地电子书库,自动提取元数据、分类整理、联网搜索书籍简介,生成Obsidian笔记的完整工作流。支持EPUB/MOBI/AZW3/PDF格式。
使用说明 (SKILL.md)
Book Library Scanner - 书库扫描入库技能
将本地电子书库扫描、分类整理、搜索简介、导入Obsidian的完整工作流。
触发场景
当用户提到以下需求时使用此技能:
- 扫描电子书库、整理书库
- 给书籍补充简介、搜索书籍信息
- 导入Obsidian、建立书库目录
- book library, scan books, organize ebooks
工作流程
1. 扫描书库目录
# 扫描指定目录,提取epub/mobi/azw3/pdf格式的书籍元数据
# 支持读取书名、作者、分类等信息
关键函数:
scan_book_directory(book_dir)- 扫描书库目录extract_metadata(filepath)- 提取单本书的元数据
2. 分类整理
分类规则:
- 根据书名/作者中的国家标注分类:如"(美)"、"(德)"、"(英)"、"(法)"等
- 默认分类:文学、历史、心理学、哲学、经济、科学技术、其他
- 目录结构:
分类/国家/作者/书名.md
3. 搜索书籍简介
API调用: 使用元宝搜索API搜索书籍简介,每个请求间隔2秒避免限流。
Windows编码处理:
- PowerShell子进程传中文参数时,用UTF-8编码
- Python读取输出时用
decode('utf-8', errors='ignore')
4. 生成Obsidian笔记
每本书生成一个Markdown文件,包含:
- 书名、作者、分类、国家、格式
- 内容简介(从网络搜索获取)
- 来源链接
配置参数
| 参数 | 说明 | 默认值 |
|---|---|---|
book_dir |
书库源目录 | 必填 |
output_dir |
输出目录 | Required |
batch_size |
每批处理数量 | 500 |
delay_seconds |
API请求间隔 | 2 |
save_every |
每...本保存一次 | 100 |
文件结构
书库/
├── 书库索引.json # 主索引(含全部书籍信息)
├── 书库总目录.md # 总览文档
├── 文学/ # 分类文件夹
│ ├── 中国/ # 国家文件夹
│ │ ├── 鲁迅/ # 作者文件夹
│ │ │ ├── 呐喊.md
│ │ │ └── ...
│ └── ...
└── ...
索引文件格式
{
"version": "1.0",
"scan_date": "2026-04-18",
"books": [
{
"title": "书名",
"author": "作者",
"category": "文学",
"country": "中国",
"format": "EPUB",
"filename": "原文件名.epub",
"filepath": "原文件路径",
"introduction": "内容简介",
"intro_source": "来源URL"
}
]
}
技术要点
Windows编码问题
Python调用PowerShell传递中文参数时:
result = subprocess.run(
['powershell', '-File', script_path, '-Keyword', keyword],
capture_output=True,
timeout=30
)
output = result.stdout.decode('utf-8', errors='ignore').strip()
文件名安全处理
import re
safe_name = re.sub(r'[\x3C>:"/\\|?*]', '', original_name)[:50]
批量处理检查点
每批完成后保存进度,支持断点续传:
checkpoint = {
'last_batch': batch_num,
'total_found': found_count,
'last_index': last_processed_index,
'timestamp': datetime.now().isoformat()
}
已知问题
-
拼音书名:部分书籍元数据提取失败时,会使用文件夹拼音名作为书名。需要后续人工处理或更复杂的转换逻辑。
-
搜索成功率:后续批次的搜索成功率可能下降(80-99%),因为冷门书籍的搜索结果较少。
-
API限流:每请求间隔2秒,批量处理时需要较长时间(每500本约35-45分钟)。
示例用法
用户: 帮我扫描 D:\LWbook 书库,整理后导入 Obsidian
执行步骤:
1. 扫描 D:\LWbook 目录
2. 提取书籍元数据
3. 按分类→国家→作者整理
4. 搜索每本书的简介
5. 生成 Obsidian Markdown 笔记
6. 建立索引文件
相关文件
scripts/book_scanner.py- 书库扫描脚本scripts/batch_search.py- 批量搜索简介脚本scripts/generate_notes.py- 生成Obsidian笔记脚本scripts/search_book.ps1- PowerShell搜索封装
安全使用建议
该技能大体上做它声称的事:扫描本地书库、提取元数据并生成 Obsidian 笔记。但在安装/运行前请注意并采取以下步骤:
- 检查缺失文件:清单和说明中提到 scripts/search_book.ps1,但发布包里没有该文件;如果你需要网络搜索简介,作者应该提供该脚本或说明如何安全配置。不要运行来自不可信来源的 PowerShell 脚本。
- 审查外部脚本:batch_search.py 会通过 subprocess 调用 PowerShell 并传入书名参数。任何被调用的 PowerShell 脚本都可能将这些参数或其他信息发送到网络端点,务必先打开并审查 search_book.ps1 的实现和目标 URL 或 API 调用。
- 依赖项确认:extract_pdf_metadata 导入 fitz (PyMuPDF) 但包未列在说明中。若系统上未安装该库,PDF 元数据提取会失败;安装前请确认并仅从可信来源安装依赖。
- 最小权限与目录选择:脚本会递归读取你指定的书库目录并写入输出目录。仅对不含敏感/私人文件的目录运行,或在隔离环境(虚拟机、容器)中先行测试。
- 备份与试运行:在对真实 Obsidian 笔记目录运行前备份目标目录,或先在临时目录做一次完整运行以确认输出符合预期。
如果作者能提供缺失的 search_book.ps1、声明必要的 Python 依赖并说明 search API 的具体端点/认证需求,能显著提高可信度。当前有这些不一致,建议在审查并确认外部脚本安全之前将此技能视为“可用但需谨慎”。
功能分析
Type: OpenClaw Skill
Name: book-library-scanner
Version: 1.0.0
The skill bundle provides a legitimate workflow for scanning local ebook libraries (EPUB, PDF), extracting metadata, and generating Obsidian notes. It includes scripts for batch searching book descriptions via an external API and organizing files into a structured directory. The code demonstrates good practices such as filename sanitization using regex in `generate_notes.py` and safe subprocess execution in `batch_search.py`. No evidence of data exfiltration, malicious persistence, or prompt injection was found.
能力评估
Purpose & Capability
技能声称扫描本地书库、抓取简介并生成 Obsidian 笔记;提供的 Python 脚本基本实现了扫描、分类和笔记生成,功能与描述一致。不过存在不一致:SKILL.md 和代码引用了一个名为 search_book.ps1 的 PowerShell 搜索封装脚本,但该 .ps1 文件并未包含在清单中;此外代码中对 PyMuPDF (fitz) 的导入用于 PDF 元数据提取,但没有在元数据或安装说明中声明该依赖。
Instruction Scope
核心运行流程会遍历并读取用户指定的目录下所有 .epub/.mobi/.azw3/.pdf 文件并写入索引与 Markdown 文件——这与用途相符。但 batch_search.py 使用 subprocess.run 调用外部 PowerShell 脚本(search_book.ps1),该脚本会执行“联网搜索简介”的逻辑;因为 search_book.ps1 未提供,无法确认其网络行为与目标站点。通过 subprocess 向 PowerShell 传入书名参数的做法允许外部脚本决定如何处理或传输这些参数(可能造成数据外发),所以必须审查该 PowerShell 脚本或仅在可信环境下运行。
Install Mechanism
这是 instruction-plus-scripts 的无安装规格包(不自动下载或写入新二进制),所以安装风险较低。但脚本依赖未声明:extract_pdf_metadata 导入 fitz (PyMuPDF),实际运行需要用户预装该包。缺少 search_book.ps1 也意味着用户或调用者可能要提供自定义脚本——这会改变安全边界。
Credentials
技能不要求任何环境变量或凭证,且不访问系统级配置路径,这与其本地文件处理目的相称。唯一需要注意的是,如果提供或使用 search_book.ps1,它可能需要网络或 API Key(未声明);在提供该脚本或将其取自不可信来源前,应确认是否需要凭证并评估其用途。
Persistence & Privilege
技能未请求始终驻留或修改其他技能/系统配置;默认的自治调用设置保持为平台默认,且脚本仅在用户调用时对指定目录读写索引和笔记,权限范围与描述相符。
如何使用
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install book-library-scanner - 安装完成后,直接呼叫该 Skill 的名称或使用
/book-library-scanner触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial release with a comprehensive e-book library scanning and note-generation workflow.
简介: 扫描电子书库、自动分类、搜索简介、生成Obsidian笔记
- Scans local libraries for EPUB/MOBI/AZW3/PDF files and extracts metadata.
- Automatically organizes books by category, country, and author for Obsidian import.
- Fetches book introductions online and includes them in generated Markdown notes.
- Supports batch processing, checkpointing, and customizable parameters.
- Handles Windows encoding issues and ensures safe filenames.
- Generates structured index files and Obsidian-ready directory layouts.
元数据
常见问题
书库扫描入库 是什么?
扫描本地电子书库,自动提取元数据、分类整理、联网搜索书籍简介,生成Obsidian笔记的完整工作流。支持EPUB/MOBI/AZW3/PDF格式。 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 64 次。
如何安装 书库扫描入库?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install book-library-scanner」即可一键安装,无需额外配置。
书库扫描入库 是免费的吗?
是的,书库扫描入库 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
书库扫描入库 支持哪些平台?
书库扫描入库 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 书库扫描入库?
由 fatblue(@fatblue)开发并维护,当前版本 v1.0.0。
推荐 Skills