Back to Library
ephoto
js • 1/27/2026
10
const axios = require("axios");
const FormData = require("form-data");
const cheerio = require("cheerio");
const EFFECT_URLS = {
glitchtext: 'https://en.ephoto360.com/create-digital-glitch-text-effects-online-767.html',
writetext: 'https://en.ephoto360.com/write-text-on-wet-glass-online-589.html',
advancedglow: 'https://en.ephoto360.com/advanced-glow-effects-74.html',
typographytext: 'https://en.ephoto360.com/create-typography-text-effect-on-pavement-online-774.html',
pixelglitch: 'https://en.ephoto360.com/create-pixel-glitch-text-effect-online-769.html',
neonglitch: 'https://en.ephoto360.com/create-impressive-neon-glitch-text-effects-online-768.html',
flagtext: 'https://en.ephoto360.com/nigeria-3d-flag-text-effect-online-free-753.html',
flag3dtext: 'https://en.ephoto360.com/free-online-american-flag-3d-text-effect-generator-725.html',
deletingtext: 'https://en.ephoto360.com/create-eraser-deleting-text-effect-online-717.html',
blackpinkstyle: 'https://en.ephoto360.com/online-blackpink-style-logo-maker-effect-711.html',
glowingtext: 'https://en.ephoto360.com/create-glowing-text-effects-online-706.html',
underwatertext: 'https://en.ephoto360.com/3d-underwater-text-effect-online-682.html',
logomaker: 'https://en.ephoto360.com/free-bear-logo-maker-online-673.html',
cartoonstyle: 'https://en.ephoto360.com/create-a-cartoon-style-graffiti-text-effect-online-668.html',
papercutstyle: 'https://en.ephoto360.com/multicolor-3d-paper-cut-style-text-effect-658.html',
watercolortext: 'https://en.ephoto360.com/create-a-watercolor-text-effect-online-655.html',
effectclouds: 'https://en.ephoto360.com/write-text-effect-clouds-in-the-sky-online-619.html',
blackpinklogo: 'https://en.ephoto360.com/create-blackpink-logo-online-free-607.html',
gradienttext: 'https://en.ephoto360.com/create-3d-gradient-text-effect-online-600.html',
summerbeach: 'https://en.ephoto360.com/write-in-sand-summer-beach-online-free-595.html',
luxurygold: 'https://en.ephoto360.com/create-a-luxury-gold-text-effect-online-594.html',
multicoloredneon: 'https://en.ephoto360.com/create-multicolored-neon-light-signatures-591.html',
sandsummer: 'https://en.ephoto360.com/write-in-sand-summer-beach-online-576.html',
galaxywallpaper: 'https://en.ephoto360.com/create-galaxy-wallpaper-mobile-online-528.html',
'1917style': 'https://en.ephoto360.com/1917-style-text-effect-523.html',
makingneon: 'https://en.ephoto360.com/making-neon-light-text-effect-with-galaxy-style-521.html',
royaltext: 'https://en.ephoto360.com/royal-text-effect-online-free-471.html',
freecreate: 'https://en.ephoto360.com/free-create-a-3d-hologram-text-effect-441.html',
galaxystyle: 'https://en.ephoto360.com/create-galaxy-style-free-name-logo-438.html',
amongustext: 'https://en.ephoto360.com/create-a-cover-image-for-the-game-among-us-online-762.html',
rainytext: 'https://en.ephoto360.com/foggy-rainy-text-effect-75.html',
lighteffects: 'https://en.ephoto360.com/light-effects-74.html'
};
class Ephoto {
getStyles() {
return Object.keys(EFFECT_URLS);
}
async create(style, text) {
try {
const url = EFFECT_URLS[style];
if (!url) {
return {
status: false,
message: "Style tidak ditemukan."
};
}
const formData = new FormData();
const UA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36";
const initialResponse = await axios.get(url, {
headers: { 'user-agent': UA }
});
const $ = cheerio.load(initialResponse.data);
const token = $('input[name=token]').val();
const buildServer = $('input[name=build_server]').val();
const buildServerId = $('input[name=build_server_id]').val();
const cookie = initialResponse.headers['set-cookie']?.join('; ');
if (!token) throw new Error("Token tidak ditemukan.");
formData.append('text[]', text);
formData.append('token', token);
formData.append('build_server', buildServer);
formData.append('build_server_id', buildServerId);
const postResponse = await axios({
url: url,
method: 'POST',
data: formData,
headers: {
'Accept': '*/*',
'Accept-Language': 'en-US,en;q=0.9',
'user-agent': UA,
'cookie': cookie,
...formData.getHeaders()
}
});
const $$ = cheerio.load(postResponse.data);
const formValueRaw = $$('input[name=form_value_input]').val();
if (!formValueRaw) throw new Error("Gagal parsing form value.");
const formValueInput = JSON.parse(formValueRaw);
formValueInput['text[]'] = formValueInput.text;
delete formValueInput.text;
const finalResponse = await axios.post(
'https://en.ephoto360.com/effect/create-image',
new URLSearchParams(formValueInput),
{
headers: {
'user-agent': UA,
'cookie': cookie
}
}
);
if (!finalResponse.data.success) throw new Error("Gagal generate image.");
return {
status: true,
style: style,
text: text,
url: buildServer + finalResponse.data.image
};
} catch (e) {
return {
status: false,
message: e.message
};
}
}
}
module.exports = { Ephoto };