/* * Name: NfToken Generate Akun Premium Rendom * Description: Ngambil Nf Token Login Ke Akun Netflix Premium ( gak bisa costum plan/negara) * Credit by zx * Note: Kalau Mau di sher lagi kasih sumber/credit ya 😔😔 * * Sumber: https://whatsapp.com/channel/0029VbDLqe7EquiSF4STU13o * Saluran Yang punya Nftoken ya: * https://whatsapp.com/channel/0029VbDTbWUD8SE7nkyNsd33/317 * * URL WEBSITE UPLOADER GRATIS: https://zfile.web.id/ * Website Uploader File Gratis yang bisa memberikan url public untuk mendownload File tersebut * */ const axios = require('axios'); const fs = require('fs'); const path = require('path'); const API_URL = 'https://nftoken.zone.id/api/auto-generate'; const MAX_RETRIES = 3; const RETRY_DELAY_MS = 1000; /** * Generate nftoken dari nftoken.zone.id * @param {number} count - Jumlah token yang ingin di-generate (default: 1) * @param {string} outputFile - Nama file output JSON (optional) * @returns {Promise} Hasil response atau array response */ async function generateNFToken(count = 1, outputFile = null) { const results = []; const errors = []; console.log(`šŸš€ Starting generation of ${count} token(s)...\n`); for (let i = 0; i < count; i++) { let attempt = 0; let success = false; let result = null; while (attempt < MAX_RETRIES && !success) { try { const response = await axios.post(API_URL, {}, { headers: { 'Content-Type': 'application/json', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', 'Accept': 'application/json', }, timeout: 15000, }); if (response.data?.success) { result = { index: i + 1, success: true, token: response.data.token, expiry: response.data.expiry, profile: response.data.profile, links: response.data.links, type: response.data.type, generatedAt: new Date().toISOString(), }; success = true; console.log(`āœ… [${i + 1}/${count}] Token generated successfully`); console.log(` šŸ“Œ Token: ${response.data.token.substring(0, 50)}...`); console.log(` šŸ“… Expiry: ${response.data.expiry}`); console.log(` šŸŒ Country: ${response.data.profile?.country || 'Unknown'}`); console.log(` šŸ’Ž Plan: ${response.data.profile?.plan || 'Unknown'}`); console.log(''); } else { throw new Error('API returned success: false'); } } catch (error) { attempt++; const msg = error.response ? `HTTP ${error.response.status} - ${error.response.statusText}` : error.message; console.log(`āŒ [${i + 1}/${count}] Attempt ${attempt}/${MAX_RETRIES} failed: ${msg}`); if (attempt >= MAX_RETRIES) { errors.push({ index: i + 1, error: msg, failedAt: new Date().toISOString(), }); } else { console.log(` ā³ Retrying in ${RETRY_DELAY_MS}ms...`); await sleep(RETRY_DELAY_MS); } } } if (result) results.push(result); } const summary = { totalRequested: count, successCount: results.length, errorCount: errors.length, generatedAt: new Date().toISOString(), data: results, errors, }; console.log('═══════════════════════════════════════'); console.log(`šŸ“Š SUMMARY: ${results.length}/${count} berhasil, ${errors.length} gagal`); console.log('═══════════════════════════════════════\n'); if (outputFile) { const outputPath = path.resolve(outputFile); fs.writeFileSync(outputPath, JSON.stringify(summary, null, 2)); console.log(`šŸ’¾ Results saved to: ${outputPath}`); } return count === 1 ? results[0] || errors[0] : summary; } function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } /** * Helper: Ambil hanya token string (untuk penggunaan cepat) */ async function getTokenOnly() { const result = await generateNFToken(1); return result?.token || null; } // Contoh Penggunaan (async () => { try { // Generate 1 token const single = await generateNFToken(1); console.log('\nšŸ“Ž Netflix Link:', single); // Generate 5 token sekaligus & simpan ke file // const bulk = await generateNFToken(5, 'results.json'); // Ambil token string saja // const token = await getTokenOnly(); // console.log('Raw token:', token); } catch (err) { console.error('Fatal error:', err); } })(); module.exports = { generateNFToken, getTokenOnly };