Files changed: engine/.embcache.json engine/changelog.md engine/lint-report.md vault/.trash/2026-06-19.md vault/docs/hardware/environment.md vault/docs/hardware/ip-allocation.md vault/docs/matrix/archivist.md vault/docs/matrix/matrix_host.md vault/docs/matrix/mautrix_signal.md vault/docs/matrix/synapse.md vault/docs/matrix/synapse_retention_discovery.md vault/docs/navi/cc-rules.md vault/docs/navi/deployment.md vault/docs/navi/themes.md vault/docs/services/ots-setup.md vault/docs/services/services.md vault/docs/services/usenet.md vault/docs/software/authentik.md vault/docs/software/caddy.md vault/docs/software/central.md vault/docs/software/dns.md vault/docs/software/geo-tools.md vault/docs/software/navi.md vault/docs/software/recon.md vault/docs/software/searxng.md vault/glossary.md vault/notes/echo6-landing-page-data-export.md vault/notes/ia-download-queue.md vault/projects/advbbs-project.md vault/projects/argus.md vault/projects/deploy-livesync.md vault/projects/fleet-patch-audit.md vault/projects/fleet-platform-baseline.md vault/projects/matrix-synapse-deployment.md vault/projects/meshai-config-hot-apply.md vault/projects/meshai-region-routing-plan.md vault/projects/meshai.md vault/projects/meshcore-transport.md vault/projects/meshtastic-headscale-runbook.md vault/projects/mmud-project.md vault/projects/nominatim-v5-reimport.md vault/runbooks/add-peertube-channel.md vault/runbooks/authentik-access-groups.md vault/runbooks/authentik-create-invitation.md vault/runbooks/authentik-oidc-application.md vault/runbooks/authentik-upgrade.md vault/runbooks/central-deploy-cutover.md vault/runbooks/ct-runbook.md vault/runbooks/edge2-access-reference.md vault/runbooks/expose-service-contabo.md vault/runbooks/expose-service-edge2.md vault/runbooks/expose-service-home.md vault/runbooks/fleet-magicdns-resolved-migration.md vault/runbooks/headless-browser-page-verification.md vault/runbooks/headscale-oidc-boot-order.md vault/runbooks/headscale-onboard-node.md vault/runbooks/ia-cli-reference.md vault/runbooks/ia-download-mirror.md vault/runbooks/idahomesh-bridge-setup.md vault/runbooks/idahomesh-vpn-device-setup.md vault/runbooks/lxc-service-migration.md vault/runbooks/mailcow-create-mailbox.md vault/runbooks/meshai-prod-compose-override.md vault/runbooks/meshmonitor-password-reset.md vault/runbooks/meshtastic-sidecar-node.md vault/runbooks/meshtasticd-sim-nodes-runbook.md vault/runbooks/nordvpn-lxc.md vault/runbooks/peertube-remote-runner.md vault/runbooks/pg-backup.md vault/runbooks/pi-nas-omv-runbook.md vault/runbooks/pipeline-patterns.md vault/runbooks/proxmox-create-ubuntu-vm.md vault/runbooks/proxmox-onboard-node.md vault/runbooks/pymc-repeater-kiss-tnc-reenumeration.md vault/runbooks/recon-operations.md vault/runbooks/recon-service-integration.md vault/runbooks/syncthing-add-node.md vault/runbooks/toc-cortex-pve9.2-update.md vault/session-resume/SESSION-HANDOFF-meshai-test.md
314 lines
7.1 KiB
Markdown
314 lines
7.1 KiB
Markdown
---
|
|
title: Internet Archive CLI Reference
|
|
type: runbook
|
|
tags:
|
|
- media
|
|
aliases: []
|
|
related:
|
|
- [[ia-download-mirror]]
|
|
- [[ia-download-queue]]
|
|
- [[idahomesh-vpn-device-setup]]
|
|
- [[archivist]]
|
|
- [[usenet]]
|
|
updated: 2026-07-13
|
|
---
|
|
# Internet Archive CLI Reference
|
|
|
|
Quick reference for the `ia` command-line tool on pi-nas.
|
|
|
|
---
|
|
|
|
## Location & Setup
|
|
|
|
| Detail | Value |
|
|
|--------|-------|
|
|
| Host | pi-nas (192.168.1.245 / 100.64.0.21) |
|
|
| Binary | `ia` (v5.7.2, pip-installed) |
|
|
| Config | `~/.config/internetarchive/ia.ini` |
|
|
|
|
---
|
|
|
|
## 1. Configure / Authenticate
|
|
|
|
Required for uploads, metadata edits, and accessing restricted items. Not required for public downloads or searches.
|
|
|
|
```bash
|
|
ia configure
|
|
# Prompts for archive.org email + password
|
|
# Stores credentials in ~/.config/internetarchive/ia.ini
|
|
```
|
|
|
|
Verify:
|
|
|
|
```bash
|
|
ia configure --help # Should show options without errors
|
|
```
|
|
|
|
---
|
|
|
|
## 2. Search
|
|
|
|
Search the archive.org catalog. Returns JSON by default.
|
|
|
|
### Basic syntax
|
|
|
|
```bash
|
|
ia search '<query>'
|
|
```
|
|
|
|
### Query syntax
|
|
|
|
Queries use Lucene syntax. Combine fields with AND/OR, quote phrases.
|
|
|
|
| Field | Example | Notes |
|
|
|-------|---------|-------|
|
|
| `collection` | `collection:prelinger` | Items in a specific collection |
|
|
| `subject` | `subject:"ham radio"` | Subject/tag match |
|
|
| `mediatype` | `mediatype:texts` | texts, movies, audio, software, image, data, web, collection |
|
|
| `creator` | `creator:"ARRL"` | Author/creator |
|
|
| `title` | `title:"emergency"` | Item title |
|
|
| `date` | `date:[2020-01-01 TO 2024-12-31]` | Date range (YYYY-MM-DD) |
|
|
| `year` | `year:2023` | Shorthand for year |
|
|
| `language` | `language:eng` | ISO language code |
|
|
| `licenseurl` | `licenseurl:*creativecommons*` | License filter |
|
|
|
|
### Combined queries
|
|
|
|
```bash
|
|
# PDFs about ham radio published after 2020
|
|
ia search 'subject:"ham radio" mediatype:texts date:[2020-01-01 TO 2099-12-31]'
|
|
|
|
# All items in a specific collection
|
|
ia search 'collection:prelinger'
|
|
|
|
# Creator + mediatype
|
|
ia search 'creator:"ARRL" AND mediatype:texts'
|
|
```
|
|
|
|
### Output options
|
|
|
|
```bash
|
|
# Default: JSON objects, one per line
|
|
ia search 'collection:prelinger'
|
|
|
|
# Itemlist mode — outputs only identifiers, one per line
|
|
# Pipe this to ia download --itemlist
|
|
ia search 'collection:prelinger' --itemlist
|
|
|
|
# Save itemlist to file
|
|
ia search 'collection:prelinger' --itemlist > prelinger-items.txt
|
|
|
|
# Limit results with parameters
|
|
ia search 'subject:radio' --parameters='rows=50'
|
|
|
|
# Count results without downloading them all
|
|
ia search 'collection:prelinger' --num-found
|
|
```
|
|
|
|
### Practical examples
|
|
|
|
```bash
|
|
# Find all items in a collection and count them
|
|
ia search 'collection:arrl_qst' --num-found
|
|
|
|
# Get identifiers for bulk download
|
|
ia search 'collection:arrl_qst' --itemlist > arrl-items.txt
|
|
|
|
# Search within a collection for specific subjects
|
|
ia search 'collection:prelinger subject:"san francisco"' --itemlist
|
|
|
|
# Find audio recordings by a specific creator
|
|
ia search 'creator:"Grateful Dead" mediatype:audio' --itemlist
|
|
|
|
# Search for items with specific file formats available
|
|
ia search 'collection:librivoxaudio format:"64Kbps MP3"' --itemlist
|
|
```
|
|
|
|
---
|
|
|
|
## 3. List Item Contents
|
|
|
|
View files within an item without downloading.
|
|
|
|
```bash
|
|
# List all files in an item
|
|
ia list <identifier>
|
|
|
|
# Example
|
|
ia list prelinger_films
|
|
```
|
|
|
|
Output shows filenames, sizes, and formats.
|
|
|
|
---
|
|
|
|
## 4. Metadata
|
|
|
|
View and modify item metadata.
|
|
|
|
### Read metadata
|
|
|
|
```bash
|
|
# Full metadata as JSON
|
|
ia metadata <identifier>
|
|
|
|
# Pretty-print with jq
|
|
ia metadata <identifier> | jq .
|
|
|
|
# Get specific fields
|
|
ia metadata <identifier> | jq '.metadata.title'
|
|
ia metadata <identifier> | jq '.metadata.subject'
|
|
ia metadata <identifier> | jq '.metadata.collection'
|
|
|
|
# List available formats for an item
|
|
ia metadata <identifier> --formats
|
|
```
|
|
|
|
### Modify metadata (requires authentication)
|
|
|
|
```bash
|
|
# Set a field
|
|
ia metadata <identifier> --modify="description:Updated description"
|
|
|
|
# Remove a field
|
|
ia metadata <identifier> --modify="subject:REMOVE_TAG"
|
|
|
|
# Append to existing value
|
|
ia metadata <identifier> --append="subject:new-tag"
|
|
|
|
# Add to array field
|
|
ia metadata <identifier> --append-list="collection:another-collection"
|
|
|
|
# Bulk modify from CSV (must have 'identifier' column)
|
|
ia metadata --spreadsheet=metadata.csv
|
|
```
|
|
|
|
---
|
|
|
|
## 5. Upload (requires authentication)
|
|
|
|
```bash
|
|
# Upload files to a new or existing item
|
|
ia upload <identifier> file1.pdf file2.pdf \
|
|
--metadata="mediatype:texts" \
|
|
--metadata="title:My Upload" \
|
|
--metadata="subject:test"
|
|
|
|
# Upload from stdin
|
|
curl -sL https://example.com/file.pdf | \
|
|
ia upload <identifier> - --remote-name=file.pdf
|
|
|
|
# Retry on failure
|
|
ia upload <identifier> largefile.zip --retries 10
|
|
|
|
# Bulk upload from CSV (requires 'identifier' and 'file' columns)
|
|
ia upload --spreadsheet=uploads.csv
|
|
```
|
|
|
|
**Important:** `mediatype` cannot be changed after initial upload.
|
|
|
|
---
|
|
|
|
## 6. Delete (requires authentication)
|
|
|
|
```bash
|
|
# Delete a specific file
|
|
ia delete <identifier> filename.pdf
|
|
|
|
# Delete file and all its derivatives
|
|
ia delete <identifier> filename.pdf --cascade
|
|
|
|
# Delete all files in an item
|
|
ia delete <identifier> --all
|
|
```
|
|
|
|
Deleted files are backed up to `history/files/` automatically.
|
|
|
|
---
|
|
|
|
## 7. Copy / Move
|
|
|
|
```bash
|
|
# Copy a file between items
|
|
ia copy source-item/file.pdf dest-item/file.pdf
|
|
|
|
# Copy with metadata for new items
|
|
ia copy source/file.pdf new-item/file.pdf --metadata="title:Copied Item"
|
|
|
|
# Move (copy + delete source)
|
|
ia move source-item/file.pdf dest-item/file.pdf
|
|
```
|
|
|
|
---
|
|
|
|
## 8. Tasks
|
|
|
|
View catalog processing tasks (derive jobs, uploads in progress, etc.).
|
|
|
|
```bash
|
|
# Tasks for a specific item
|
|
ia tasks <identifier>
|
|
|
|
# All your queued/running tasks
|
|
ia tasks
|
|
```
|
|
|
|
---
|
|
|
|
## Command Quick Reference
|
|
|
|
| Command | Alias | Purpose |
|
|
|---------|-------|---------|
|
|
| `ia configure` | `ia co` | Set up credentials |
|
|
| `ia search` | `ia se` | Search catalog |
|
|
| `ia download` | `ia do` | Download files |
|
|
| `ia list` | `ia ls` | List item files |
|
|
| `ia metadata` | `ia md` | View/edit metadata |
|
|
| `ia upload` | `ia up` | Upload files |
|
|
| `ia delete` | `ia rm` | Delete files |
|
|
| `ia copy` | `ia cp` | Copy between items |
|
|
| `ia move` | `ia mv` | Move between items |
|
|
| `ia tasks` | `ia ta` | View task queue |
|
|
|
|
---
|
|
|
|
## Global Flags
|
|
|
|
| Flag | Short | Purpose |
|
|
|------|-------|---------|
|
|
| `--help` | `-h` | Show help |
|
|
| `--version` | `-v` | Show version |
|
|
| `--config-file FILE` | `-c` | Use alternate config |
|
|
| `--log` | `-l` | Enable logging |
|
|
| `--debug` | `-d` | Verbose debug output |
|
|
| `--insecure` | `-i` | Use HTTP instead of HTTPS |
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
### "You need to be logged in"
|
|
|
|
Run `ia configure` and enter your archive.org credentials. Verify with:
|
|
|
|
```bash
|
|
cat ~/.config/internetarchive/ia.ini
|
|
```
|
|
|
|
### Search returns no results
|
|
|
|
- Check query syntax — field names are case-sensitive
|
|
- Use quotes around multi-word values: `subject:"ham radio"` not `subject:ham radio`
|
|
- Verify the collection/identifier exists: `ia metadata <identifier>`
|
|
|
|
### Slow searches
|
|
|
|
Large collections can take minutes to enumerate. Use `--parameters='rows=100'` to limit during testing, or `--num-found` to just get the count first.
|
|
|
|
### Rate limiting
|
|
|
|
Archive.org may throttle aggressive requests. Space out bulk operations and use `--retries` on downloads.
|
|
|
|
---
|
|
|
|
*Last updated: 2026-02-14*
|