id = "internetarchive" name = "Internet Archive" homepage = "https://internetarchive.readthedocs.io/en/stable/" description = "A Python and Command-Line Interface to Archive.org." executables = ["ia"] [dotfiles] # Internet Archive's configuration docs list ~/.config/ia.ini and the legacy # ~/.ia fallback (https://internetarchive.readthedocs.io/en/stable/api.html). # Both files contain Archive.org credentials, so neither is syncable content. paths = [] secret = ["~/.config/ia.ini", "~/.ia"] [commands] format = 1 label = "Internet Archive" description = "Download items from archive.org and search for items. Upload, metadata edits, deletion and tasks are outside this form." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false } [[commands.subcommand]] path = ["download"] label = "Download an item" description = "Download a whole item or selected files from archive.org." [[commands.subcommand.source]] id = "docs" kind = "manual" url = "https://internetarchive.readthedocs.io/en/stable/cli.html" revision = "2026-10-27" evidence = """ $ ia download TripDown1905 $ ia download TripDown1905 TripDown1905_512kb.mp4 TripDown1905.ogv $ ia download TripDown1905 --glob="*.mp4" $ ia download TripDown1905 --glob="*.mp4" --exclude "*512kb*" $ ia download TripDown1905 --format='512Kb MPEG4' $ ia download --search 'collection:glasgowschoolofart' $ ia download --itemlist itemlist.txt """ [[commands.subcommand.field]] id = "identifier" label = "Item identifier" type = "string" position = 0 sources = ["docs"] [[commands.subcommand.field]] id = "files" label = "Specific files" description = "Leave empty to download the whole item." type = "string" position = 1 multiple = true sources = ["docs"] [[commands.subcommand.field]] id = "glob" label = "Glob pattern" type = "string" option = ["--glob"] multiple = true sources = ["docs"] [[commands.subcommand.field]] id = "exclude" label = "Exclude pattern" description = "Only valid together with a glob pattern." type = "string" option = ["--exclude"] multiple = true sources = ["docs"] [[commands.subcommand.field]] id = "format" label = "File format" type = "string" option = ["--format"] sources = ["docs"] [[commands.subcommand.field]] id = "search" label = "Download search results" type = "string" option = ["--search"] sources = ["docs"] [[commands.subcommand.field]] id = "itemlist" label = "Item list file" type = "path" path = { kind = "file", role = "input" } option = ["--itemlist"] sources = ["docs"] [[commands.subcommand.task]] id = "item" label = "Download a whole item" fields = ["identifier"] required = ["identifier"] [[commands.subcommand.task]] id = "glob_files" label = "Download files by glob" fields = ["identifier", "glob", "exclude"] required = ["identifier", "glob"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["identifier", "files", "glob", "exclude"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["format", "search", "itemlist"] [[commands.subcommand]] path = ["search"] label = "Search items" description = "Search archive.org and print results as JSON." [[commands.subcommand.source]] id = "docs" kind = "manual" url = "https://internetarchive.readthedocs.io/en/stable/cli.html" revision = "2026-10-27" evidence = """ $ ia search 'subject:"market street" collection:prelinger' $ ia search --parameters="page=1&rows=20" "dogs" $ ia search 'collection:glasgowschoolofart' --itemlist > itemlist.txt """ [[commands.subcommand.field]] id = "query" label = "Query" type = "string" position = 0 min = 1 sources = ["docs"] [[commands.subcommand.field]] id = "parameters" label = "Extra parameters" description = "For example page=1&rows=20." type = "string" option = ["--parameters"] sources = ["docs"] [[commands.subcommand.field]] id = "itemlist" label = "Print identifiers only" type = "boolean" option = ["--itemlist"] sources = ["docs"] [[commands.subcommand.task]] id = "top20" label = "Top 20 results" fields = ["query", "parameters"] required = ["query"] set = { parameters = ["page=1&rows=20"] } [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["query", "parameters", "itemlist"]