Internet Archive Scraper - Books, Audio, Film & Web avatar

Internet Archive Scraper - Books, Audio, Film & Web

Pricing

$2.00 / 1,000 item returneds

Go to Apify Store
Internet Archive Scraper - Books, Audio, Film & Web

Internet Archive Scraper - Books, Audio, Film & Web

Whoever uploaded an archive.org item wrote its metadata, which is why a dated radio broadcast can arrive with no creator. Query by keyword or in Lucene, filter by media type, sort. Rows carry identifier, title, creator, year, downloads, subjects, URL. $2.00 per 1,000 items.

Pricing

$2.00 / 1,000 item returneds

Rating

5.0

(1)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Share

Internet Archive Scraper

Every item on archive.org was catalogued by whoever uploaded it, which is why a radio broadcast can carry an exact date and no creator at all. This runs a query against archive.org's own advancedsearch endpoint and writes what comes back, one row per item: identifier, title, creator, year, media type, download count, subject tags, description and a direct item URL. You can pin the search to one media type and pick the sort order.

That endpoint is public, so there's no login and no key to get.

What you get

{
"identifier": "apolloaudiocollection",
"title": "Apollo",
"creator": null,
"year": null,
"date": null,
"mediaType": "collection",
"downloads": 1259223,
"subjects": [],
"description": null,
"publicdate": "2010-12-06T19:02:28Z",
"url": "https://archive.org/details/apolloaudiocollection"
}

That's a real row, nulls and all. Uploader-supplied metadata is patchy, and that is the thing to know before you build anything on top of this.

identifier is the archive's primary key. If you're going to download the files afterwards, that's the field you need: https://archive.org/download/<identifier> lists everything in the item.

Input

{
"query": "nasa apollo",
"mediaType": "movies",
"sort": "downloads",
"maxItems": 500
}

The query field takes the Lucene syntax archive.org itself uses:

{
"query": "title:(grateful dead) AND year:[1977 TO 1980]",
"mediaType": "audio",
"sort": "date",
"maxItems": 1000
}
  • query — required. Plain keywords or Lucene operators.
  • mediaTypetexts, audio, movies, software, image, web, data, collection, or empty for any.
  • sortdownloads (default, most-downloaded first), date (newest item date), publicdate (most recently added to archive.org), or relevance.
  • maxItems — default 100, ceiling 10,000. The actor pages 100 per request until it has that many or the result set runs out.

Optionally write each item into Notion with notionConnector.

Limits

Metadata is uploader-supplied, so fields are often null. creator, year, date, description and subjects depend entirely on whoever uploaded the item bothering to fill them in. Collections and older uploads are the worst for this. Don't build a pipeline that assumes year exists.

mediaType: "collection" returns collections, not their contents. A collection is a container. If you search without a media type filter you'll get collections mixed in with items, as in the row above. Filter by media type if you want actual books or recordings.

This searches and returns metadata. It does not download files. Use identifier against archive.org's own download paths for that.

10,000 items per run. Deep pagination is also slow: archive.org's search endpoint gets sluggish once you're thousands of rows into a result set.

Proxy

Off by default, which saves you proxy credits. The advancedsearch API is public, needs no auth and has no anti-bot, so there's nothing for a proxy to solve. Enable Apify Proxy only if you're running very high volume and hitting IP rate limits.

Billing

$2.00 per 1,000 items, and there is no run-start fee.

You pay per item row delivered. A query that matches nothing costs nothing.