Bluesky ke Markdown 2026: Simpan Postingan sebagai Markdown
Bluesky dibangun di atas AT Protocol (“atproto”), dan pilihan itu menjadikannya salah satu platform sosial yang paling mudah diekspor di tahun 2026. Setiap postingan publik, thread, dan feed penulis disajikan oleh API publik yang mengembalikan JSON bersih — tanpa akun, tanpa token, dan tanpa jabat tangan rate limit untuk pembacaan dasar. Artinya, “Bluesky ke Markdown” bukan sekadar solusi khusus; itu adalah alur kerja normal yang didukung.
Panduan ini menunjukkan mengapa menyimpan postingan Bluesky sebagai Markdown layak dilakukan, cara kerja endpoint publik atproto, dan rute tercepat menuju arsip lokal yang portabel — dari satu curl hingga skrip batch yang bisa Anda jalankan untuk seluruh timeline.
Ringkasan singkat: Bluesky mengekspos postingan publik melalui public.api.bsky.app tanpa autentikasi. Selesaikan handle menjadi DID, ambil feed, ubah teks record menjadi Markdown, dan Anda memiliki salinan tahan lama yang dapat dicari dalam hitungan detik. Ini pola yang sama “ambil kontennya, simpan Markdown-nya” yang digunakan ThreadGrab untuk X — dan berlaku juga untuk Bluesky.
Mengapa Menyimpan Postingan Bluesky sebagai Markdown
Bluesky lebih terbuka daripada kebanyakan jaringan, tetapi terbuka tidak berarti permanen. Postingan bisa dihapus, handle bisa berubah, dan masalah akun atau instance bisa membawa daftar bacaan Anda ikut hilang. Jika sebuah postingan penting — catatan riset, thread berguna, referensi yang nanti Anda kutip — satu-satunya salinan yang benar-benar Anda kendalikan adalah yang ada di disk Anda sendiri.
Markdown adalah format yang tepat untuk pekerjaan ini karena tiga alasan konkret:
- Ini teks polos. Anda bisa mencarinya, menggrep-nya, dan membacanya di editor atau aplikasi catatan apa pun sekarang maupun sepuluh tahun lagi.
- Ini bisa diperiksa versinya. Masukkan ke git dan Anda bisa membandingkan postingan dengan versi yang diedit, yang penting saat melacak perubahan atau koreksi.
- Ini mengisi alur kerja AI. LLM, agen, dan pipeline RAG mencerna Markdown jauh lebih bersih daripada gambar tangkapan atau web scraper.
Screenshot menjaga pikselnya, bukan isinya. Markdown menjaga kata-kata, struktur, tautan, dan metadata — itulah sebabnya komunitas pengarsipan menstandardisasinya.
Bagaimana API Publik Bluesky Bekerja
Bluesky berjalan di atas atproto, dan jalur pembacaan sengaja dibuat publik. Dua endpoint melakukan hampir semua pekerjaan pengarsipan:
com.atproto.identity.resolveHandle— mengubah handle seperti@bsky.appmenjadi DID yang persisten (did:plc:...).app.bsky.feed.getAuthorFeed(dangetPosts) — mengembalikan postingan terbaru untuk DID tersebut sebagai JSON, termasuk teks postingan dan cap waktu.
URL dasarnya adalah https://public.api.bsky.app. Referensi endpoint lengkap dipublikasikan oleh Bluesky di docs.bsky.app, dan endpoint feed mendokumentasikan bentuk respons yang persis. Tidak ada langkah masuk untuk konten publik: Anda menyelesaikan, mengambil, dan selesai. Responsnya adalah JSON terstruktur, jadi mengubahnya menjadi Markdown hanya beberapa baris kode dalam bahasa apa pun.
Catatan: Anda hanya memerlukan app password (token) jika ingin membaca postingan privat atau melakukan tindakan pada akun. Pengarsipan publik murni tidak pernah menyentuh autentikasi, yang juga memudahkan otomatisasi dengan skrip di server headless atau dalam cron job.
Metode 1 — Simpan Satu Postingan dengan curl
Cara tercepat untuk mengambil satu postingan Bluesky sebagai Markdown adalah memanggil API publik secara langsung. Pertama, selesaikan handle penulis menjadi DID:
curl "https://public.api.bsky.app/xrpc/com.atproto.identity.resolveHandle?handle=bsky.app"
Respons mengembalikan identifikasi persisten:
{ "did": "did:plc:z72i7hdynmk6r22z27h6tvur" }
Sekarang ambil feed penulis, simpan hanya field yang Anda butuhkan. Satu baris pendek Python mengubah JSON menjadi bullet Markdown bersih:
import json, urllib.request
did = "did:plc:z72i7hdynmk6r22z27h6tvur"
url = ("https://public.api.bsky.app/xrpc/app.bsky.feed.getAuthorFeed"
"?actor=" + did + "&limit=5")
data = json.load(urllib.request.urlopen(url))
for item in data["feed"]:
rec = item["post"]["record"]
print("## " + rec.get("createdAt", "")[:10])
print(rec.get("text", "") + "\n")
Jalankan dan Anda mendapatkan blok Markdown yang dapat dibaca per postingan — tanggal sebagai judul, teks sebagai paragraf. Itulah seluruh alur kerja untuk penyimpanan manual sekali saja.
Metode 2 — Arsipkan Seluruh Timeline dalam Batch
Untuk postingan terbaru dari satu akun utuh, tambahkan pagination. getAuthorFeed mengembalikan cursor yang Anda teruskan kembali untuk mengambil halaman berikutnya, jadi loop kecil menangkap semuanya tanpa melewatkan apa pun:
import json, urllib.request, urllib.parse
did = "did:plc:z72i7hdynmk6r22z27h6tvur"
cursor = None
for page in range(3):
params = {"actor": did, "limit": 50}
if cursor:
params["cursor"] = cursor
url = ("https://public.api.bsky.app/xrpc/app.bsky.feed.getAuthorFeed?"
+ urllib.parse.urlencode(params))
data = json.load(urllib.request.urlopen(url))
for item in data.get("feed", []):
rec = item["post"]["record"]
print("## " + rec.get("createdAt", "")[:10] + "\n"
+ rec.get("text", "") + "\n")
cursor = data.get("cursor")
if not cursor:
break
Setiap kali dijalankan, skrip menambahkan postingan ke file Markdown, dan cursor menjamin Anda melihat semua halaman. Jalankan mingguan di dalam cron job dan Anda mendapatkan arsip bergulir yang dapat dicari untuk akun Bluesky mana pun yang Anda ikuti.
Metode 3 — ThreadGrab untuk Markdown Lintas-Platform
Rute API itu kuat tetapi perlu penanganan manual. Jika Anda menginginkan hasil yang sama untuk thread X, X Articles panjang, dan postingan Bluesky tanpa menulis dan memelihara skrip, ThreadGrab membungkus pola “ambil kontennya, simpan Markdown-nya” ke dalam satu alat. Ia mengubah postingan sosial menjadi Markdown bersih, mengunduh media tertaut ke penyimpanan Anda sendiri, dan memberi Anda pustaka portabel yang tidak bergantung pada API atau harga satu platform.
Itu penting saat arsip Anda mencakup banyak platform. Pendekatan API dengan satu skrip bekerja indah untuk satu akun Bluesky; pustaka campuran X dan Bluesky lebih diuntungkan oleh alat yang menstandarkan format keluaran di mana-mana.
Metode Mana yang Harus Anda Gunakan?
| Skenario | Cocok terbaik | Mengapa |
|---|---|---|
| Penyimpanan manual sekali saja | curl + resolveHandle | Tanpa setup, selesai dalam detik |
| Seluruh akun / timeline | Skrip getAuthorFeed berpaginasi | Pagination cursor, tanpa autentikasi |
| Arsip mingguan berkelanjutan | Cron otomatis + file Markdown | Riwayat bergulir dan dapat dicari |
| Pustaka campuran X + Bluesky | ThreadGrab | Markdown terstandar di berbagai platform |
Tidak ada satu jawaban yang benar. Mulailah dengan one-liner curl untuk membuktikan konsepnya, lalu tingkatkan ke skrip berpaginasi atau ThreadGrab seiring arsip Anda bertumbuh.
Membangun Arsip Bluesky yang Portabel
Metode mana pun yang Anda pilih, jaga keluaran tetap terstruktur agar selalu berguna. Konvensi sederhana mengalahkan yang rumit:
bluesky-archive/
profile.json
2026-08-05-bsky-app.md
2026-08-04-group-chats-100.md
media/
image-01.jpg
Beri nama setiap file berdasarkan tanggal dan slug postingan, simpan DID dan waktu pengambilan dalam profile.json kecil di sampingnya, dan jaga tautan gambar tetap relatif sehingga folder ter-mirror dengan bersih di mana saja. Karena semuanya berupa teks polos plus file, arsip ini portabel antara repo git, drive cloud, dan disk lokal — tanpa memerlukan server Bluesky untuk membacanya.
Kesimpulan
Desain atproto Bluesky adalah keunggulan nyata untuk pengarsipan. Postingan publik hanya berjarak satu panggilan API publik dari Markdown bersih — tanpa autentikasi, tanpa paywall, tanpa alat ekspor proprietary. Baik Anda mengambil satu postingan dengan curl, memaginasi seluruh timeline dengan skrip pendek, atau menggunakan ThreadGrab untuk menjaga X dan Bluesky dalam satu pustaka terstandar, hasilnya sama: konten yang benar-benar Anda kendalikan.
Postingan menghilang, handle berubah, algoritma bergerak maju. Markdown yang Anda simpan hari ini adalah salinan yang masih bisa Anda baca tahun depan — dan salinan yang bisa Anda berikan ke alat, LLM, atau aplikasi catatan apa pun yang datang berikutnya.
Simpan postingan yang penting. ThreadGrab mengubah thread X dan postingan Bluesky menjadi Markdown bersih, mengunduh media ke disk Anda sendiri, dan menjaga pustaka lintas-platform Anda tetap portabel — sehingga konten yang Anda hargai tidak pernah terperangkap di satu jaringan.
Coba ThreadGrabFAQ
Ya. API publik atproto Bluesky menyajikan postingan sebagai JSON polos tanpa autentikasi, jadi Anda bisa mengambil postingan, thread, atau feed penulis lengkap dan memformatnya sebagai Markdown di perangkat Anda. Alat khusus dan ekstensi browser juga merender postingan Bluesky sebagai Markdown dengan satu klik.
Untuk postingan publik, tidak. Endpoint publik atproto public.api.bsky.app memungkinkan Anda menyelesaikan handle menjadi DID dan mengambil feed penulis atau postingan individual tanpa masuk. Anda hanya memerlukan app password jika ingin membaca konten privat atau bertindak atas nama akun.
Cara termudah adalah mengganti domain pada URL postingan atau memanggil API publik secara langsung. Misalnya, selesaikan handle dengan com.atproto.identity.resolveHandle, lalu panggil app.bsky.feed.getAuthorFeed atau getPosts dan ubah teks record menjadi Markdown. Skrip lokal dapat mengotomatiskan ini untuk setiap postingan yang ingin Anda simpan.
Ya. ThreadGrab dibangun untuk mengubah konten sosial menjadi Markdown bersih dan mengunduh media tertaut ke penyimpanan Anda sendiri. Ia mendukung alur kerja yang sama untuk postingan Bluesky sebagaimana untuk thread X dan postingan panjang, sehingga Anda mendapatkan pustaka Markdown portabel dan dapat dicari di berbagai platform.
Markdown adalah teks polos, sehingga dapat dicari, diperiksa versinya di git, diindeks oleh LLM, dan dibaca di aplikasi catatan apa pun. Screenshot adalah gambar: Anda tidak bisa Ctrl+F, tidak bisa diff, dan tidak bisa menempelkannya ke alur kerja AI. Markdown menjaga teks, struktur, dan tautan sambil tetap portabel dan tahan masa depan.