Install
openclaw skills install @grill-glitch/internet-archive搜索、下载、上传并管理 Internet Archive (archive.org) 公开和私有存档项目及其元数据,支持高级查询和文件操作。
openclaw skills install @grill-glitch/internet-archive提供与 Internet Archive (archive.org) 交互的能力:搜索、下载、上传和管理存档内容。
此技能允许你:
ia CLI 工具用户请求与 Internet Archive 相关的操作。
执行具体的 archive.org 操作,返回搜索结果、下载状态、上传确认等信息。
internet-archive.pyreferences/直接调用 Python 脚本:
python3 skills/internet-archive/internet-archive.py <intent> [参数]
check - 检查工具状态检查 ia CLI 是否已安装和配置。
python3 skills/internet-archive/internet-archive.py check
install - 安装 ia CLI自动安装 internetarchive 包(使用 uv/pipx/pip)。
python3 skills/internet-archive/internet-archive.py install
search - 搜索存档搜索 Internet Archive 目录。
# 基本搜索
python3 skills/internet-archive/internet-archive.py search "collection:nasa mediatype:image"
# 仅返回标识符列表
python3 skills/internet-archive/internet-archive.py search "public domain books" --itemlist
# 全文搜索
python3 skills/internet-archive/internet-archive.py search "climate change" --fts
# 排序和字段过滤
python3 skills/internet-archive/internet-archive.py search "mediatype:movies" --sort="downloads desc" --field=title --field=identifier
常用参数:
--itemlist - 仅输出标识符,每行一个--fts - 全文搜索(在文本内容中搜索,而非仅元数据)--sort="field asc|desc" - 排序(如 downloads desc, date asc)--field=<name> - 只返回指定字段(可重复使用)--parameters="rows=20&page=1" - 原始查询参数download - 下载项目文件下载 Internet Archive 项目的文件。
# 下载整个项目
python3 skills/internet-archive/internet-archive.py download <identifier>
# 只下载特定扩展名文件
python3 skills/internet-archive/internet-archive.py download <identifier> --glob="*.pdf"
# 排除某些文件
python3 skills/internet-archive/internet-archive.py download <identifier> --exclude="*low*"
# 下载到指定目录
python3 skills/internet-archive/internet-archive.py download <identifier> --destdir=./downloads
# 预览(不实际下载)
python3 skills/internet-archive/internet-archive.py download <identifier> --dry-run
# 只下载原始文件,跳过衍生物
python3 skills/internet-archive/internet-archive.py download <identifier> --source=original
upload - 上传文件上传文件到你的 Internet Archive 账户(需要认证)。
python3 skills/internet-archive/internet-archive.py upload <identifier> file1.pdf file2.jpg \
--metadata="mediatype:texts" \
--metadata="title:My Document" \
--metadata="creator:Your Name"
# 上传并验证
python3 skills/internet-archive/internet-archive.py upload <id> document.pdf \
--metadata="mediatype:texts" --checksum --verify
# 跳过衍生物生成(更快上传)
python3 skills/internet-archive/internet-archive.py upload <id> video.mp4 \
--metadata="mediatype:movies" --no-derive
必需参数:
<identifier> - 项目标识符(唯一、仅 ASCII 字母数字、连字符)files - 要上传的文件路径列表--metadata="key:value" - 元数据(至少需要 mediatype)可选参数:
--checksum - 使用校验和跳过已上传的文件--verify - 上传后验证数据完整性--no-derive - 跳过自动衍生物生成--retries=N - 重试次数(默认 0)metadata - 查看/修改元数据查看或修改项目元数据。
# 查看完整元数据(JSON 格式)
python3 skills/internet-archive/internet-archive.py metadata <identifier>
# 列出包含的文件格式
python3 skills/internet-archive/internet-archive.py metadata <identifier> --formats
# 修改字段
python3 skills/internet-archive/internet-archive.py metadata <identifier> --modify="title:New Title"
# 添加值到列表字段(如 subjects)
python3 skills/internet-archive/internet-archive.py metadata <identifier> --append-list="subject:new topic"
# 删除字段
python3 skills/internet-archive/internet-archive.py metadata <identifier> --modify="oldfield:REMOVE_TAG"
list - 列出项目文件列出 Internet Archive 项目中的所有文件。
# 列出所有文件
python3 skills/internet-archive/internet-archive.py list <identifier>
# 只显示名称和大小
python3 skills/internet-archive/internet-archive.py list <identifier> --columns=name,size
# 显示完整下载 URL
python3 skills/internet-archive/internet-archive.py list <identifier> --location
# 显示所有文件信息(包含格式、校验和等)
python3 skills/internet-archive/internet-archive.py list <identifier> --all --verbose
上传和修改元数据需要认证。搜索和下载公开项目不需要。
Access Key ID 和 Secret Access Keyia configure
或者,设置环境变量:
export IA_ACCESS_KEY_ID="your-access-key"
export IA_SECRET_ACCESS_KEY="your-secret-key"
配置文件保存在 ~/.config/ia.ini。
验证配置:
ia configure --whoami # 应显示你的用户名
所有请求必须包含明确的 User-Agent。ia CLI 默认包含你的访问密钥。对于自动化工具,建议设置自定义后缀:
ia --user-agent-suffix "OpenClaw/1.0"
或在 ~/.config/ia.ini 中:
[general]
user_agent_suffix = OpenClaw/1.0
这有助于 Internet Archive 跟踪来源并维护服务质量。
如果 ia 命令未找到,此技能会提示安装。支持的安装方式(按顺序尝试):
uv tool install internetarchive(推荐)pipx install internetarchivepip install internetarchive你需要 Python 3.9+ 和 pip/uv/pipx 之一。
archive.org 的基本单位。一个项目是一组相关文件的逻辑集合(一本书、一张专辑、一个数据集等)。每个项目有唯一的标识符。
项目包含:
<identifier>_meta.xml - 项目级元数据<identifier>_files.xml - 文件级元数据项目必须属于一个集合。只有 IA 员工可以创建新集合(通常需要至少 50 个项目)。公开上传集合包括:
opensource_movies, opensource_audio, opensource_mediacommunity_texts, community_video, community_audio上传后,IA 自动生成衍生物(不同格式和分辨率的转换版本):
使用 --no-derive 跳过衍生物生成(更快上传,但内容访问性降低)。
必需字段:identifier, mediatype
推荐字段:title, description, creator, date, subject, collection, language
标识符要求:
test_collection 验证上传(30 天后自动删除)ia metadata <id> 看是否已存在--checksum 支持断点续传--delay 1)--dry-run 预览下载/上传关于日志保护:
BuildConfig.DEBUG 保护所有日志输出Log.d(),生产环境自动静默| 错误 | 解决方案 |
|---|---|
| "not configured" | 运行 ia configure 或设置环境变量 |
| "identifier exists" | 选择其他标识符(不可更改) |
| "permission denied" | 检查 https://archive.org/account/s3.php 的密钥 |
| "network error" | 重试操作,检查网络连接 |
| "429 Too Many Requests" | 速率限制;等待 Retry-After 指定时间 |
| 项目未出现在搜索中 | 通常几分钟内出现;最长 24 小时;检查 ia tasks <identifier> |
ia 命令;确保安装 internetarchive Python 包--checksum 支持断点续传