Internet Archive Scraper - Books, Audio, Film & Web
Pricing
from $1.94 / 1,000 items
Internet Archive Scraper - Books, Audio, Film & Web
Search archive.org for books, audio, film, software and archived web items, by keyword or Lucene query. Each row holds the identifier, title, creator, year, media type, download count, subject tags, description and link. Uploaders write the metadata, so gaps are common. $2.00 per 1,000 items.
Pricing
from $1.94 / 1,000 items
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Search archive.org for books, audio, film, software and more, and get the results as rows: the identifier, the title, the creator, the year, the download count, the subject tags, a description and the link. Filter to one media type, and sort by downloads, by date or by what was added most recently.
The metadata is written by whoever uploaded the item, so it is uneven. Plenty of items have no creator, no year and no description, and that is the archive rather than a gap here.
| Input | Search keywords, or an archive.org Lucene query |
| Output | One row per archive.org item: identifier, title, creator, year and date, media type, downloads, subjects, description, date added, link |
| Ceiling | 10,000 items per run |
| Account needed | None, and no API key |
| Price | $2.00 per 1,000 items on the Free plan, a little less on paid plans. The free plan's $5 a month covers about 2,500 |
🔍 What Internet Archive Scraper does
Plain keywords work. So does the archive's own query syntax, which is worth knowing if you are doing
anything precise: title:(grateful dead) AND year:[1977 TO 1980] does what it looks like it does.
Pick a media type to stay inside books, audio, film, software, images, archived web pages, datasets or collections, or leave it empty and get everything. Sorting is by downloads, by the item's own date, by when it was added to the archive, or by the archive's relevance ranking.
The run pages a hundred at a time until it has the number of unique items you asked for or the result set runs out.
📋 What data you get from each archive.org item
| What you get | Field |
|---|---|
| The archive's permanent key for the item, and its page | identifier, url |
| Title and creator | title, creator |
| The item's own year and date | year, date |
| What kind of item it is | mediaType |
| How often it has been downloaded | downloads |
| The uploader's subject tags | subjects |
| The start of the uploader's description | description |
| When it was added to archive.org | publicdate |
▶️ How to scrape the Internet Archive
- Open Internet Archive Scraper and click Try for free.
- Type keywords into Search query, or paste an archive.org query if you have one.
- Pick a Media type unless you want everything.
- Set Max items, choose a Sort by, then click Start.
- Download the dataset as JSON, CSV or Excel, or read it from the Apify API.
💰 How much does it cost to scrape the Internet Archive?
$2.00 per 1,000 items on the Free plan. Paid plans pay a little less: $1.98 on Starter, $1.96 on Scale and $1.94 on Business. On the free plan, the $5 Apify gives you each month covers about 2,500 items.
You pay per item delivered. Items that appear twice across pages are dropped before they are counted, diagnostic rows are not charged, and a search that matches nothing is not charged. Set a maximum cost on the run and it stops when it gets there.
📥 What you give it
{"query": "title:(apollo 11) AND year:[1969 TO 1972]","mediaType": "movies","sort": "downloads","maxItems": 500}
| Field | Default | What it is |
|---|---|---|
query | none, the form starts with nasa apollo | Keywords, or an archive.org Lucene query. Required. |
mediaType | any | texts, audio, movies, software, image, web, data or collection. Empty means any. |
sort | downloads | downloads, date for the item's own date, publicdate for recently added, or relevance. |
maxItems | 100 | How many unique items to return, up to 10,000. |
notionConnector | none | Optional. Writes each item into your Notion once the run finishes. |
notionParentId | none | Optional. The Notion data source to write into. |
proxyConfiguration | off | Optional network settings. Off by default, and a normal run does not need it. |
An OR covers your whole query. When you pick a media type, a query with an OR in it is
bracketed before the type is added, so jazz OR blues with audio returns jazz and blues
recordings, all of them audio.
📤 What you get back
A real row from a run on 2 October 2026, for nasa apollo sorted by downloads, with the description
cut short:
{"ok": true,"identifier": "Apollo1116mmOnboardFilm","title": "APOLLO 11 16MM ONBOARD FILM","creator": "NASA/Johnson Space Center","year": "1969","date": "1969-01-01T00:00:00Z","mediaType": "movies","downloads": 301031,"subjects": ["What -- Apollo 11", "space", "nasa", "Apollo 11", "16MM"],"description": "Film taken includes scenes taken out Lunar Module (LM) window documenting lunar surface Extravehicular Activity (EVA) and LM ascent ...","publicdate": "2009-05-30T00:41:55Z","url": "https://archive.org/details/Apollo1116mmOnboardFilm"}
Three of the four rows above it in that same run were collections such as apolloaudiocollection,
with creator, year, date, subjects and description all empty. That is what the archive's
shelves usually look like.
| Field | How to read it |
|---|---|
identifier | The archive's permanent key for the item, and the part of the URL that matters. Use it to dedupe and to fetch the item's files elsewhere. |
creator, year, date | null whenever the uploader left them blank, which is often. year is text, as the archive stores it. |
mediaType | Which kind of item it is. collection means a container of other items, not a single thing you can play or read. |
downloads | The archive's count, and 0 when the field was missing altogether. |
subjects | The uploader's tags, as an array. Frequently empty. |
description | The first 500 characters as the uploader wrote it, HTML and all, so strip it before displaying it. |
publicdate | When the item was added to archive.org, which is not the same as when it was made. |
🧾 Reading the output
Two kinds of row land in your dataset, and ok tells them apart.
| Row | How to spot it | Billed |
|---|---|---|
| An item | ok: true and an identifier | yes |
| A diagnostic | ok: false and an errorCode | no |
The overview table in the Apify Console shows the item columns only, so a diagnostic row looks blank there. Switch to the JSON or All fields view to read it.
| Code | What it means |
|---|---|
BAD_INPUT | No query, or a media type that is not one of the listed values. |
NO_RESULTS | The search worked and nothing matched. The numFound field on the row shows the archive's own count. |
RATE_LIMITED | archive.org asked for a slower pace than the run could keep. Try a smaller run. |
SERVER_ERROR | archive.org answered with a server error. Usually passes. |
NOT_SERVED | This request was not served this run. Re-run it later. Until 12 October 2026 this code was called BLOCKED. |
NETWORK | archive.org was unreachable, or answered with something that was not the data it promised. The details field says which. |
TIME_LIMIT | The run got close to its time limit and stopped on its own. The items delivered before that are complete and charged. Give the run more time, or ask for fewer items, to get the rest. |
A run that ends on one of these rows still finishes as succeeded, except one: when the time limit
stopped the run before any item came back, it ends as failed, with a TIME_LIMIT row saying so.
💡 What people use it for
- Finding the archived recordings of a band or a broadcaster, sorted by what people actually play.
- Building a reading list of public domain books on a subject, with the identifiers to fetch them.
- Tracking what a collection has gained recently, with
sortonpublicdateand a schedule. - Handing a model a list of source material with links, rather than a page of search results.
🚧 What it does not do
- Metadata and a link, never the files. No books, audio, video or page captures are downloaded.
- It does not read Wayback Machine snapshots. Archived sites appear as items under the
webmedia type, not as captures of a URL on a given date. - Uploader metadata is patchy. Missing creators, years and descriptions are normal.
downloadscannot tell you zero from missing. Both read0.- Collections are containers. A
collectionrow is a shelf, not an item, and it shows up whenever you leave the media type empty. descriptionkeeps the uploader's HTML and stops at 500 characters, which can cut mid-tag.- 10,000 items per run, and archive.org's own result set can end sooner.
- No file lists, sizes or formats. Take the
identifierto the archive's item page for those. - It is not an official tool of the Internet Archive. Dami's Studio is independent and is not affiliated with or endorsed by the Internet Archive, or by any other company named on this page.
🧭 Which reference scraper do you need?
| If you want | Use |
|---|---|
| Wikipedia search results or article text | Wikipedia Scraper |
| Wikidata Q-ids, aliases and claims, by name or by ID | Wikidata Scraper |
| Book metadata by keyword, title or ISBN | Books Scraper |
| Goodreads ratings and rating counts from a book search | Goodreads Books Scraper |
| Books, audio, film and software held on archive.org | This one |
| Papers with readable abstracts and citation counts | OpenAlex Scraper |
| Wikipedia, arXiv and OpenAlex searches as tools for an AI agent | Research MCP Server |
❓ Questions people ask
Do I need an archive.org account?
No. This reads the public search that anyone can use.
Can I download the books or the audio?
Not from this actor. Take the identifier from each row and fetch the item's files from archive.org
directly.
Why do some rows have no creator or year?
Because nobody typed them in when the item was uploaded. The archive accepts what it is given.
Can I use the archive's advanced query syntax?
Yes, the query goes through as written. Field searches and date ranges both work.
Can I call it from code or connect it to an AI assistant?
Yes. The API tab has ready-made
code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect
https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/internet-archive-scraper. Either way
the run happens on your Apify account at the same price.
Is scraping the Internet Archive legal?
The search index is public. What you may then do with a given item depends on that item's own rights, which vary enormously across the archive. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Send the run ID and the query you used. The errorCode on
the diagnostic row usually names the problem on its own.