Internet Archive Upload Action

April 18, 2026 ยท View on GitHub

latest GitHub release. GitHub stars. GitHub forks. GitHub open issues.

  • This action was originally forked from palewire/internet-archive-upload.
  • It allows you to upload files or directories to the Internet Archive (archive.org) and set metadata for the uploaded items.
  • The action supports uploading single files, multiple files, or entire directories, and it can handle various metadata fields to describe the content being uploaded.

Inputs: (Required)

  • These 4 fields, MUST be present in your action configuration.
  • Missing any 1 of these will cause the upload to fail.
Input NameDescription
access-keyYour archive.org access key
secret-keyYour archive.org secret key
identifierThe unique identifier of the archive.org item where the file will be stored
filesFile or folder path(s) to upload. Supports a single path, a glob pattern, or a comma-separated list of paths

Additional Non-Metadata Optional Inputs

Input NameDescription
log-levelLog verbosity level for the uploader. Allowed values: DEBUG, INFO, WARNING, ERROR, CRITICAL. Defaults to INFO.

Outputs

Output NameDescription
item-urlArchive.org details page URL for the target identifier, e.g. https://archive.org/details/<identifier>

Supported Metadata Fields Inputs: (Optional)

  • All of the following fields are optional.
  • They are used to define additional metadata on your uploads according to the Archive.org Metadata Schema.
  • Please refer to the metadata docs above if you have any questions about uploading specific metadata.
Input NameDescriptionExample
adaptive_ocrAllows deriver to skip a page that would otherwise disrupt OCRtrue
aspect_ratioRatio of the pixel width and height of a video stream (e.g. 4:3, 16:9)4:3
betterpdfIndicates that the derive module should create a higher quality PDF derivativetrue
bookreader-defaultsBookreader display mode (e.g. mode/1up, mode/2up, mode/thumb)mode/1up
bwocrAllows deriver to OCR specific pages as B&W if color is causing failure001
call_numberContributing library's local call number6675707, NC 285.1 P9287m
ccnumClosed Captioning Numbercc5
closed_captioningIndicates whether item contains closed captioning files (yes/no)yes
colorIndicates whether media is in color or black and white (color or black and white)color
conditionCondition of media (e.g. Good, Fair, Poor)Good
condition-visualCondition of artwork or printed materialsGood
contributorComma-separated list of contributorsRobarts - University of Toronto
coverageComma-separated list of geographic or subject areas covered by itemGB-LND
creatorComma-separated list of creatorsAusten, Jane, 1775-1817, Ralph Burns
creator-alt-scriptCreator in alternate script[alternate script]
dateDate of publication (YYYY, YYYY-MM, or YYYY-MM-DD)1965, 2013-05-25, [n.d.]
descriptionDescribes the media stored in the itemCinemascope homage to the city of San Francisco made by amateur filmmaker and inventor Tullio Pellegrini.
external-identifierComma-separated list of URLs or identifiers to outside resourcesurn:publisher_catalog_id:88697 03614 2
fixed-ppiTo change the ppi to a specific resolution300
isbnComma-separated list of ISBN-10 or ISBN-133540212507, 031294716X
issnComma-separated list of ISSN identifiers2528-7788, 1943-345X
lccnComma-separated list of Library of Congress Call Numbers2004045278
languageComma-separated list of languageseng, Italian, None
licenseurlURL of the copyright licensehttp://creativecommons.org/licenses/by-nd/3.0/
notesAdditional notes about the item[any string]
oclc-idComma-separated list of OCLC identifiers37432884
openlibraryDeprecated. Open Library edition identifierOL2769393M
openlibrary_authorComma-separated list of Open Library authorsOL52922A
openlibrary_editionOpen Library edition identifierOL2769393M
openlibrary_subjectComma-separated list of Open Library subjectsopenlibrary_staff_picks
openlibrary_workOpen Library work identifierOL675783W
page-progressionDetermines direction pages will be "turned" in a book (lr/rl)lr
possible-copyright-statusInformation relevant to copyright statusThe Centers for Medicare & Medicaid Services Library is unaware of any copyright restrictions for this item.
ppiPixels per inch300
publisherPublisher of the mediaNew York : R.R. Bowker Co.
related-external-idComma-separated list of related external identifiersurn:isbn:0671038303
rightsRights statementPermission is granted under the Wikimedia Foundation's ...
scandateDate and time the media was captured20170329201345
scannerMachinery used to digitize or collect the mediascribe2.nj.archive.org
sizeSize of physical item digitized10.0
soundIndicates whether media has sound or is silent (sound or silent)sound
sourceSource of mediafolio, Comcast Cable, CD
sponsorThe person or organization that funded the digitization or collectionKahle-Austin Foundation
subjectComma-separated list of subjects/topics for the itemFrance
titleThe human-readable title for the itemSan Francisco (1955 Cinemascope film)
title-alt-scriptTitle in alternate script[alternate script]
volumeVolume number or name15
yearYear of publication (deprecated, use date)1996

