Download YouTube & TikTok ke MP4/MP3 secara gratis. Dibangun dengan Next.js 14 App Router + Tailwind CSS + RapidAPI.
- ✅ Download video YouTube & TikTok
- ✅ Pilih format MP4 (Video) atau MP3 (Audio)
- ✅ Dark mode premium dengan efek glassmorphism
- ✅ API key aman (hanya ada di server, tidak terekspos ke browser)
- ✅ Rate limiting built-in
- ✅ Siap deploy ke Vercel
media-downloader/
├── app/
│ ├── layout.js # Root Layout (Server Component)
│ ├── page.js # Halaman utama (Server Component)
│ ├── globals.css # Style global + Tailwind
│ └── api/
│ └── download/
│ └── route.js # Route Handler → memanggil RapidAPI
├── components/
│ ├── DownloaderClient.js # UI interaktif (Client Component)
│ └── Footer.js # Footer (Server Component)
├── .env.local.example # Template environment variables
├── next.config.js
├── tailwind.config.js
└── vercel.json
npm installcp .env.local.example .env.localBuka .env.local dan isi:
RAPIDAPI_KEY=your_rapidapi_key_here
# YouTube API
RAPIDAPI_YT_HOST=your-youtube-api.p.rapidapi.com
RAPIDAPI_YT_ENDPOINT=https://your-youtube-api.p.rapidapi.com/dl
# TikTok API
RAPIDAPI_TT_HOST=your-tiktok-api.p.rapidapi.com
RAPIDAPI_TT_ENDPOINT=https://your-tiktok-api.p.rapidapi.com/npm run devBuka http://localhost:3000.
- Daftar di https://rapidapi.com
- Buka Developer Dashboard → Security → salin API Key Anda
- Cari API yang dibutuhkan:
- Untuk YouTube: cari
"YouTube Video Downloader"atau"YouTube MP3 Downloader" - Untuk TikTok: cari
"TikTok Video No Watermark"
- Untuk YouTube: cari
- Subscribe ke API tersebut (banyak yang punya free tier)
- Buka tab Code Snippets → pilih Node.js → salin nilai
X-RapidAPI-Hostdan URL endpoint
Setiap API di RapidAPI memiliki struktur JSON response yang berbeda.
Buka app/api/download/route.js dan cari bagian SESUAIKAN MAPPING INI:
// Contoh: jika API Anda mengembalikan { video_link: "..." }
downloadUrl = data?.video_link || data?.url || null;Uji response API dulu di halaman RapidAPI sebelum mengganti mapping.
npm i -g vercel
vercel- Push repo ke GitHub
- Import di https://vercel.com/new
- Set environment variables di Settings → Environment Variables:
RAPIDAPI_KEYRAPIDAPI_YT_HOSTRAPIDAPI_YT_ENDPOINTRAPIDAPI_TT_HOSTRAPIDAPI_TT_ENDPOINT
- Deploy!
- File
.env.localTIDAK BOLEH di-commit ke git (sudah ada di.gitignore) - Semua env variable tanpa prefix
NEXT_PUBLIC_= aman, hanya terbaca di server - Rate limit default: 10 request/menit per IP (bisa diubah di
route.js) - Untuk production besar, ganti rate limiter in-memory dengan Redis (Upstash +
@vercel/kv)
Untuk keperluan pribadi dan edukasi. Hormati hak cipta konten kreator.