justice-api
v1.0.0
Published
Multi-scraper REST API (YouTube, Anime, TikTok, Instagram, Twitter, AI, dsb) dibangun dengan Express.js
Maintainers
Readme
Febry API — Backend
Backend REST API berisi 19 endpoint scraper (YouTube, Anime, TikTok, Instagram, Twitter/X, tempmail, AI, dsb), dibangun dengan Node.js + Express.
Ini adalah tahap 1: hanya backend API (belum ada halaman dokumentasi web). Website dokumentasinya menyusul di tahap berikutnya.
Instalasi
npm install
cp .env.example .env
npm run dev # mode development (auto-restart)
# atau
npm start # mode productionServer berjalan di http://localhost:3000 secara default (ubah lewat .env).
Cek endpoint
GET /health— cek server hidupGET /api— pesan selamat datangGET /api/endpoints— daftar semua endpoint yang tersedia (nama, method, path, parameter)
Tambah endpoint baru lewat halaman admin
Buka http://localhost:3000/admin.html (ada juga link "+ ENDPOINT" di pojok kanan atas halaman dokumentasi /index.html).
Alurnya:
- Tempel kode class API baru (mis.
class SpotifyDL { ... }) di kotak kode. - Isi nama file service, slug route (baru atau nambah ke route existing), sub-path, method, nama method yang dipanggil, dan daftar parameter.
- Pilih kategori dokumentasi (existing atau bikin baru).
- Klik Preview buat lihat persis isi file yang akan dibuat/diubah.
- Kalau sudah oke, klik Apply — otomatis:
- bikin
src/services/{nama}.service.js - bikin/nambah
src/routes/{slug}.routes.js - daftarin ke
src/routes/index.js(import,router.use, entry/api/endpoints,total) - update
public/data.js(kategori & endpoint di halaman dokumentasi)
- bikin
Kalau server jalan via npm run dev (nodemon), server auto-restart setelah Apply. Kalau via npm start, restart manual (Ctrl+C lalu npm start lagi).
Catatan: generator ini pakai pencocokan bracket sederhana buat nyisipin ke
routes/index.jsdanpublic/data.js, jadi hindari karakter{ } [ ]literal di kolom deskripsi/nama endpoint.
Struktur folder
server.js # entry point
src/
app.js # setup express, middleware, error handler
config/ # konfigurasi env
middleware/ # error handler & 404 handler
utils/ # helper response & asyncHandler
services/ # logic scraping/API tiap platform (1 file = 1 sumber)
routes/ # route express, memanggil servicesDaftar endpoint (ringkas)
| Kategori | Path | Keterangan |
|---|---|---|
| YouTube | /api/youtube/mp3, /api/youtube/search | Download MP3 & cari video |
| Anime | /api/anime/nimegami, /api/anime/otakudesu/* | Scraper anime (2 sumber) |
| Tempmail | /api/tempmail/inboxes, /api/tempmail/mailtm | Email sementara (2 provider) |
| Gambar | /api/image/upscale | Upscale resolusi gambar |
| Berita | /api/news/kompas | Berita Kompas (latest/detail/related/flow) |
| TikTok | /api/tiktok/slide | Download slide/carousel TikTok |
| Tools | /api/tools/ouo-bypass, /api/tools/arti-nama | Bypass shortlink & cek arti nama |
| AI | /api/ai/deepseek, /api/ai/nano-banana | Chat AI & generate gambar AI |
| Pinterest | /api/pinterest/search | Cari gambar Pinterest |
| Stalk | /api/stalk/discord, /api/stalk/github | Info akun Discord & GitHub |
| Movie | /api/movie/movieku | Info film/series (home/search/detail) |
| Twitter/X | /api/twitter/download | Download media tweet |
| Instagram | /api/instagram/download | Download post/reel/story IG |
| Uploader | /api/uploader/videy | Upload video ke Videy CDN |
Detail parameter lengkap ada di response GET /api/endpoints.
Catatan penting
/api/tools/ouo-bypassbutuh dependency optionalpuppeteer(Chromium headless). Kalau belum ke-install otomatis, jalankannpm install puppeteersecara manual. Endpoint ini juga lebih berat & lambat dibanding endpoint lain.- Semua endpoint ini melakukan scraping/menggunakan API pihak ketiga yang tidak resmi/tidak didokumentasikan. Artinya sewaktu-waktu bisa berhenti berfungsi kalau situs sumbernya berubah struktur atau memblokir — ini wajar untuk jenis endpoint seperti ini, bukan bug di kode.
- Ada rate limiter bawaan (default 60 request/menit per IP), bisa diatur lewat
.env(RATE_LIMIT_WINDOW_MS,RATE_LIMIT_MAX). - Beberapa endpoint (deepseek, mail.tm, nano-banana) instance service-nya dipakai bersama antar-request. Ini oke untuk skala kecil–menengah; kalau mau production besar sebaiknya di-refactor pakai session/store per user.
Lanjutan
Setelah backend ini dites & sesuai kebutuhan, lanjut ke tahap 2: halaman frontend + dokumentasi API interaktif.
