UNPKG

decode-imrerezz

Version:

Module API Decode IM-Rerezz

214 lines (189 loc) 7.38 kB
const axios = require('axios'); const tiktokdl = async (url, apikey) => { if (!url || !apikey) throw new Error('URL dan API key wajib'); const apiUrl = `https://www.decode.im-rerezz.xyz/api/dl/tiktokv2?url=${encodeURIComponent(url)}&apikey=${apikey}`; try { const { data } = await axios.get(apiUrl); if (!data.status) { throw new Error('Gagal mengambil data dari API'); } return data.result; } catch (error) { throw new Error(`Error fetching TikTok data: ${error.message}`); } }; const ytmp3 = async (url, apikey) => { if (!url || !apikey) throw new Error('URL dan API key wajib'); try { const apiUrl = `https://www.decode.im-rerezz.xyz/api/dl/ytmp3?url=${encodeURIComponent(url)}&apikey=${apikey}`; const res = await axios.get(apiUrl); const data = res.data; if (!data.status) { throw new Error('❌ Gagal mendapatkan data.'); } return { title: data.data.title, uploader: data.data.uploader, duration: data.data.duration, thumbnail: data.data.thumbnail, quality: data.data.quality, downloadLink: data.data.download }; } catch (err) { throw new Error('⚠️ Terjadi kesalahan saat mengambil data: ' + err.message); } }; const ytmp4 = async (url, qual, apikey) => { if (!url || !apikey || !qual) throw new Error('URL, API key, dan kualitas video wajib'); try { const apiUrl = `https://www.decode.im-rerezz.xyz/api/dl/ytmp4?url=${encodeURIComponent(url)}&qual=${qual}&apikey=${apikey}`; const res = await axios.get(apiUrl); const data = res.data; if (!data.status) { throw new Error('❌ Gagal mendapatkan data.'); } return { title: data.data.title, uploader: data.data.uploader, duration: data.data.duration, thumbnail: data.data.thumbnail, quality: data.data.quality, downloadLink: data.data.download }; } catch (err) { throw new Error('⚠️ Terjadi kesalahan saat mengambil data: ' + err.message); } }; const igdl = async (url, apikey) => { if (!url || !apikey) throw new Error('URL dan API key wajib'); try { const apiUrl = `https://www.decode.im-rerezz.xyz/api/dl/instagram?url=${encodeURIComponent(url)}&apikey=${apikey}`; const res = await axios.get(apiUrl); const data = res.data; if (!data.success) { throw new Error('❌ Gagal mendapatkan data Instagram.'); } const downloads = data.downloads.map(download => ({ title: download.title, url: download.url })); return downloads; } catch (err) { throw new Error('⚠️ Terjadi kesalahan saat mengambil data Instagram: ' + err.message); } }; const fbdl = async (url, apikey) => { if (!url || !apikey) throw new Error('URL dan API key wajib'); try { const apiUrl = `https://www.decode.im-rerezz.xyz/api/dl/facebook?url=${encodeURIComponent(url)}&apikey=${apikey}`; const res = await axios.get(apiUrl); const data = res.data; if (!data.status) { throw new Error('❌ Gagal mendapatkan data dari Facebook.'); } return { duration: data.result.duration, video: data.result.result.map(item => ({ quality: item.quality, downloadLink: item.url })) }; } catch (err) { throw new Error('⚠️ Terjadi kesalahan saat mengambil data: ' + err.message); } }; const capcutdl = async (url, apikey) => { if (!url || !apikey) throw new Error('URL dan API key wajib diisi'); try { const apiUrl = `https://www.decode.im-rerezz.xyz/api/dl/capcut?url=${encodeURIComponent(url)}&apikey=${apikey}`; const res = await axios.get(apiUrl); const data = res.data; if (data.status !== 'ok') { throw new Error('❌ Gagal mengambil data dari CapCut.'); } return { title: data.data.title, date: data.data.date, usage: data.data.pengguna, likes: data.data.likes, author: { name: data.data.author.name, avatar: data.data.author.avatarUrl }, videoUrl: data.data.videoUrl, posterUrl: data.data.posterUrl }; } catch (err) { throw new Error('⚠️ Terjadi kesalahan saat mengambil data CapCut: ' + err.message); } }; const mfdl = async (url, apikey) => { if (!url || !apikey) throw new Error('URL dan API key wajib diisi'); try { const apiUrl = `https://www.decode.im-rerezz.xyz/api/dl/mediafirev2?url=${encodeURIComponent(url)}&apikey=${apikey}`; const res = await axios.get(apiUrl); const data = res.data; if (!data.success || !data.data || data.data.length === 0) { throw new Error('❌ Gagal mengambil data dari MediaFire.'); } const file = data.data[0]; return { name: file.nama, mime: file.mime, size: file.size, sizeInKB: file.sizeB, downloadLink: file.link }; } catch (err) { throw new Error('⚠️ Terjadi kesalahan saat mengambil data MediaFire: ' + err.message); } }; const gdrive = async (url, apikey) => { if (!url || !apikey) throw new Error('URL dan API key wajib diisi'); try { const apiUrl = `https://www.decode.im-rerezz.xyz/api/dl/gdrive?url=${encodeURIComponent(url)}&apikey=${apikey}`; const res = await axios.get(apiUrl); const data = res.data; if (!data.status) { throw new Error('❌ Gagal mengambil data dari Google Drive.'); } return { fileName: data.fileName, fileSize: data.fileSize, mimeType: data.mimetype, downloadUrl: data.downloadUrl }; } catch (err) { throw new Error('⚠️ Terjadi kesalahan saat mengambil data Google Drive: ' + err.message); } }; const gitclone = async (url, apikey) => { if (!url || !apikey) throw new Error('URL dan API key wajib diisi'); try { const apiUrl = `https://www.decode.im-rerezz.xyz/api/dl/gitclone?url=${encodeURIComponent(url)}&apikey=${apikey}`; const res = await axios.get(apiUrl); const data = res.data; if (!Array.isArray(data) || !data[0]?.status) { throw new Error('❌ Gagal mengambil data dari GitHub.'); } const response = data[0].response; return { username: response.username, repository: response.repositories, downloadUrl: response.downloadUrl }; } catch (err) { throw new Error('⚠️ Terjadi kesalahan saat mengambil data GitHub: ' + err.message); } }; module.exports = { tiktokdl, ytmp3, ytmp4, igdl, fbdl, capcutdl, mfdl, gdrive, gitclone };