ArchiveBoxは超クールだ
原文は Michael Lynch により に公開されました。 このブログを購読する
archive.orgのInternet Wayback Machineを使ったことはありますか?1996年からウェブをアーカイブし続けている無料のツールです。たとえば1999年当時のGoogleがどんな見た目だったか見たければ、ちゃんと保存されています。

1999年4月22日時点のGoogleをInternet Archiveがキャプチャしたもの
ArchiveBoxは、あなた専用のInternet Wayback Machineのようなものです。無料のオープンソースで、ほとんどのウェブサイトをアーカイブできます。

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に投稿された隣人が自分自身を「陸の孤島」にしてしまった男の物語があります。
投稿者の隣人は、自宅と公道をつなぐ私道を含む土地を所有していましたが、その私道を含む部分を売却してしまったのです。その結果、隣人は自分が所有していない土地に不法侵入することなしには、自分の敷地に出入りできない状態になってしまいました。隣人はこの問題を、投稿者の私道を使わせろと要求することで解決しようとしていたのです。

/r/legaladvice板を沸かせた雑な手描きの図
この物語は3つのredditスレッドで語られています。
- Neighbors stupidly caused themselves to be landlocked. Are we going to be legally required to share our private road?
- UPDATE: My neighbors caused themselves to be landlocked. Now the sheriff wants me to let them use my road.
- UPDATE: My neighbors caused themselves to be landlocked, I posted here, it’s resolved now
そこで、この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 IslandとSNLの名作「Like a Boss」を常に手元に残しておきたいと思ったら、他のウェブサイトと同じようにArchiveBoxに渡せばいいのです。

ArchiveBoxがYouTube動画をダウンロードしたところ
ArchiveBoxは本物のYouTubeの体験を完璧に再現できるわけではありませんが、ページのスナップショットを作成し、動画は別途保存します。


ArchiveBoxはYouTubeページを完璧にはアーカイブできないため、動画プレーヤーの代わりに静止画を表示し、動画自体は別ファイルとして保存する
なぜか見覚えがある
ArchiveBoxのコントリビューターリストを見たとき、一番上に見覚えのある名前を見つけました。Nick Sweetingです。知り合いでした!2019年のPyGothamで会ったことがあるのです。
Nickのトーク動画をざっと見返してみると、なんと同じカンファレンスで5年前に彼がArchiveBoxのデモをしていたことに気づきました。当時私は彼のトークについて書いてさえいたのですが、なぜかArchiveBoxは印象に残らなかったようです。
Nickのトークを見てからの数年間で、ArchiveBoxは明らかに成熟し、私自身もアーカイブの必要性をより強く感じるようになりました。こうして再発見できてよかったと思っています。
参考リンク
- ArchiveBox - ウェブページのローカルかつプライベートなアーカイブを作成するための無料オープンソースツール。
- archive.orgのInternet Wayback Machine - 1996年まで遡るウェブの公開アーカイブ。
記事をランダムに読む
コメント
ログインしてコメントする