Skip to content

Instantly share code, notes, and snippets.

@ZTRdiamond
Created July 3, 2025 14:58
Show Gist options
  • Select an option

  • Save ZTRdiamond/c6b5c89e406da15d47ec0c9c18b802e6 to your computer and use it in GitHub Desktop.

Select an option

Save ZTRdiamond/c6b5c89e406da15d47ec0c9c18b802e6 to your computer and use it in GitHub Desktop.
Smart anime finding from image, screenshot, low quality image, etc
import axios from "axios";
import FormData from "form-data";
export default async function animefinder(image) {
try {
return new Promise(async(resolve, reject) => {
if(!Buffer.isBuffer(image)) return reject("missing input or invalid buffer!");
const form = new FormData();
form.append("image", image, {
'filename': Date.now() + '.png',
'content-type': 'image/png'
});
axios.post('https://www.animefinder.xyz/api/identify', form, {
headers: {
...form.getHeaders(),
'Accept': '*/*',
'Origin': 'https://www.animefinder.xyz',
'Referer': 'https://www.animefinder.xyz/',
'User-Agent': 'Zanixon/1.0.0'
}
}).then(raw => {
const data = raw.data;
if(!data?.references) return reject(data.description || "failed identifying anime");
return resolve({
success: true,
result: data
})
}).catch(reject)
})
} catch (e) {
return {
success: false,
errors: e
}
}
}
@ZTRdiamond
Copy link
Author

Anime Finder API

πŸ“Œ Deskripsi

Fungsi ini digunakan untuk mengenali cuplikan anime dari sebuah gambar menggunakan layanan API animefinder.xyz. Gambar dikirim sebagai buffer dan dikembalikan informasi lengkap anime jika cocok ditemukan.

πŸ“₯ Parameter

  • image (Buffer): Gambar dalam format Buffer, wajib bertipe PNG.

πŸ“€ Return

  • Promise<Object>
    • Jika berhasil:
      {
        "success": true,
        "result": {
          "animeTitle": "The Quintessential Quintuplets",
          "character": "Miku Nakano",
          "description": "Penjelasan tentang karakter dalam gambar.",
          "genres": "Harem, Romantic Comedy, School",
          "synopsis": "Ringkasan cerita anime.",
          "productionHouse": "Tezuka Productions",
          "premiereDate": "January 10, 2019",
          "references": [
            { "site": "MyAnimeList", "url": "https://myanimelist.net/anime/38101/Go-toubun_no_Hanayome" },
            { "site": "Crunchyroll", "url": "https://www.crunchyroll.com/the-quintessential-quintuplets" },
            { "site": "Anime-Planet", "url": "https://www.anime-planet.com/anime/the-quintessential-quintuplets" }
          ]
        }
      }
    • Jika gagal:
      {
        "success": false,
        "errors": "missing input or invalid buffer!"
      }

πŸ“Š Struktur Data Hasil

  • animeTitle: Judul anime
  • character: Nama karakter utama
  • description: Deskripsi visual karakter dan scene
  • genres: Genre anime (dipisahkan koma)
  • synopsis: Ringkasan cerita
  • productionHouse: Studio produksi
  • premiereDate: Tanggal tayang pertama
  • references[]: Daftar referensi:
    • site: Nama situs
    • url: Link ke halaman anime

πŸš€ Contoh Penggunaan

import fs from "fs";
import animefinder from "./animefinder.js";

const image = fs.readFileSync("cuplikan.png");

animefinder(image)
  .then(res => console.log(res))
  .catch(err => console.error(err));

πŸ“Ž Catatan

  • Gambar wajib berupa Buffer, disarankan PNG.
  • Gunakan secara bijak, layanan pihak ketiga mungkin memiliki rate limit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment