Source Code · Node.js + Python · Lisensi MIT
Source Code Bot Pengunduh Putusan Mahkamah Agung untuk Arsip PDF Lokal Anda
Satu paket berisi dua mesin setara — Node.js (Playwright) dan Python (FastAPI + curl_cffi) — plus UI web, antrean multi-tahun, resume tanpa mengunduh ulang, katalog SQLite, dan mode CLI. Anda membeli kode sumbernya dan menjalankannya di server sendiri.
Produk ini adalah source code, bukan layanan berlangganan atau bundel PDF. Dokumen diunduh langsung dari situs resmi saat aplikasi dijalankan.
2
mesin setara: Node.js dan Python
59
uji offline untuk mesin Python
30
riwayat job terakhir di UI
MIT
bebas dipelajari dan dimodifikasi
Dari unduhan manual menjadi pipeline arsip yang bisa diulang
Direktori putusan menampilkan sekitar 20 dokumen per halaman dan pagination situs dibatasi 499 halaman. Untuk arsip satu tahun saja, pekerjaan menyalin tautan, mengunduh, dan mencatat file cepat menjadi tidak praktis.
Masalah yang dihadapi tim legal research
- Ribuan PDF harus diunduh satu per satu.
- Batas 499 halaman membuat satu daftar tahun tidak cukup.
- Halaman challenge atau anti-bot dapat menghentikan proses.
- Koneksi terputus meninggalkan file setengah jadi dan unduhan harus diulang.
- Nomor, pengadilan, kategori, dan tanggal tidak tercatat rapi.
- Tidak ada pantauan berapa yang berhasil, gagal, dan tersisa.
Yang diambil alih oleh source code ini
- Mengambil daftar tahun dan jumlah putusan langsung dari situs.
- Menyusun partisi kategori → sub-kategori → pengadilan agar batas halaman tidak tertabrak.
- Mengunduh PDF, memvalidasi isinya, dan memberi nama file yang aman.
- Mencatat setiap dokumen ke database SQLite per tahun.
- Menyediakan UI web dan CLI dengan state yang bisa dijeda dan dilanjutkan.
- Menampilkan progres, log, riwayat, dan katalog data yang bisa dicari.
Yang Anda dapatkan dari paket source code ini
Semua komponen inti disertakan. Tidak ada layanan hosting, langganan, atau kumpulan PDF yang dibundel.
Mesin Node.js
Express + Playwright/Chromium dengan plugin stealth, profil browser persisten, dan penanganan halaman challenge. Cocok bila situs memerlukan eksekusi JavaScript.
Mesin Python
FastAPI + curl_cffi + SQLite tanpa Chromium. Lebih ringan untuk VPS kecil, dengan fingerprint TLS/HTTP2, antrean durabel, dan resume per baris.
UI web operasional
Single Download, Download All, Bulk multi-tahun, panel Progres, Log, Riwayat Job, serta halaman Data Terunduh dengan filter, pencarian, dan pagination.
Katalog SQLite
Satu database per tahun berisi nomor, judul, pengadilan, kategori, tanggal putus, nama file, ukuran, status, dan hash untuk mesin Python. Siap diolah dengan SQL.
CLI dan alat perawatan
Node CLI untuk unduhan dan perencanaan; mesin Python menyediakan perintah plan, run, collect, download, status, verify, repair, export, dan import-legacy. Cocok untuk otomasi cron/systemd serta pemeliharaan arsip.
Dokumentasi, deploy, dan tes
README operasional, contoh konfigurasi, template systemd + nginx dengan pengaturan SSE, serta 59 uji offline untuk mesin Python.
Catatan paket: folder hasil unduhan dan data dibuat otomatis saat pertama dijalankan. PDF putusan tidak disertakan dalam source code.
Fitur yang benar-benar terpasang di dalam kode
Setiap poin di bawah dapat ditelusuri ke implementasi aplikasi, bukan sekadar daftar rencana.
1. Unduh terarah per tahun dan pengadilan
Pilih tahun, jumlah putusan, halaman awal, slug kategori, dan slug pengadilan. Cocok untuk mengambil sampel putusan perdata, pidana, agama, TUN, pajak, atau militer dari pengadilan tertentu.
2. Download All dengan partisi bertingkat
Satu tahun dipecah menjadi partisi kategori → sub-kategori → pengadilan. Ambang partisi default 9.000 item dan batas halaman 499; mesin Node.js juga memiliki pengaman maksimal 5.000 partisi.
3. Antrean multi-tahun yang bisa dijeda
Centang beberapa tahun, lalu jalankan Start, Pause, Resume, Stop, atau Clear Data. State antrean disimpan sehingga bisa dilanjutkan setelah server restart melalui auto-resume.
4. Progres realtime tanpa menebak
Server-Sent Events menampilkan jumlah berhasil, dilewati, gagal, halaman, partisi, kecepatan, ETA, ukuran, dan log. Panel progres tetap terhubung tanpa polling manual.
5. Resume dan perlindungan file setengah jadi
File yang sudah ada dan valid akan dilewati. Unduhan ditulis ke berkas sementara .part lalu di-rename, sehingga file terputus tidak dianggap final. Pada mesin Node.js, kegagalan tidak mengurangi kuota target.
6. Validasi isi PDF dan hash
Isi diperiksa dari magic bytes %PDF-, bukan status HTTP. Respons HTML tidak pernah disimpan sebagai .pdf. Mesin Python menghitung SHA-256; perintah verify --hash memeriksa ulang, dan verify --fix menandai file bermasalah untuk diunduh ulang.
7. Katalog data yang bisa dicari
Halaman Data Terunduh membaca SQLite langsung: filter tahun dan pengadilan, filter status, pencarian nomor/judul/nama file, pagination, serta pratinjau atau unduh PDF dari aplikasi.
8. Riwayat, log, dan audit operasional
UI menampilkan 30 riwayat job terakhir dan log proses. Setiap dokumen memiliki status, ukuran bila tersedia, waktu proses, dan pesan kegagalan yang bisa ditelusuri.
9. Ketahanan operasional mesin Python
Retry dengan backoff, menghormati header Retry-After saat kena 429, konkurensi adaptif, pengembalian baris downloading yatim ke antrean, dan berhenti rapi bila sisa disk di bawah 20 GB (dapat diubah).
Dua mesin, satu alur kerja yang sama
Pilih implementasi yang sesuai dengan infrastruktur Anda. Keduanya memiliki tombol dan panel UI yang sama, serta port dan folder data terpisah sehingga bisa hidup berdampingan.
| Aspek | Node.js | Python |
|---|---|---|
| Browser | Wajib Chromium/Chrome melalui Playwright | Tidak perlu browser |
| RAM (acuan dokumentasi) | ±300–700 MB | ±60–150 MB |
| Pendekatan anti-bot | Stealth, profil persisten, dan user agent yang konsisten | Fingerprint TLS/HTTP2 melalui curl_cffi |
| State dan resume | JSONL per tahun + penanda partisi | SQLite WAL per tahun, state per baris |
| Port UI default | 3000 | 3001 |
| Paling cocok untuk | VPS dengan Chromium atau lingkungan yang sudah punya Chrome | VPS kecil tanpa GUI yang berjalan 24 jam |
Angka RAM adalah acuan dokumentasi, bukan jaminan. Beban aktual bergantung pada ukuran arsip, aktivitas, dan respons situs target. Setiap instance hanya menangani satu job aktif; jangan menjalankan CLI dan UI pada tahun yang sama secara bersamaan.
Alur kerja: dari nol ke arsip lokal
Tidak ada layanan yang dikelola penjual. Anda menyiapkan lingkungan, menjalankan aplikasi, dan menyimpan hasilnya di infrastruktur sendiri.
Siapkan lingkungan
Gunakan Node.js 22.13+ dengan Chromium, atau Python 3.11+ di virtual environment. Dependensi Python dipasang dengan pip install -e ..
Salin dan sesuaikan konfigurasi
Atur port, folder unduhan, folder data, opsi browser/headless, dan profil impersonate sesuai kebutuhan. Nilai default sudah disediakan dalam contoh konfigurasi.
Jalankan UI web atau CLI
Buka UI di localhost, atau jalankan mode CLI untuk server tanpa interaksi. Keduanya menyediakan endpoint health; implementasi Python juga menyediakan dokumentasi API.
Pilih cakupan unduhan
Tentukan tahun dan jumlah untuk sampel, gunakan filter kategori/pengadilan, atau jalankan Download All dan Bulk multi-tahun untuk arsip yang lebih luas.
Pantau, verifikasi, dan backup
Awasi Progres dan Log, jalankan verify pada mesin Python untuk memeriksa integritas, lalu backup database per tahun. PDF sebaiknya dipindahkan ke storage terpisah karena ukurannya besar.
Cocok untuk siapa
Source code ini ditujukan untuk tim yang membutuhkan arsip putusan lokal dan alur unduhan yang dapat diulang.
Kantor hukum dan tim legal research
Membangun arsip rujukan internal berdasarkan pengadilan, kategori, atau tahun tertentu.
Akademisi dan peneliti hukum empiris
Mengumpulkan korpus putusan untuk analisis tren, klasifikasi, atau penelitian dokumen.
Legal tech dan tim data
Mengisi pipeline data dengan metadata dan PDF yang tercatat dalam SQLite per tahun.
LBH, jurnalis, dan pemantau kebijakan
Menyiapkan arsip dokumen untuk penelusuran kasus dan peliputan yang berbasis data.
Notaris dan konsultan hukum
Menyimpan rujukan putusan tertentu agar mudah dicari kembali saat dibutuhkan.
Bukan skrip sekali jalan
Yang Anda dapatkan adalah aplikasi operasional dengan state, katalog, dan alat pemeliharaan — bukan sekadar potongan kode pengunduh.
- ✓Dua implementasi setara, bukan satu skrip rapuh.
- ✓State durabel: pause, resume, dan restart melanjutkan dari data yang tersimpan.
- ✓Validasi isi file dan hash, bukan hanya status HTTP.
- ✓Katalog SQLite siap query, bukan tumpukan file tanpa metadata.
- ✓UI operasional, CLI, dan template deploy dalam satu paket.
- ✓Lisensi MIT: bebas dipelajari, dimodifikasi, dan diintegrasikan.
Kebutuhan teknis dan batasan yang perlu diketahui
Transparansi ini penting agar Anda dapat menilai kesesuaian paket sebelum membeli.
Siapkan sebelum menjalankan
- Kemampuan dasar menjalankan perintah terminal dan mengelola VPS/server.
- Node.js 22.13+ dengan Chromium, atau Python 3.11+ untuk mesin alternatif.
- Ruang disk besar: rata-rata PDF ±157 KB, tetapi satu tahun penuh bisa puluhan hingga ratusan GB. Dokumentasi menyarankan minimal 250 GB untuk tahun besar.
- Koneksi internet yang stabil; situs target membatasi laju permintaan.
- Akses tulis ke folder aplikasi untuk PDF, state, dan database.
- Jika ingin diakses dari publik: pasang autentikasi di reverse proxy, VPN, atau IP allowlist. UI tidak memiliki login bawaan.
Batasan yang perlu dipahami
- Bukan produk resmi Mahkamah Agung dan tidak berafiliasi dengan lembaga tersebut.
- Tidak menyertakan PDF; seluruh dokumen diunduh dari situs resmi saat aplikasi berjalan.
- Situs target dapat berubah, membatasi laju, atau memunculkan challenge. Kode menyediakan strategi penanganan, tetapi tidak ada jaminan selalu berhasil.
- Kecepatan bergantung pada respons server target. Dokumentasi mencatat acuan ±10–20 putusan/menit untuk Node.js dan 0,04–4 permintaan/detik untuk Python, bukan janji hasil.
- Satu instance hanya satu job aktif; satu tahun sebaiknya ditulis oleh satu proses.
- Tidak ada jaminan pembaruan berkelanjutan. Lisensi MIT menyediakan kode apa adanya tanpa garansi.
- Penggunaan wajib mematuhi ketentuan situs dan peraturan perlindungan data yang berlaku.
Pertanyaan yang sering diajukan
Apakah saya membeli aplikasi siap pakai atau source code?
Anda membeli source code. Paket berisi implementasi Node.js dan Python, aset UI, dokumentasi, serta template deploy. Anda menjalankannya sendiri di server atau komputer.
Apakah PDF putusan sudah termasuk?
Tidak. Aplikasi mengunduh PDF dari situs resmi saat dijalankan. Paket tidak membundel dokumen dan tidak menjual kembali isi putusan.
Apakah bisa dipakai tanpa kemampuan coding?
Instalasi dan penggunaan UI memerlukan langkah terminal. Untuk kustomisasi alur, integrasi dengan sistem lain, atau perubahan logika, dibutuhkan kemampuan teknis.
Apakah bisa dijalankan di shared hosting?
Tidak. Aplikasi membutuhkan proses Node/Python yang berjalan terus, akses filesystem, dan ruang disk besar. VPS atau komputer lokal lebih sesuai.
Bagaimana jika situs mengubah struktur atau memunculkan challenge?
Kode sudah memiliki parser dan strategi anti-bot, tetapi perubahan situs dapat memerlukan penyesuaian. Dokumentasi menyediakan panduan troubleshooting, mode headful, dan profil impersonate. Tidak ada jaminan situs selalu dapat diakses.
Apakah ada login dan keamanan bawaan?
UI tidak memiliki login. Template nginx menyertakan contoh autentikasi dasar; gunakan juga VPN, IP allowlist, atau Cloudflare Access, dan jangan mengekspos port aplikasi secara langsung.
Apakah boleh dimodifikasi dan didistribusikan lagi?
Lisensi MIT mengizinkan penggunaan, modifikasi, dan distribusi, termasuk komersial, selama notice hak cipta dan izin disertakan. Kode disediakan tanpa garansi.
Apakah Node.js dan Python bisa dijalankan bersamaan?
Bisa, karena port dan folder data terpisah. Namun setiap instance hanya menangani satu job aktif, dan jangan mengarahkan keduanya ke data atau tahun yang sama secara bersamaan.
Siap membangun arsip putusan yang bisa Anda kendalikan?
Dapatkan source code lengkapnya, jalankan di VPS atau komputer sendiri, dan sesuaikan dengan alur kerja tim Anda.
- ✓Source Node.js + Python + UI web
- ✓CLI, katalog SQLite, dan alat verifikasi
- ✓Dokumentasi, template systemd/nginx, 59 uji offline
- ✓Lisensi MIT untuk kebutuhan pengembangan Anda
Gunakan tombol pembelian di halaman produk ini untuk mendapatkan paket source code-nya.
Tidak termasuk hosting, langganan, PDF putusan, atau jaminan pembaruan. Pastikan kebutuhan teknis Anda sesuai dengan daftar di atas.
Produk ini independen dan tidak berafiliasi dengan Mahkamah Agung RI. Sumber data yang didukung adalah situs direktori putusan Mahkamah Agung. Gunakan secara wajar, hormati ketentuan situs, dan patuhi peraturan perlindungan data yang berlaku. Source code disediakan apa adanya di bawah lisensi MIT.