ArchiveBox is Super Cool

Michael Lynch

ArchiveBoxは超クール

archive.orgのInternet Wayback Machineを使ったことはありますか? これは1996年からウェブをアーカイブし続けている無料ツールです。ですから、1999年当時のGoogleがどんな見た目だったか知りたければ、見ることができます

1999年4月22日にInternet Archiveが保存したGoogle

ArchiveBoxは、自分専用のInternet Wayback Machineのようなものです。無料でオープンソースであり、ほとんどのウェブサイトをアーカイブできます。

ArchiveBoxのダッシュボードのスクリーンショット

ArchiveBoxは、ウェブサイトをローカルにアーカイブできる無料のオープンソースツールです。

なぜアーカイブするのか?

1年ほど前まで、ウェブサイトをローカルにアーカイブしようと思ったことはありませんでした。オンラインにはウェブサイトをアーカイブして、公開コピーを保存してくれるツールがあります。それなのに、わざわざ自分でアーカイブをホスティングする必要があるでしょうか?

ところが昨年、多くのソーシャルメディア企業が権力を振りかざし始めました。redditは有名な話ですが、サードパーティーAPIを閉鎖し、その結果、redditをアーカイブしていたサイトの多くが動かなくなりました。redditのアーカイブサイトはあっさり消滅し、アーカイブも消えてしまいました。

本来なら、運営を持続できないことを示す危険信号はいくつも出ていたのに、私は無料でボランティア運営されているこうしたアーカイブサービスを、どれほど無条件に信頼していたのかに気づきました。

クラウド上のアーカイブサービスが永遠にオンラインであり続けることを当てにできないのなら、自分にとって大切なものは自分でコピーを保持しておくべきです。

ArchiveBoxのインストール

ArchiveBoxをインストールする方法はいくつかありますが、私は推奨されているDocker Composeの方法を選びました。

mkdir archivebox && \
  cd archivebox && \
  curl -O 'https://raw.githubusercontent.com/ArchiveBox/ArchiveBox/dev/docker-compose.yml' && \
  docker compose run archivebox init --setup

あとはDockerコンテナを起動すれば、ArchiveBoxを立ち上げられます。

docker compose up

ローカルのウェブサーバーがポート8000で起動します。

redditの投稿をアーカイブする

私がこれまで読んだredditの物語の中でも特にお気に入りなのが、近所の人が自分で「袋地」になってしまった男をめぐる、/r/legaladviceの一連の騒動です。

redditに投稿した人の隣人は、自宅と公道をつなぐ私道を含む土地を所有していました。しかし、その私道を含む土地の一部を売ってしまったため、隣人は自分の所有地に出入りする方法を失いました。自分のものではない土地を不法侵入するしかなかったのです。隣人はこの問題を解決しようとして、redditに投稿した人の私道を使わせるよう要求してきました。

/r/legaladvice掲示板の盛り上がりを伝える雑な絵

この話は、redditの3つのスレッドで語られています。

そこで、この3つのURLをArchiveBoxに貼り付けました。

数秒もしないうちに、ArchiveBoxはそれらの投稿をアーカイブし、ローカルでオフラインでも見られるようにしてくれました。

ArchiveBoxは3つのredditスレッドをダウンロードし、オフラインで利用できるようにした

ArchiveBoxはページをPDF、PNG、WARCなど複数の形式でダウンロードします。その中に、私がこれまで聞いたことのなかった「単一ファイルHTML」という形式がありました。

単一ファイルHTMLは、なかなか気の利いた仕組みです。HTML、JavaScript、CSSをすべて1つのファイルに詰め込みます。画像までbase64エンコードして、同じHTMLファイルの中に格納してくれます。

<style>:root{--sf-img-2: url("data:image/gif;base64,R0lGODlhFQAQAIABAICAgP///yH5BAEAAAEALAAAAAAVABAAAAIajI...

この方法でredditのスレッドを読むのは、とにかく速いのでとても快適です。ほとんどテキストだけの単純なページを読み込むのに、redditをはじめとするウェブ全体がどれほど遅くなったか、すっかり当たり前のように受け入れていました。あらかじめローカルで生成したページを閲覧すると、ブラウジングがどんな感覚になるのかを実感できて楽しいです。

YouTube動画をアーカイブする

YouTube動画のアーカイブには、もっと専門的なツールもあります。しかしArchiveBoxにはyt-dlpも組み込まれているので、YouTubeのURLを渡すだけで、ページと動画をアーカイブできます。

Lonely IslandSNLの名作「Like a Boss」をいつでも手元に置いておきたいなら、他のウェブサイトと同じようにArchiveBoxに渡せばよいのです。

ArchiveBoxがYouTube動画をダウンロードした

ArchiveBoxは本物のYouTubeとまったく同じ体験を再現できるわけではありません。しかし、ページのスナップショットを作成したうえで、動画を別に保存してくれます。

ArchiveBoxはYouTubeページを完全にはアーカイブできないため、動画プレーヤーの代わりに静止画を表示し、動画は別のファイルに保存する

なぜこんなに見覚えがあるのか?

ArchiveBoxのコントリビューター一覧を見ていると、先頭に見覚えのある名前がありました。Nick Sweetingです。彼のことは知っています。2019年にPyGothamで会いました。

Nickの講演動画をざっと見返してみると、実はNickは5年前、同じカンファレンスでArchiveBoxをデモしていたことがわかりました。当時、私は彼の講演について書いています。でも、なぜかArchiveBoxのことは記憶に残らなかったようです。

Nickの講演を見てからの数年間で、ArchiveBoxは明らかに成熟しました。それに、私自身もアーカイブの必要性を強く感じるようになったので、再発見できてうれしく思っています。

リソース

  • ArchiveBox - ウェブページのローカルな非公開アーカイブを作成するための、無料のオープンソースツール。
  • archive.orgのInternet Wayback Machine - 1996年までさかのぼれる、ウェブの公開アーカイブ。

原文は Michael Lynch により に公開されました。

この記事は「gpt-5.6-terra」を使用して翻訳されました。