iajs
Version:
Internet Archive JavaScript Client
105 lines (73 loc) • 2.93 kB
Markdown
# iajs
**Internet Archive JavaScript Client which supports reading and writing data in NodeJS and the Browser**
The Internet Archive is a non-profit open platform for archiving the world's free websites, books, movies, software, music, and more.
This JavaScript library enables reading and writing to the Internet Archive APIs in NodeJS **and** in the browser. To learn more about the Internet Archive visit <https://archive.org/about/>.
It's lightweight with very little dependencies.
The major APIs are documented here <https://archive.org/services/docs/api/index.html>, but this library supports additional APIs to enable more functionality. It does not abstract much from the APIs, but rather aggregates access to them all in a single multi-purpose library.
This library contains enough functionality to create powerful experiments and new experiences using the Internet Archive's platform and data.
## Installation
Through npm
```
npm i iajs
```
Load from CDN in browser
```
<script src="https://unpkg.com/iajs/dist/ia.browser.js"></script>
```
## Live demos
<https://rchrd2.github.io/iajs/examples/web/01.html>
## Usage Examples
```
<script src="https://unpkg.com/iajs/dist/ia.browser.js"></script>
<script>
ia.GifcitiesAPI.search("snowglobe").then(console.log);
ia.MetadataAPI.get({
identifier: "mma_the_sphynx_and_great_pyramid_geezeh_271101",
}).then(console.log);
ia.SearchAPI.get({
q: {collection: "metropolitanmuseumofart-gallery"},
fields: ["identifier", "title"]
}).then(console.log);
</script>
```
## Running NodeJS examples
```
npm i
node examples/node/01-hello.js
# this will ask you to sign in and create a login config file for other examples
node examples/node/02-login.js
node examples/node/03-reviews.js
# and so on...
```
## Planned features
- ✅ Read item metadata and list of files (Metadata API)
- ✅ Update item metadata (Metadata API)
- ✅ Search (Search API)
- ✅ Search gifcities.org (GifCities API)
- ✅ Query related item API (Related Items API)
- ✅ Sign in with user/pass (Xauthn API)
- ✅ Sign in with s3 tokens
- ✅ Sign in from archive.org session cookies
- ✅ Add reviews (Reviews API)
- ✅ Add page to Wayback (Save Page Now API)
- ✅ Query the Wayback Machine (CDX and Available APIs)
- ✅ Add/remove/list favorites (bookmarks.php API)
- ✅ Create items (S3 API)
- ✅ Upload item files (S3 API)
- OpenLibrary.org APIs
- BookReaderJSIA aka manifest API
- Book IIIF API
- TV
- Radio
- List reviews by user
- Generate embed codes for books/videos/music files in item
- Include a JSON diff library
- more tbd
## Misc
Note:
I wanted to build this while I worked at Internet Archive, but did not have the bandwidth. Now I'm working on this in my free time.
See Also:
- Official Internet Archive Python Client - https://github.com/jjjake/internetarchive
---
Screenshot of web usage example