Usage Examples

Tip

For supply-chain security, pin this action to a full commit SHA instead of a mutable tag such as latest. The latest SHA for this repo is:

1cdb640f1bd8b06c29ef86a7d323d8c2e51eda89

Use it as: nick2bad4u/internet-archive-upload@1cdb640f1bd8b06c29ef86a7d323d8c2e51eda89

Note

Set log-level: DEBUG in action inputs for verbose troubleshooting output (or override via IA_LOG_LEVEL).

Important

Best practice for this action is to rely on the step exit code for success/failure. It intentionally does not expose status/message outputs, because those are redundant with normal GitHub Actions failure handling and are less reliable when a step fails fast.

Note

The action does expose one useful output: item-url, which is the expected Internet Archive details URL derived from the target identifier.

Upload a single file with metadata

name: Upload a file to archive.org with metadata
jobs:

  job:
    name: Upload a file
    runs-on: ubuntu-latest

    steps:
      - name: Checkout Repository
        uses: actions/checkout@v6

      - name: Upload file to archive.org
        id: ia_upload
        uses: nick2bad4u/internet-archive-upload@1cdb640f1bd8b06c29ef86a7d323d8c2e51eda89
        with:
            # Required fields
            access-key: ${{ secrets.IA_ACCESS_KEY }}
            secret-key: ${{ secrets.IA_SECRET_KEY }}
            identifier: your-item
            files: your-file.jpg

            # Optional metadata fields
            title: "My Archive Title"
            creator: "Jane Doe,John Smith"
            subject: "example,archive,upload"
            date: "2025-05-29"
            language: "English"
            betterpdf: true

      - name: Print uploaded item URL
        run: echo "Item URL: ${{ steps.ia_upload.outputs.item-url }}"

Upload a directory of files

name: Upload a directory of files to archive.org with metadata
jobs:

  job:
    name: Upload directory
    runs-on: ubuntu-latest

    steps:
      - name: Checkout Repository
        uses: actions/checkout@v6

      - name: Upload directory to archive.org
        uses: nick2bad4u/internet-archive-upload@1cdb640f1bd8b06c29ef86a7d323d8c2e51eda89
        with:
          # Required fields
          access-key: ${{ secrets.IA_ACCESS_KEY }}
          secret-key: ${{ secrets.IA_SECRET_KEY }}
          identifier: your-item
          files: your-files/

          # Optional metadata fields
          title: "My Archive Title"
          creator: "Jane Doe,John Smith"
          subject: "example,archive,upload"
          date: "2025-05-29"
          language: "English"
          betterpdf: true

Example of a real-world usage in a GitHub Actions workflow

name: Upload Releases to Archive.org

on:
  workflow_dispatch:
  push:

concurrency:
  group: IA-${{ github.ref }}
  cancel-in-progress: true

jobs:
  upload-windows:
    runs-on: ubuntu-latest
    steps:

      - name: Download release tarball + zip
        id: download_zip
        uses: robinraju/release-downloader@daf26c55d821e836577a15f77d86ddc078948b05 # v1.12
        with:
          repository: Nick2bad4u/internet-archive-upload
          latest: true
          tarBall: true
          zipBall: true
          token: ${{ secrets.GITHUB_TOKEN }}

      - name: Upload tarball + zip to archive.org
        uses: Nick2bad4u/internet-archive-upload@1cdb640f1bd8b06c29ef86a7d323d8c2e51eda89 # main
        with:
          access-key: ${{ secrets.IA_ACCESS_KEY }}
          secret-key: ${{ secrets.IA_SECRET_KEY }}
          identifier: Github-Action-IA-Archiver-${{ steps.download_zip.outputs.tag_name }}
          files: ./
        continue-on-error: true
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Issues

If you encounter any issues or have feature requests, please open an issue in the GitHub repository.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

If you want to contribute to this project, please fork the repository and submit a pull request. Contributions are welcome!

Acknowledgements

This action was originally created by Ben Welsh. It has been forked and maintained by Nick2bad4u.