Catatan
API telah beralih ke versi 2, sehingga secara alami memperkenalkan perubahan yang dapat menyebabkan gangguan. Jika Anda ingin menggunakan versi sebelumnya dari API ini, lihat versi stabil terakhir.
Penting
https://api-aniwatch.onrender.com hanya dimaksudkan untuk mendemonstrasikan API dan mengaktifkan pembatasan kecepatan untuk meminimalkan konsumsi bandwidth. Disarankan untuk men-deploy instance Anda sendiri untuk penggunaan pribadi dengan menyesuaikan api sesuai kebutuhan Anda.
API ini hanyalah api tidak resmi untuk hianime.to dan tidak ada hubungannya secara resmi dengan hal yang sama.
Konten yang disediakan api ini bukan milik saya, juga bukan milik saya. Ini milik pemiliknya masing-masing. Api ini hanya mendemonstrasikan cara membuat api yang menggores situs web dan menggunakan kontennya.
Instalasi
Lokal
Buruh pelabuhan
Lingkungan
Host instance Anda
Vercel
Memberikan
Dokumentasi
DAPATKAN Halaman Beranda Anime
DAPATKAN Anime Tentang Info
DAPATKAN Hasil Pencarian
DAPATKAN Saran Pencarian
DAPATKAN Anime Produser
DAPATKAN Genre Anime
DAPATKAN Kategori Anime
DAPATKAN Perkiraan Jadwal
DAPATKAN Episode Anime
DAPATKAN Server Episode Anime
DAPATKAN Tautan Streaming Episode Anime
Perkembangan
Kontributor
Terima kasih
Mendukung
Lisensi
Sejarah Bintang
Kloning repositori dan pindahkan ke direktori.
git clone https://github.com/ghoshRitesh12/aniwatch-api.gitcd aniwatch-api
Instal semua dependensi.
npm i #atau pemasangan benang atau pnpm i
Mulai servernya!
npm start #atau benang start atau pnpm start
Sekarang server harus berjalan di http://localhost:4000
Gambar Docker tersedia di GitHub Container Registry.
Jalankan perintah berikut untuk menarik dan menjalankan image buruh pelabuhan.
buruh pelabuhan menarik ghcr.io/ghoshritesh12/aniwatch menjalankan buruh pelabuhan -p 4000:4000 ghcr.io/ghoshritesh12/aniwatch
Perintah di atas akan memulai server pada port 4000. Anda dapat mengakses server di http://localhost:4000 dan Anda juga dapat mengubah port dengan mengubah opsi -p
menjadi -p <port>:4000
.
Anda juga dapat menambahkan tanda -d
untuk menjalankan container dalam mode terpisah.
Info lebih lanjut dapat ditemukan di file .env.example
ANIWATCH_API_PORT
: nomor port api aniwatch
ANIWATCH_API_WINDOW_MS
: durasi untuk melacak permintaan pembatasan kecepatan (dalam milidetik)
ANIWATCH_API_MAX_REQS
: jumlah maksimum permintaan dalam jangka waktu ANIWATCH_API_WINDOW_MS
ANIWATCH_API_CORS_ALLOWED_ORIGINS
: asal diperbolehkan, dipisahkan dengan koma dan tanpa spasi di antaranya
ANIWATCH_VERCEL_DEPLOYMENT
: diperlukan untuk membedakan penerapan vercel dari yang lain, setel ke true untuk nilai bukan nol lainnya
ANIWATCH_API_HOSTNAME
: setel ini ke nama host instance api Anda untuk mengaktifkan pembatasan tarif, jangan gunakan nilai ini jika Anda tidak ingin membatasi tarif
Peringatan
Untuk penerapan pribadi:
Jika Anda ingin membatasi laju aplikasi Anda, setel env ANIWATCH_API_HOSTNAME
ke nama host instance yang Anda terapkan, jika tidak, jangan setel atau miliki env ini sama sekali. Jika Anda menyetel env ini ke nilai yang salah, Anda mungkin menghadapi masalah lain.
Hapus blok if dari file server.ts
, mulai dari baris 71 hingga 83.
Terapkan instance Aniwatch API Anda sendiri di Vercel.
Catatan
Saat menerapkan ke vercel, setel env bernama ANIWATCH_VERCEL_DEPLOYMENT
ke nilai true
atau bukan nol, tetapi env ini harus ada.
Terapkan instance Aniwatch API Anda sendiri di Render.
Titik akhir yang diekspos oleh api tercantum di bawah ini dengan contoh yang menggunakan Fetch API, namun Anda dapat menggunakan pustaka http apa pun.
GET
Halaman Beranda Anime/api/v2/hianime/home
const resp = menunggu pengambilan("/api/v2/hianime/home");const data = menunggu resp.json();console.log(data);
{ sukses: benar, data: {genre: ["Aksi", "Mobil", "Petualangan", ...],EpisodeAnime terbaru: [ {id: string,nama: string,poster: string,tipe: string,episode: { sub: nomor, dub: nomor,} }, {...},],spotlightAnimes: [ {id: string,nama: string,jname: string,poster: string,deskripsi: string,peringkat: nomor,Info lain: string[],episode: { sub: angka, sulih suara: angka,}, }, {...},],top10Anime: { hari ini: [{ episode: {sub: angka,dub: angka, }, id: string , nama: string, poster: string, peringkat: nomor},{...}, ], bulan: [...], minggu: [...]},topAiringAnimes: [ {id: string,nama: string ,namaj: string,poster: string, }, {...},],Anime Mendatang Teratas: [ {id: string,nama: string,poster: string,durasi: string,tipe: string,peringkat: string,episode: { sub: nomor, dub: nomor,} }, {...},],trendingAnimes: [ {id: string,nama: string,poster: string,peringkat: nomor, }, {...},],Anime Paling Populer: [ {id: string,nama: string,poster: string,ketik: string,episode: { sub: nomor, dub: nomor,} }, {...},],Anime palingFavorit: [ {id: string,nama: string,poster: string,ketik: string,episode: { sub: angka, sulih suara: angka,} }, {...},],Anime Lengkap terbaru: [ {id: string,nama: string,poster: string,ketik: string,episode: { sub: angka, sulih suara: angka,} }, {...},], }}
? Kembali ke Atas
GET
Anime Tentang Info/api/v2/hianime/anime/{animeId}
Parameter | Jenis | Keterangan | Diperlukan? | Bawaan |
---|---|---|---|---|
animeId | rangkaian | ID anime unik (dalam wadah kebab). | Ya | -- |
const resp = menunggu pengambilan("/api/v2/hianime/anime/serangan-on-titan-112");const data = menunggu resp.json();console.log(data);
{ sukses: benar, data: {anime: [ info: {id: string,nama: string,poster: string,deskripsi: string,statistik: { rating: string, kualitas: string, episode: {sub: number,dub: number }, ketik: string, durasi: string},Video promosi: [ {judul: string | tidak terdefinisi, sumber: string | tidak terdefinisi, thumbnail: string | tidak terdefinisi }, {...},],characterVoiceActor: [ {karakter: { id: string, poster: string, nama: string, pemeran: string},voiceActor: { id: string, poster: string, nama: string, pemeran: string} }, {...},] } moreInfo: {ditayangkan: string,genre: ["Aksi", "Misteri", ...],status: string,studio: string,durasi: string... }],Anime Paling Populer: [ {episode: { sub: nomor, dub: nomor,},id: string,jname: string,nama: string,poster: string,type: string }, { ...},],direkomendasikanAnime: [ {id: string,nama: string,poster: string,durasi: string,tipe: string,peringkat: string,episode: { sub: nomor, dub: nomor,} }, {...},],Anime terkait: [ {id: string,nama: string,poster: string,durasi: string,tipe: string,peringkat: string,episode: { sub: nomor, dub: nomor,} }, {...},],musim: [ {id: string,nama: string,judul: string,poster: string,isCurrent: boolean }, {...}] }}
? Kembali ke Atas
GET
Hasil Pencarian# contoh dasar/api/v2/hianime/search?q={query}&page={page}# lanjutan example/api/v2/hianime/search?q={query}&page={page}&genres={genres}&type={type}&sort={sort}&season={season}&bahasa={sub_or_dub}&status={status} &rated={rating}&start_date={yyyy-mm-dd}&end_date={yyyy-mm-dd}&score={score}
Parameter | Jenis | Keterangan | Diperlukan? | Bawaan |
---|---|---|---|---|
q | rangkaian | Permintaan pencarian, yaitu judul barang yang Anda cari. | Ya | -- |
page | nomor | Nomor halaman hasil. | TIDAK | 1 |
type | rangkaian | Jenis animenya. misalnya: movie | TIDAK | -- |
status | rangkaian | Status animenya. misal: finished-airing | TIDAK | -- |
rated | rangkaian | Peringkat animenya. misal: r+ atau pg-13 | TIDAK | -- |
score | rangkaian | Skor anime. misalnya: good atau very-good | TIDAK | -- |
season | rangkaian | Musim anime yang ditayangkan. misalnya: spring | TIDAK | -- |
language | rangkaian | Kategori bahasa anime. misalnya: sub atau sub-&-dub | TIDAK | -- |
start_date | rangkaian | Tanggal mulai anime (yyyy-mm-dd). misalnya: 2014-10-2 | TIDAK | -- |
end_date | rangkaian | Tanggal akhir anime (yyyy-mm-dd). misalnya: 2010-12-4 | TIDAK | -- |
sort | rangkaian | Urutan pengurutan hasil anime. misalnya: recently-added | TIDAK | -- |
genres | rangkaian | Genre anime, dipisahkan dengan koma. misalnya: isekai,shounen | TIDAK | -- |
[!TIP] Untuk
start_date
danend_date
, tahun harus disebutkan. Jika Anda ingin menghilangkan tanggal atau bulan, tentukan0
saja. Misalnya: hilangkan tanggal -> 0-10-2014, hilangkan bulan -> 12-0-2014, hilangkan keduanya -> 0-0-2014
// contoh dasarconst resp = menunggu pengambilan("/api/v2/hianime/search?q=titan&page=1");const data = menunggu resp.json();console.log(data);// contoh lanjutanconst resp = menunggu pengambilan( "/api/v2/hianime/search?q=girls&genres=action,adventure&type=movie&sort=score&season=spring&bahasa=dub&status=selesai ditayangkan&rated=pg-13&start_date=2014-0-0&score=good");const data = tunggu resp. json();konsol.log(data);
{ sukses: benar, data: {animes: [ {id: string,nama: string,poster: string,durasi: string,tipe: string,peringkat: string,episode: { sub: angka, dub: angka,} }, {...} ,],Anime Paling Populer: [ {episode: { sub: angka, sulih suara: angka,},id: string,jname: string,nama: string,poster: string,tipe: string }, {...},],Halaman saat ini: 1,halaman total: 1,hasNextPage: false,searchQuery: string,searchFilters: { [nama_filter]: [nilai_filter] ...} }}
? Kembali ke Atas
GET
Saran Pencarian/api/v2/hianime/pencarian/saran?q={query}
Parameter | Jenis | Keterangan | Diperlukan? | Bawaan |
---|---|---|---|---|
q | rangkaian | Permintaan saran pencarian. | Ya | -- |
const resp = menunggu pengambilan("/api/v2/hianime/search/suggestion?q=monster");const data = menunggu resp.json();console.log(data);
{ sukses: benar, data: {saran: [ {id: string,nama: string,poster: string,jname: string,moreInfo: ["21 Jan 2022", "Film", "17m"] }, {...},] }}
? Kembali ke Atas
GET
Anime Produser/api/v2/hianime/producer/{name}?page={page}
Parameter | Jenis | Keterangan | Diperlukan? | Bawaan |
---|---|---|---|---|
name | rangkaian | Nama produser anime (dalam kasus kebab). | Ya | -- |
Parameter | Jenis | Keterangan | Diperlukan? | Bawaan |
---|---|---|---|---|
page | nomor | Nomor halaman hasil. | TIDAK | 1 |
const resp = menunggu pengambilan("/api/v2/hianime/producer/toei-animation?page=2");const data = menunggu resp.json();console.log(data);
{ sukses: benar, data: {namaproduser: "Anime Animasi Toei",animes: [ {id: string,nama: string,poster: string,durasi: string,tipe: string,peringkat: string,episode: { sub: nomor, dub: nomor, } }, {...},],top10Animes: { hari ini: [{ episode: {sub: number,dub: number, }, id: string, name: string, poster: string, rank: number},{...}, ], bulan: [...], minggu: [...]},topAiringAnimes: [ {episode: { sub: number, dub: number,},id: string,jname : string,nama: string,poster: string,ketik: string }, {...},],Halaman saat ini: 2,halaman total: 11,hasNextPage: true }}
? Kembali ke Atas
GET
Genre Anime/api/v2/hianime/genre/{nama}?page={halaman}
Parameter | Jenis | Keterangan | Diperlukan? | Bawaan |
---|---|---|---|---|
name | rangkaian | Nama genre anime (dalam kasus kebab). | Ya | -- |
Parameter | Jenis | Keterangan | Diperlukan? | Bawaan |
---|---|---|---|---|
page | nomor | Nomor halaman hasil. | TIDAK | 1 |
const resp = menunggu pengambilan("/api/v2/hianime/genre/shounen?page=2");const data = menunggu resp.json();console.log(data);
{ sukses: benar, data: {genreName: "Shounen Anime",anime: [ {