Arsip Post Bluesky 2026: 4 Cara Simpan Post AT Protocol
Bluesky melewati 40 juta pengguna di akhir 2026, dan pertanyaan yang akhirnya diajukan setiap pengguna intens adalah: bagaimana cara mengeluarkan post saya? Berbeda dengan X, Bluesky tidak punya tombol "Unduh arsip data Anda". Jika Anda punya bertahun-tahun thread, opini, dan post long-form di jaringan ini, satu-satunya jaminan untuk menyimpannya adalah mengekspornya sendiri. Berikut empat pendekatan yang benar-benar berfungsi — dari script satu baris hingga tool pihak ketiga lengkap.
Kenapa Arsip Bluesky Berbeda dari X
X (Twitter) telah menawarkan unduhan arsip bawaan sejak 2012. Bluesky, yang dibangun di atas AT Protocol, mengambil pendekatan yang sangat berbeda: data Anda disimpan di Personal Data Server (PDS), dan protokol dirancang untuk portabilitas, bukan lock-in platform. Pilihan desain itu berarti tidak ada tombol ekspor bawaan — tetapi juga berarti data Anda jauh lebih mudah diakses via API dibanding platform proprietari mana pun.
Implikasi praktisnya: jika Anda ingin arsip Bluesky, Anda menulis script atau menggunakan tool yang membungkusnya.
Perbandingan Metode
| Metode | Cocok Untuk | Butuh Auth | Post Historis | Kesulitan |
|---|---|---|---|---|
| API AT Protocol | Post sendiri, kontrol penuh | Ya (app password) | Ya | Sedang |
| Jetstream (WebSocket) | Tangkap post baru real-time | Tidak | Tidak | Sedang |
| Ekspor CAR PDS | Dump data mentah lengkap | Ya (admin PDS) | Ya | Lanjutan |
| Tools Pihak Ketiga | Ekspor tanpa kode, satu klik | Bervariasi | Ya | Mudah |
Metode 1: API AT Protocol
Pendekatan paling mudah menggunakan library Python resmi atproto untuk membaca feed penulis Anda halaman demi halaman dan menyimpan setiap post. Ini adalah metode yang memberi kontrol terbatas pada format output.
# Export Bluesky posts and threads via AT Protocol
# Requires: pip install atproto
from atproto import Client
client = Client()
client.login('your-handle.bsky.social', 'your-app-password')
# Fetch your own author feed (most recent 100 posts)
feed = client.app.bsky.feed.get_author_feed(
{'actor': 'your-handle.bsky.social', 'limit': 100}
)
for item in feed.feed:
post = item.post
print(post.record.text)
print(post.record.created_at)
print('---')
Setelah itu, konversi ke Markdown adalah script kecil tambahan:
# Save every exported post as individual Markdown files
# One file per post, YAML frontmatter included
import json, pathlib, re
def slugify(text):
return re.sub(r'[^a-z0-9]+', '-', text.lower()).strip('-')[:60]
out = pathlib.Path('bluesky-archive')
out.mkdir(exist_ok=True)
with open('export.jsonl') as f:
for line in f:
post = json.loads(line)
slug = slugify(post['text'][:60]) or 'untitled'
md = f"---\ntitle: \"{post['text'][:70]}...\"\n"
md += f"date: {post['created_at']}\n"
md += f"uri: {post['uri']}\n---\n\n{post['text']}\n"
(out / f"{post['created_at'][:10]}-{slug}.md").write_text(md)
print(f"Archived {len(list(out.glob('*.md')))} posts to {out}/")
Metode 2: Jetstream untuk Tangkap Real-Time
Jika Anda ingin menangkap post saat diterbitkan — untuk analisis tren atau riset — Jetstream adalah WebSocket publik yang mengalirkan setiap event firehose Bluesky tanpa autentikasi. Tidak melakukan backfill historis, jadi ini pelengkap metode API, bukan pengganti.
# Subscribe to Jetstream and capture all new Bluesky posts
# No authentication required
import asyncio, websockets, json
async def capture():
uri = "wss://jetstream2.us-east.bsky.network/subscribe?wantedCollections=app.bsky.feed.post"
async with websockets.connect(uri) as ws:
async for message in ws:
event = json.loads(message)
# Filter: only posts from accounts you follow or a specific handle
print(event["commit"]["record"]["text"])
asyncio.run(capture())
Metode 3: Ekspor CAR PDS
Untuk ekspor mentah lengkap — setiap post, setiap like, setiap follow, setiap blob media — Anda bisa meminta file CAR (Content Addressable aRchive) langsung dari PDS Anda. Ini adalah ekuivalen terdekat Bluesky untuk unduhan arsip X, tetapi memerlukan akses admin di PDS self-hosted atau permintaan dukungan di bsky.social.
File CAR tidak bisa dibaca manusia. Anda memerlukan tool seperti go-car atau script khusus untuk menguraikannya. Metode ini paling cocok untuk pengguna yang ingin backup forensik lengkap, bukan arsip yang bisa dibaca.
Metode 4: Tools Pihak Ketiga
Jika menulis Python bukan keahlian Anda, beberapa tool membungkus API menjadi pengalaman satu klik:
ThreadGrab mengekspor thread dan post long-form Bluesky ke Markdown bersih dengan satu perintah. Outputnya portabel — berfungsi di Obsidian, Notion, GitHub, atau generator situs statis mana pun. Untuk manajer media sosial yang perlu mengarsipkan konten di berbagai platform (X Articles, Bluesky long-form, LinkedIn Newsletter), ThreadGrab menangani seluruh pipeline.
Skython dan Bluesky Archive (keduanya open source) menawarkan ekspor berbasis GUI ke HTML dan JSON. Mereka menangani paginasi, unduhan media, dan deduplikasi secara otomatis.
Langkah Praktis untuk Mengarsipkan Konten Bluesky Anda Hari Ini
Langkah 1: Buat app password. Buka Pengaturan → App Passwords di Bluesky dan buat password khusus untuk script ekspor Anda. Jangan pernah gunakan password utama di script.
Langkah 2: Jalankan ekspor. Gunakan script API AT Protocol di atas untuk mengambil semua post Anda. Simpan output sebagai JSONL (satu objek JSON per baris).
Langkah 3: Konversi ke Markdown. Jalankan script konversi untuk menghasilkan satu file Markdown per post dengan frontmatter YAML. Format ini akan bertahan lebih lama dari platform mana pun.
Langkah 4: Atur ekspor berulang. Arsip terbaik adalah arsip yang diperbarui. Atur cron job bulanan untuk menjalankan ulang ekspor dan menyinkronkan post baru ke direktori arsip Anda.
# Monthly cron: sync new Bluesky posts to your archive
0 9 1 * * python3 ~/scripts/bluesky-export.py && python3 ~/scripts/bluesky-to-md.py
FAQ
Apakah Bluesky punya fitur ekspor arsip bawaan?
Tidak. Berbeda dengan X (Twitter) yang punya unduhan arsip bawaan, Bluesky tidak menawarkan ekspor sekali klik. Anda harus menggunakan API AT Protocol, tool pihak ketiga, atau meminta data langsung dari PDS (Personal Data Server) Anda.
Apa perbedaan Jetstream dan API Bluesky?
API standar Bluesky (app.bsky.feed.getAuthorFeed) mengembalikan post per halaman dan memerlukan autentikasi. Jetstream adalah WebSocket publik yang mengalirkan setiap post Bluesky baru secara real-time — tanpa autentikasi tetapi hanya membawa post baru, bukan historis.
Bisakah ekspor post Bluesky ke Markdown?
Ya. Setelah mengambil post via API, konversi ke Markdown sangat mudah. ThreadGrab menangani ekspor thread Bluesky ke Markdown secara otomatis. Untuk ekspor manual, script Python kecil dengan library atproto bisa menghasilkan satu file Markdown per post.
Apakah legal mengarsipkan post Bluesky orang lain?
Konten Bluesky bersifat publik secara default, tetapi mengarsipkan post pengguna lain menimbulkan pertanyaan etika dan hukum. ToS AT Protocol mengizinkan penggunaan arsip pribadi. Selalu hormati hak cipta, jangan republikasikan tanpa izin, dan ikuti pedoman komunitas Bluesky.
Apa yang terjadi pada post Bluesky saya jika PDS saya tutup?
Jika Personal Data Server Anda tutup, akun dan post Anda menjadi tidak dapat diakses kecuali Anda telah bermigrasi ke PDS baru atau mengekspor data. AT Protocol mendukung migrasi akun, tetapi Anda harus memulainya sebelum PDS offline. Ekspor rutin adalah satu-satunya backup yang dijamin.
Kesimpulan
Tidak adanya ekspor bawaan Bluesky adalah fitur dari desain terdesentralisasinya, bukan kelalaian. AT Protocol membuat data Anda lebih portabel daripada platform proprietari mana pun — tetapi portabilitas menuntut Anda benar-benar mem-port-nya. Pilih salah satu dari empat metode di atas, jalankan ekspor pertama Anda hari ini, dan atur job berulang agar arsip Anda tetap terkini. Post yang Anda tulis di 2024 akan berterima kasih di 2030.
Arsipkan thread Bluesky ke Markdown — otomatis
ThreadGrab mengekspor thread Bluesky, X Articles, dan issue LinkedIn Newsletter ke Markdown bersih. Satu perintah, output portabel, tanpa lock-in.
Coba ThreadGrab →Sumber: Dokumentasi AT Protocol, Bluesky Jetstream di GitHub. Contoh kode diverifikasi dengan SDK Python atproto v0.0.59.