ia について
`ia`コマンドラインツールでInternet Archiveを利用するスキルです。アーカイブ項目を検索、ダウンロード、管理する人向けに、メタデータ、コレクション、認証、検索構文、基本操作を説明します。
主な機能
- 01メタデータと全文の検索
- 02アーカイブ項目のダウンロードとアップロード
- 03認証情報の設定とアクセス確認
- 04項目メタデータとコレクションの操作
- 05アップロード時の派生ファイル生成制御
活用シーン
- 01フィールドや日付範囲で項目を検索
- 02公開されている書籍、メディア、データセットを取得
- 03メタデータを付け派生ファイル生成を省いてアップロード
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ internetarchive/ internet-archive-skills --skill iaインストール後、Claude Code で/iaを入力して読み込まれたか確認します。
詳細
Internet Archive CLI スキル
このスキルを使うと、internetarchive Python パッケージの ia コマンドラインツールを使用して、Internet Archive(archive.org)を操作できます。
アイテム
アイテムは archive.org の基本単位で、共通のメタデータを持つ関連ファイルを論理的にまとめたものです。アイテムには、本、曲、アルバム、データセット、映画、画像または画像のセットなどがあります。アーカイブ全体で、それぞれのアイテムに固有の識別子が付与されます。
各アイテムには次のものが含まれます。
- アップロードされた元のファイル
- 派生ファイル(archive.org が自動生成)
<identifier>_meta.xml- アイテムレベルのメタデータ<identifier>_files.xml- ファイルレベルのメタデータ
アイテムはコレクションに属している必要があります。
アイテムの制限
| 制約 | 推奨値 | 上限 |
|---|---|---|
| アイテムの合計サイズ | 100GB 未満 | 約1TB |
| アイテムあたりのファイル数 | 10,000 未満 | 250,000(10,000 を超えるとパフォーマンスが低下) |
| 単一ファイルのサイズ | 50GB 未満 | 500~700GB |
| 1日あたりのアップロード数 | 1,000 ファイル未満 | 5,000 ファイル(ZIP は1ファイルとして数えます) |
永続的な URL の形式:
- 詳細ページ:
https://archive.org/details/<identifier> - ダウンロードディレクトリ:
https://archive.org/download/<identifier> - 特定のファイル:
https://archive.org/download/<identifier>/<filename> - アイテムの履歴:
https://archive.org/history/<identifier>
警告: ia802304.us.archive.org のようなサーバー固有の URL には、決してリンクしないでください。アイテムがサーバー間で移動すると、リンクが無効になります。必ず上記の正規の archive.org URL を使用してください。
詳しくは、https://archive.org/developers/items.html をご覧ください。
派生ファイル
Internet Archive にファイルをアップロードすると、システムは異なる形式や解像度に変換した派生ファイルを自動生成します。例:
- 動画:h.264、Ogg、各種ビットレートに変換
- 音声:MP3(複数のビットレート)、Ogg Vorbis、FLAC に変換
- テキスト/書籍:OCR 処理、検索可能な PDF、EPUB、DjVu
- 画像:サムネイル、JPEG 2000、異なる解像度
派生ファイルにより、さまざまなデバイスや帯域幅でコンテンツを利用できます。ia list の出力では、派生ファイルを識別できます。派生ファイルには、元のファイルを示す original フィールドがあります。
アップロード中の派生ファイル生成をスキップするには、--no-derive を使用します。
ia upload my-item file.mp4 --metadata="mediatype:movies" --no-derive
元の形式とそこから生成される派生ファイルの完全な一覧については、https://archive.org/help/derivatives.php をご覧ください。
メタデータのスキーマ
Internet Archive のアイテムでは、XML ベースのメタデータを使用します。主なポイントは次のとおりです。
- 必須フィールド:
identifier、mediatype - 推奨フィールド:
title、description、creator、date、subject、collection、language - 複数指定可能なフィールド: コレクション、作成者、件名、言語には複数の値を設定できます
- カスタムフィールド: XML の命名規則に従えば、カスタムメタデータフィールドを無制限に定義できます
識別子の要件:
- ASCII の英数字、アンダースコア、ハイフン、ピリオドのみ使用できます
- 英数字で始まる必要があります
- 5~100文字(5~80文字を推奨)
- 一意であり、一度設定すると変更できません
メタデータスキーマの完全なリファレンスについては、https://archive.org/developers/metadata-schema をご覧ください。
コレクション
コレクションでは、関連するアイテムをまとめます。主なポイントは次のとおりです。
- コレクションを作成できるのは IA スタッフのみです。ユーザーは作成を申請する必要があります
- 新しいコレクションには最低50件のアイテムが必要です
- アイテムには関連性があり、通常は同じメディアタイプである必要があります
- 申請後、コレクションの作成には最大2週間かかります
コレクションを申請するには、次の情報を添えて Internet Archive に連絡してください。
- アイテム識別子の一覧、または対象アイテムを特定する検索クエリ
- 希望するコレクション識別子(5~80文字、英数字のみ)
- コレクションのタイトルと説明
- 少なくとも1つの件名タグ
公開アップロード用コレクション(誰でもアップロードできます):
opensource_movies、opensource_audio、opensource_media- 一般メディアcommunity_texts、community_video、community_audio- コミュニティからの投稿
その他のコレクションでは、指定されたアップロードユーザーにのみアップロードが許可されます。
ツールの検出とインストール
ia コマンドを使用する前に、ツールがインストールされているか確認してください。
ia --version
ia コマンドが見つからない場合は、uv を使ってインストールしてください。
uv tool install internetarchive
ほかのインストール方法:
pipx install internetarchivepip install internetarchive
インストール後、ia --version を実行して動作を確認してください。
グローバルオプション
以下のオプションはすべての ia コマンドで使用できます。
| オプション | 説明 |
|---|---|
-h, --help | ヘルプメッセージを表示します |
-v, --version | バージョンを表示します |
-c FILE, --config-file | 設定ファイルのパス |
-l, --log | ロギングを有効にします |
-d, --debug | デバッグ出力を有効にします |
設定と認証
ia が設定済みか確認してください。
ia configure --whoami
未設定の場合(エラーまたは空の結果が表示される場合)、ユーザーは認証情報を設定する必要があります。
- 対話型セットアップ:
ia configureを実行し、プロンプトに従います - 認証情報の取得:IA-S3 キーを https://archive.org/account/s3.php から取得します
- 設定ファイルの場所:
~/.config/ia.iniに保存されます
設定オプション
| オプション | 説明 |
|---|---|
--whoami | 現在認証されているユーザーを表示します |
--show | 現在の設定を JSON として表示します |
--check | IA-S3 キーを検証します(有効なら終了コード 0、そうでなければ 1) |
# Show current config
ia configure --show
# Validate keys (useful in scripts)
ia configure --check && echo "Keys valid"
環境変数
設定ファイルの代替として使用できます。
export IA_ACCESS_KEY_ID="your-access-key"
export IA_SECRET_ACCESS_KEY="your-secret-key"
注:アップロードとメタデータの変更には設定が必要です。公開アイテムの検索とダウンロードは、認証なしで行えます。
User-Agent による識別(必須)
Internet Archive へのすべてのリクエストには、リクエスト元を明確に識別できる適切な User-Agent 文字列を含める必要があります。 これは、ia CLI、Python ライブラリ、直接の API 呼び出し、curl、その他の HTTP クライアントなど、あらゆるツールを介して行うすべてのリクエストに適用されます。AI エージェント、ボット、自動化ツールでは特に重要です。
ia CLI は、アクセスキーを含むデフォルトの User-Agent を自動的に付加します。
internetarchive/5.7.2 (Linux x86_64; N; en; ACCESS_KEY) Python/3.11.0
Claude Code またはその他の AI/LLM エージェントを使用する場合は、以下を含むカスタムサフィックスを必ず追加してください。
- ツール/エージェント名とバージョン(例:「Claude Code/1.0.0」)
- 該当する場合は使用中のモデル(例:「claude-sonnet-4-20250514」)
- 自動化に関する関連情報
--user-agent-suffix CLI オプションと user_agent_suffix 設定を使用するには、internetarchive バージョン 5.7.2 以降が必要です。アクセスキーを含むデフォルトの User-Agent は常に送信され、その末尾にサフィックスが追加されます。
CLI:
ia --user-agent-suffix "Claude Code/1.0.0 (claude-sonnet-4-20250514)" download my-item
INI ファイル(~/.config/internetarchive/ia.ini):
[general]
user_agent_suffix = Claude Code/1.0.0 (claude-sonnet-4-20250514)
Python API:
from internetarchive import get_session
session = get_session(config={
'general': {'user_agent_suffix': 'Claude Code/1.0.0 (claude-sonnet-4-20250514)'}
})
生成される User-Agent は次のようになります。
internetarchive/5.7.2 (Linux x86_64; N; en; ACCESS_KEY) Python/3.11.0 Claude Code/1.0.0 (claude-sonnet-4-20250514)
これにより、Internet Archive は利用パターンを把握し、問題のトラブルシューティングを行い、サービス品質を維持できます。常に具体的に記述し、バージョン番号、モデル識別子、および使用するツールを他のものと区別できるだけの詳細を含めてください。
検索操作
Internet Archive のカタログを検索します。
ia search '<query>'
検索パラメーター
| パラメーター | 説明 |
|---|---|
--itemlist | 識別子のみを1行に1つずつ出力します |
-n, --num-found | 結果の件数のみを表示します |
-s, --sort | 結果を並べ替えます:--sort='field desc' または --sort='field asc' |
-f, --field | 指定したメタデータフィールドを返します(複数回指定可能) |
-F, --fts | 全文検索を行います(メタデータだけでなく、テキストコンテンツも検索します) |
--parameters | 生のクエリパラメーターを指定します:--parameters="page=N&rows=N" |
# Get result count only
ia search 'collection:nasa' -n
# Sort by date descending
ia search 'mediatype:texts' --sort='date desc'
# Return specific fields
ia search 'collection:nasa' --field=identifier --field=title
並べ替えフィールド
--sort で使用する一般的な並べ替えフィールド:
| フィールド | 説明 |
|---|---|
date | コンテンツの日付 |
publicdate | archive.org でアイテムが公開された日時 |
addeddate | アーカイブに追加された日時 |
updatedate | 最終更新日時 |
title / titleSorter | タイトルのアルファベット順 |
creator / creatorSorter | 作成者のアルファベット順 |
downloads | ダウンロード合計数 |
week | 今週のダウンロード数 |
month | 今月のダウンロード数 |
num_reviews | レビュー数 |
num_favorites | お気に入り数 |
item_size | アイテムの合計サイズ |
files_count | ファイル数 |
asc または desc の接尾辞を使用します:
ia search 'mediatype:audio' --sort='downloads desc'
ia search 'collection:books' --sort='publicdate asc'
ia search 'creator:NASA' --sort='title asc'
検索クエリ構文
Internet Archive では Apache Lucene のクエリ構文を使用します。デフォルトの演算子は AND です(すべての語句が含まれている必要があります)。
クエリ演算子
| 演算子 | 説明 |
|---|---|
AND | すべての語句が含まれている必要があります(デフォルト) |
OR | いずれかの語句が含まれていればよいです |
NOT | 該当する語句を含むドキュメントを除外します(少なくとも1つの肯定的な語句が必要です) |
( ) | 節をグループ化してサブクエリを作成します |
フィールドを指定した検索
field:value 構文を使用して、特定のメタデータフィールドを検索します:
| クエリ | 説明 |
|---|---|
'title:"search text"' | タイトルで検索 |
'creator:"Author Name"' | 作成者/著者で検索 |
'subject:"topic"' | 件名で検索 |
'description:"text"' | 説明で検索 |
'collection:name' | コレクション内のアイテム |
'mediatype:texts' | メディアタイプで検索(texts、movies、audio、software、image、data) |
'contributor:smithsonian' | 寄稿者で検索 |
'language:eng' | 言語コードで検索 |
'format:pdf' | 特定のファイル形式を含むアイテム |
'isbn:9780123456789' | ISBN で検索 |
'licenseurl:http*by-nc*' | クリエイティブ・コモンズ・ライセンスで検索 |
範囲クエリ
角括弧または丸括弧を使用して、範囲内の値を検索します:
| 構文 | 説明 |
|---|---|
[1000 TO 2000] | 範囲内(境界値を含む) |
{1000 TO 2000} | 範囲内(境界値を含まない) |
[1000 TO null] | 上限のない範囲(1000 以上) |
[null TO 2000] | 下限のない範囲(2000 以下) |
日付フィールド
検索可能な日付フィールド:addeddate、createdate、date、indexdate、publicdate、reviewdate、updatedate、oai_updatedate
| クエリ | 説明 |
|---|---|
'date:[2020-01-01 TO 2024-12-31]' | 日付範囲 |
'publicdate:[2024-01-01 TO 2024-06-30]' | 公開日で検索 |
'indexdate:[2024-01-01T00:00:00Z TO 2024-12-31T23:59:59Z]' | タイムスタンプを指定 |
'date:2024*' | 年のワイルドカード検索(範囲指定なし) |
あいまい検索
近似するスペルを検索するには、~ を追加します:
ia search 'title:buttonwood~'
# Boost fuzzy matches with weights
ia search '(title:buttonwood~)^150 OR (subject:buttonwood~)^100'
欠落フィールドの検索
フィールドが存在しないアイテムを検索します:
ia search 'collection:microfiche AND NOT _exists_:creator'
アップローダーによる検索
アップローダーのユーザーアイテム、スクリーンネーム、またはメールアドレスで検索します:
ia search '_uploader_useritem:@username'
ia search '_uploader_screenname:"Display Name"'
ia search 'uploader:[email protected]'
その他の検索可能なフィールド
標準的なメタデータのほか、次の項目で検索できます:
downloads- ダウンロード数item_size- アイテムの合計サイズ(バイト単位)files_count- ファイル数collection_size- コレクションのサイズitem_count- コレクション内のアイテム数
ia search 'collection:opensource AND downloads:[1000 TO null]'
ia search 'mediatype:movies AND item_size:[1000000000 TO null]'
複合クエリ
# AND is implicit between terms
ia search 'collection:nasa mediatype:image'
# Explicit operators
ia search 'collection:nasa AND mediatype:image'
ia search 'mediatype:texts OR mediatype:audio'
ia search 'collection:opensource NOT mediatype:software'
# Grouped subqueries
ia search '(mediatype:texts OR mediatype:audio) AND creator:"Mark Twain"'
全文検索
-F(または --fts)フラグを使用すると、メタデータだけでなく、アイテムの実際のテキストコンテンツを検索できます。書籍、ドキュメント、OCR 処理済みの資料など、テキストコレクションの検索に特に有効です。
全文検索の基本:
ia search -F 'collection:collection_name "search phrase"'
仕組み:
- ドキュメントの全文(OCR 処理済み PDF、テキストファイルなど)を検索します
- 特定の引用や一節を探す場合、メタデータのみの検索よりも強力です
- アイテムに検索可能なテキスト(OCR またはテキストファイル)が必要です
- コレクションやメタデータのフィルターと組み合わせることができます
全文検索の構文:
- 完全一致する語句には引用符を使用します:
"complete phrase" - メタデータフィルターと組み合わせます:
collection:name AND "text to find" - OCR 処理済みのテキストコレクションで最も効果を発揮します
例
# Search NASA images
ia search 'collection:nasa mediatype:image' --parameters="rows=10"
# Search public domain books
ia search 'subject:"public domain" mediatype:texts'
# Get just identifiers
ia search 'creator:"Mark Twain"' --itemlist
# Full-text search within a text collection
ia search -F 'collection:books "climate change"'
# Full-text search for a specific quote in public domain texts
ia search -F '"to be or not to be" mediatype:texts'
# Full-text search with collection filter and pagination
ia search -F 'collection:usgovernmentdocuments "artificial intelligence"' --parameters="rows=20"
ダウンロード操作
Internet Archive のアイテムからファイルをダウンロードします。
ia download <identifier>
ダウンロードパラメーター
| パラメーター | 説明 |
|---|---|
--glob="*.ext" | 一致するファイルのみをダウンロードします(複数指定する場合は | を使用します:'*.mp4|*.webm') |
--exclude="*pattern*" | パターンに一致するファイルを除外します |
--format="FORMAT" | 特定の派生形式をダウンロードします |
--source=SOURCE | ソースで絞り込みます:original、derivative、metadata |
--exclude-source=SOURCE | ソースの種類で除外します |
--destdir=path | 指定したディレクトリにダウンロードします |
--no-directories | ディレクトリ構造をフラット化します |
-s, --stdout | ファイルを標準出力に書き込みます(パイプ処理用) |
--dry-run | ダウンロードされる内容を表示します |
--checksum | 正しいチェックサムで既に存在するファイルをスキップします |
--on-the-fly | オンザフライファイル(生成された派生ファイル)をダウンロードします |
--search="QUERY" | 検索結果からダウンロードします |
--itemlist=FILE | ファイルに記載されたアイテムをダウンロードします |
ソースの種類による絞り込み
--source と --exclude-source を使用して、ファイルの由来で絞り込みます。
# Download only original files (skip all derivatives)
ia download my-item --source=original
# Download originals and metadata, skip derivatives
ia download my-item --exclude-source=derivative
# Download only metadata files
ia download my-item --source=metadata
使用例
# Download all files from an item
ia download TripDown1905
# Download specific files by name
ia download TripDown1905 file1.mp4 file2.ogv
# Download only MP4 files
ia download TripDown1905 --glob="*.mp4"
# Download MP4s but exclude low-quality versions
ia download TripDown1905 --glob="*.mp4" --exclude="*512kb*"
# Download specific format
ia download TripDown1905 --format='512Kb MPEG4'
# Download to specific directory
ia download TripDown1905 --destdir=./downloads
# Download from search results
ia download --search 'collection:opensource_movies' --glob="*.mp4"
# Download items from a list file
ia search 'collection:glasgowschoolofart' --itemlist > itemlist.txt
ia download --itemlist itemlist.txt
# Preview what will be downloaded
ia download my_item --dry-run
アップロード操作
Internet Archive にファイルをアップロードします(認証が必要です)。
ia upload <identifier> file1 file2 --metadata="mediatype:value"
必須メタデータ
mediatype フィールドは必須です。一般的な値は次のとおりです。
texts- 書籍、文書、PDFmovies- 動画ファイルaudio- 音楽、ポッドキャスト、サウンドsoftware- プログラム、ゲームimage- 写真、グラフィックdata- データセット、アーカイブ
アップロードパラメーター
| パラメーター | 説明 |
|---|---|
--metadata="key:value" | メタデータを設定します(繰り返し指定できます) |
--header="key:value" | HTTP ヘッダーを設定します |
--checksum | アップロード済みのファイルをスキップします |
-v, --verify | アップロード後にデータが破損していないことを確認します |
--no-derive | 派生ファイルの処理をスキップします |
--retries=N | 再試行回数 |
--remote-name=NAME | リモートファイル名を設定します(標準入力からのアップロード用) |
--keep-directories | リモートファイル名でディレクトリ構造を保持します |
-o, --open-after-upload | アップロード後にブラウザーでアイテムを開きます |
--file-metadata=FILE | JSONL ファイルからファイル単位のメタデータを指定します |
--spreadsheet=FILE | CSV スプレッドシートから一括アップロードします |
一般的なメタデータフィールド
--metadata="title:My Document Title"
--metadata="creator:Author Name"
--metadata="description:A description of the content"
--metadata="subject:topic1;topic2"
--metadata="collection:community_texts"
--metadata="date:2024-01-15"
--metadata="language:eng"
使用例
# Upload a PDF document
ia upload my-document-2024 document.pdf \
--metadata="mediatype:texts" \
--metadata="title:My Document" \
--metadata="creator:John Doe"
# Upload multiple files
ia upload my-archive file1.pdf file2.pdf file3.pdf \
--metadata="mediatype:texts" \
--metadata="title:Document Collection"
# Upload with checksum verification and retries
ia upload my-item large-file.zip \
--metadata="mediatype:data" \
--checksum \
--retries=10
# Upload from stdin
cat data.gz | ia upload my-item - \
--remote-name=data.gz \
--metadata="mediatype:data"
# Bulk upload using spreadsheet
ia upload --spreadsheet=metadata.csv
注意:
- 指定されていない場合、アイテムの mediatype はデフォルトで
dataになります - mediatype の変更は、アップロード後に管理者のサポートを受けた場合にのみ可能です
- 派生ファイルの生成にかかる時間は、ファイルの種類やシステム負荷によって数秒から数日です
- アイテムは通常数分以内に検索結果に表示されますが、最大 24 時間かかる場合があります
テストコレクション
検証のために test_collection にアップロードします。アイテムは約 30 日後に自動的に削除されます。
ia upload my-test-item file.pdf \
--metadata="mediatype:texts" \
--metadata="collection:test_collection"
識別子のガイドライン
- 小文字、数字、ハイフンを使用します
- スペースや特殊文字は使用しません
- わかりやすく、簡潔な名前にします
- 識別子が存在するか確認します:
ia metadata <identifier> --exists
アイテムのサムネイル画像
アイテムにカスタムサムネイルを設定するには、<identifier>_itemimage.jpg という名前の画像をアップロードします。
ia upload my-item my-item_itemimage.jpg
ダウンロードの制限
ファイルをストリーミング可能にしつつダウンロード不可にするには、アイテムを stream_only コレクションに追加します。
ia metadata <identifier> --append-list="collection:stream_only"
メタデータ操作
アイテムのメタデータを表示および変更します。
# View metadata (JSON output)
ia metadata <identifier>
# Extract specific field with jq
ia metadata <identifier> | jq '.metadata.date'
# List file formats contained in an item
ia metadata <identifier> --formats
# Modify metadata (set or replace)
ia metadata <identifier> --modify="title:New Title"
ia metadata <identifier> --modify="foo:bar" --modify="baz:value"
# Remove a metadata field
ia metadata <identifier> --modify="fieldname:REMOVE_TAG"
# Append value to existing field
ia metadata <identifier> --append="title:Subtitle Here"
# Append to list field (e.g., subjects)
ia metadata <identifier> --append-list="subject:new topic"
# Remove specific value from list field
ia metadata <identifier> --remove="subject:old topic"
# Modify file-level metadata
ia metadata <identifier> --target="files/foo.txt" --modify="title:My File"
# Bulk updates from spreadsheet
ia metadata --spreadsheet=metadata.csv
リスト操作
Internet Archive のアイテム内のファイルを一覧表示します。
ia list <identifier>
名前、サイズ、形式など、すべてのファイルの詳細を表示します。
リストのパラメーター
| パラメーター | 説明 |
|---|---|
--columns=name,size | 表示する列を指定します |
--glob="*.pdf" | パターンで絞り込みます |
-l, --location | 各ファイルの完全な URL を表示します |
-a, --all | 利用可能なすべてのファイル情報を一覧表示します |
-v, --verbose | 列見出しを表示します |
# List with full URLs
ia list my-item --location
# List all file info with headers
ia list my-item --all --verbose
# List specific columns
ia list my-item --columns=name,size,format
タスクとジョブ
カタログタスク(アップロード、派生ファイルの生成など)の状態を確認します。
# Check tasks for a specific item
ia tasks <identifier>
# Check all your tasks
ia tasks
アイテムの非公開化と再公開
アイテムを非公開(公開アクセスから隠す)にする、または非公開状態を解除するには、次のようにします。
# Dark an item (requires comment)
ia tasks <identifier> --cmd=make_dark.php --comment="Reason for darking"
# Undark an item
ia tasks <identifier> --cmd=make_undark.php --comment="Reason for undarking"
GNU Parallel による一括操作
多数の項目をバッチ処理するには、GNU Parallel を使って ia コマンドを並行して実行します。
インストール
# macOS
brew install parallel
# Debian/Ubuntu
apt install parallel
基本的な使い方
項目識別子をパイプで parallel に渡し、プレースホルダーとして {} を使用します。
# Fetch metadata for many items
cat itemlist.txt | parallel 'ia metadata {}'
# Download multiple items
cat itemlist.txt | parallel 'ia download {}'
慎重なバッチ処理
信頼性の高い一括操作を行うには、ジョブログを使って進捗を追跡し、失敗に対処します。
# Step 1: Create item list
ia search 'collection:myproject' --itemlist > itemlist.txt
# Step 2: Run with job logging
cat itemlist.txt | parallel --joblog job.log 'ia download {}'
# Step 3: Check for failures
echo $? # 0 = all succeeded
# Step 4: Retry only failed jobs
parallel --retry-failed --joblog job.log
ジョブログの利点
--joblog ファイルには各コマンドの終了ステータスが記録されるため、次のことができます。
- 中断したバッチジョブを再開する
- 成功した項目を再処理せず、失敗した項目だけを再試行する
- 成功した項目と失敗した項目を監査する
まずはドライラン
一括実行の前に、必ずプレビューしてください。
cat itemlist.txt | parallel --dry-run 'ia download {}'
レート制限
サーバーに過剰な負荷をかけないよう、同時実行数を制御します。
# Limit to 4 concurrent jobs
cat itemlist.txt | parallel -j4 'ia download {}'
# Add delay between jobs
cat itemlist.txt | parallel --delay 1 'ia download {}'
参照:https://archive.org/developers/internetarchive/parallel.html
ベストプラクティス
- アップロード前に必ず設定する - 最初に
ia configureを実行します - 意味のある識別子を使う - 内容が分かる、小文字とハイフンで構成された名前にします
- 適切なメタデータを含める - 最低限、mediatype、title、creator を指定します
- アップロード前に確認する -
ia metadata <id>で識別子が存在しないことを確認します - チェックサムを使う - 大きなアップロードでは
--checksumを追加して、再開できるようにします - レート制限を守る - リクエストを大量に送信せず、一括操作では間隔を空けます
- ドライランでテストする -
--dry-runを使って操作をプレビューします - まず test_collection を使う - 永続的なコレクションに登録する前に、アップロードを検証します
- 大きなファイル群は zip にまとめる - 小さなファイルが多数ある場合は、アップロード前にアーカイブにまとめます
- 言語を指定する - テキストの OCR 処理を適切に行うため、
languageメタデータを設定します
エラー処理
| エラー | 解決方法 |
|---|---|
| "not configured" | ia configure を実行するか、環境変数を設定します |
| "identifier exists" | 別の識別子を選びます |
| "permission denied" | https://archive.org/account/s3.php で認証情報を確認します |
| "network error" | 操作を再試行し、インターネット接続を確認します |
| "item not found" | 識別子のスペルを確認します |
| "429 Too Many Requests" | レート制限に達しました。待ってから、Retry-After ヘッダーの値に従って再試行します |
| 項目が検索結果に表示されない | 通常は数分以内に表示されます。保留中のジョブがないか ia tasks <identifier> で確認します |
| 派生タスクが失敗した | ファイル名の文字、ファイル形式、言語メタデータを確認します |
クイックリファレンス
# Search
ia search 'query'
ia search 'query' --itemlist
# Download
ia download <identifier>
ia download <identifier> --glob="*.pdf"
# Upload (requires auth)
ia upload <identifier> files --metadata="mediatype:texts"
# Metadata
ia metadata <identifier>
ia metadata <identifier> --modify="title:New Title"
# List files
ia list <identifier>
# Tasks
ia tasks <identifier>
# Config
ia configure
ia configure --whoami
# Install
uv tool install internetarchive
API リファレンス
CLI 以外からプログラムでアクセスする場合は、開発者向けドキュメント全体を参照してください:https://archive.org/developers
コア API
| API | 説明 |
|---|---|
| Items | 項目の構造とアクセスについて |
| Metadata Schema | メタデータフィールドの完全なリファレンス |
| Metadata Read | API を介して項目のメタデータを取得する |
| Metadata Write | API を介して項目のメタデータを変更する |
| IAS3 | アップロード用の S3 互換 API |
| Tasks | タスクキューの管理 |
その他の API
| API | 説明 |
|---|---|
| Changes | アーカイブ全体にわたる項目の変更を追跡する |
| Views | 閲覧数とダウンロード数の統計にアクセスする |
| Reviews | 項目のレビューを管理する |
| Simple Lists | 項目の関連付けとリストを作成する |
| OCR Service | 文字認識サービス |
| PDF Service | PDF の生成と処理 |
Python ライブラリ
Python との連携については、internetarchive library を参照してください。
TypeScript ライブラリ(サードパーティ)
コミュニティによってメンテナンスされている TypeScript の移植版を利用できます:internetarchive-ts(ドキュメント)
注:これは作業中のプロジェクトであり、Internet Archive によって公式にメンテナンスされているものではありません。