https://github.com/rchrd2/iajs
Internet Archive JavaScript Client which supports reading and writing data in NodeJS and the Browser
https://github.com/rchrd2/iajs
api-client archive-org gificites internet-archive login metadata s3 sdk upload wayback wayback-machine
Last synced: about 1 year ago
JSON representation
Internet Archive JavaScript Client which supports reading and writing data in NodeJS and the Browser
- Host: GitHub
- URL: https://github.com/rchrd2/iajs
- Owner: rchrd2
- License: mit
- Created: 2020-10-31T04:48:43.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-04-26T01:00:54.000Z (about 3 years ago)
- Last Synced: 2024-05-18T04:21:01.003Z (about 2 years ago)
- Topics: api-client, archive-org, gificites, internet-archive, login, metadata, s3, sdk, upload, wayback, wayback-machine
- Language: JavaScript
- Homepage:
- Size: 2.18 MB
- Stars: 23
- Watchers: 3
- Forks: 5
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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 .
It's lightweight with very little dependencies.
The major APIs are documented here , 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
```
```
## Live demos
## Usage Examples
```
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);
```
## 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
