/aniyoi-api

REST API Anime Subtitle Indonesia | Streaming Anime Sub Indo

Primary LanguageTypeScriptMIT LicenseMIT

Logo

Aniyoi API

RESTFUL API Streaming Anime Subtitle Indonesia
API ini masih dalam pembuatan jadi mungkin akan rawan error, Jika kalian tertarik untuk membantu bisa dm saya di discord miukyo

!!HIATUS!! GA TAU BAKAL LANJUT KAPAN, INFO LEBIH LANJUT BISA DM

Table of Contents

Installation

Local

Run command berikut untuk mengclone repo ini, dan menginstall dependencies:

git clone https://github.com/miukyo/aniyoi-api.git
cd aniyoi-api
npm install #atau yarn install

Start server dengan command berikut:

npm start #atau yarn start

Server akan berjalan di http://localhost:3001

List Source

Beberapa source mungkin tidak support dengan beberapa fitur. Dikarenakan kurangnya informasi pada website asli.

Source Fitur yang bermasalah
Kuronime
  • 🟡 Mendapatkan Streaming URL mungkin agak lama karena link url di Enkripsi dan harus di Dekripsi dahulu dari playernya.
  • 🔴 Source video selain local tidak di support
Kuramanime
  • 🔴 Anime Terbaru tidak menampilkan yang terbaru melainkan campur aduk.
  • 🔴 Anime Popular juga sama dengan yang diatas.
  • 🔴 Beberapa page hanya memiliki maximum 8 page.
Nanime
  • 🔴 Tidak support direct Streaming URL hanya bisa menggunakan embed.
  • 🔴 Tidak ada Anime Popular.
Otaku Desu Cancelled
  • 🔴 Slug URL Details Anime berbeda dengan Slug URL Episode

Jika kalian tau website anime subtitle anime yang bagus dan detail mohon kontak saya. Akan saya include di sini, Terima kasih!

Routes

Contoh dibawah menggunakan Fetch API, kamu juga bisa menggunakan library http lainnya.

Get Recent Episodes

Parameter Description
page (int) pilih page dari maximum page. Default : 1
fetch("localhost:3001/{source}/recent")
  .then((response) => response.json())
  .then((animelist) => console.log(animelist));

Output >>

{
  "list": [
     {
      "slug": string,
      "title": string,
      "episode?": number, //(optional)
      "cover": string,
      "url": string,
      },
     {...}
   ],
   "maxPage": number,
   "page": number,
}

Get Popular Anime

Parameter Description
page (int) pilih page dari maximum page. Default : 1
fetch("localhost:3001/{source}/popular")
  .then((response) => response.json())
  .then((animelist) => console.log(animelist));

Output >>

{
  "list": [
     {
      "slug": string,
      "title": string,
      "cover": string,
      "url": string,
      },
     {...}
   ],
   "maxPage": number,
   "page": number,
}

Get Anime Search

Parameter Description
query (string) nama anime yang ingin dicari
page (int) pilih page dari maximum page. Default : 1
fetch("localhost:3001/{source}/search")
  .then((response) => response.json())
  .then((animelist) => console.log(animelist));

Output >>

{
  "list": [
     {
      "slug": string,
      "title": string,
      "cover": string,
      "url": string,
      },
     {...}
   ],
   "maxPage": number,
   "page": number,
}

Get Genre List

Parameter Description
- -
fetch("localhost:3001/{source}/genre")
  .then((response) => response.json())
  .then((animelist) => console.log(animelist));

Output >>

[
  {
    "slug": string,
    "title": string,
    "url": string,
  },
  {...},
]

Get Genre

Parameter Description
page (int) pilih page dari maximum page. Default : 1
:genre-slug (string) genre slug dapat didapatkan dalam respon Genre List
fetch("localhost:3001/{source}/genre/{genre-slug}")
  .then((response) => response.json())
  .then((animelist) => console.log(animelist));

Output >>

{
  "list": [
     {
      "slug": string,
      "title": string,
      "cover": string,
      "url": string,
      },
     {...}
   ],
   "maxPage": number,
   "page": number,
}

Get Season List

Parameter Description
- -
fetch("localhost:3001/{source}/season")
  .then((response) => response.json())
  .then((animelist) => console.log(animelist));

Output >>

[
  {
    "slug": string,
    "title": string,
    "url": string,
  },
  {...},
]

Get Season

Parameter Description
page (int) pilih page dari maximum page. Default : 1
:season-slug (string) season slug dapat didapatkan dalam respon Season List
fetch("localhost:3001/{source}/season/{season-slug}")
  .then((response) => response.json())
  .then((animelist) => console.log(animelist));

Output >>

{
  "list": [
     {
      "slug": string,
      "title": string,
      "cover": string,
      "url": string,
      },
     {...}
   ],
   "maxPage": number,
   "page": number,
}

Get Anime Details

Parameter Description
:anime-slug (string) anime slug dapat didapatkan dalam respon list seperti diatas.
fetch("localhost:3001/{source}/anime/{anime-slug}")
  .then((response) => response.json())
  .then((animelist) => console.log(animelist));

Output >>

{
  "slug": string,
  "title": string,
  "titleAlt?": string, //(optional)
  "synopsis?": string, //(optional | beberapa ada yang tidak memiliki sinopsis)
  "episodeTotal": number, //(anime ongoing di kuronime akan merespon "0")
  "episode": number,
  "season?": string, //(optional)
  "genre?": string[], //(optional)
  "cover": string,
  "url": string,
}

Get Streaming URLs

Parameter Description
:anime-slug (string) anime slug dapat didapatkan dalam respon list seperti diatas.
:anime-episode (int) pilih episode anime yang tersedia dalam respon Anime Details
fetch("localhost:3001/{source}/anime/{anime-slug}/{anime-episode}")
  .then((response) => response.json())
  .then((animelist) => console.log(animelist));

Output >>

{
  "episode": number,
  "video":  [
    {
      "quality": string,
      "url": string,
    },
    {...},
  ]
}