diff --git a/ANIWATCH_README.md b/ANIWATCH_README.md new file mode 100644 index 0000000..f0870b3 --- /dev/null +++ b/ANIWATCH_README.md @@ -0,0 +1,1210 @@ +

+ + Logo + +

+ +#

Aniwatch

+ +
+ ๐Ÿ“ฆ A scraper package serving anime information from hianimez.to +
+ + + Bug report + + ยท + + Feature request + + +
+ +
+ +
+ +[![Publish Package](https://github.com/ghoshRitesh12/aniwatch/actions/workflows/publish.yml/badge.svg)](https://github.com/ghoshRitesh12/aniwatch/actions/workflows/publish.yml) +![NPM Downloads](https://img.shields.io/npm/dw/aniwatch?logo=npm&logoColor=e78284&label=Downloads&labelColor=292e34&color=31c754) +[![GitHub License](https://img.shields.io/github/license/ghoshRitesh12/aniwatch?logo=github&logoColor=%23959da5&labelColor=%23292e34&color=%2331c754)](https://github.com/ghoshRitesh12/aniwatch/blob/main/LICENSE) + + + +
+ +
+ +[![stars](https://img.shields.io/github/stars/ghoshRitesh12/aniwatch?style=social)](https://github.com/ghoshRitesh12/aniwatch/stargazers) +[![forks](https://img.shields.io/github/forks/ghoshRitesh12/aniwatch?style=social)](https://github.com/ghoshRitesh12/aniwatch/network/members) +[![issues](https://img.shields.io/github/issues/ghoshRitesh12/aniwatch?style=social&logo=github)](https://github.com/ghoshRitesh12/aniwatch/issues?q=is%3Aissue+is%3Aopen+) +[![version](https://img.shields.io/github/v/release/ghoshRitesh12/aniwatch?display_name=release&style=social&logo=github)](https://github.com/ghoshRitesh12/aniwatch/releases/latest) + +
+ +> [!IMPORTANT] +> +> 1. This package is just an unofficial package for [hianimez.to](https://hianimez.to) and is in no other way officially related to the same. +> 2. The content that this package provides is not mine, nor is it hosted by me. These belong to their respective owners. This package just demonstrates how to build a package that scrapes websites and uses their content. + +## Table of Contents + +- [Quick Start](#quick-start) + - [Installation](#installation) + - [Example Usage](#example-usage) +- [Documentation](#documentation) +- - [getHomePage](#gethomepage) + - [getAZList](#getazlist) + - [getQtipInfo](#getqtipinfo) + - [getAnimeAboutInfo](#getanimeaboutinfo) + - [getAnimeSearchResults](#getanimesearchresults) + - [getAnimeSearchSuggestion](#getanimesearchsuggestion) + - [getProducerAnimes](#getproduceranimes) + - [getGenreAnime](#getgenreanime) + - [getAnimeCategory](#getanimecategory) + - [getEstimatedSchedule](#getestimatedschedule) + - [getNextEpisodeSchedule](#getnextepisodeschedule) + - [getAnimeEpisodes](#getanimeepisodes) + - [getEpisodeServers](#getepisodeservers) + - [getAnimeEpisodeSources](#getanimeepisodesources) +- [Development](#development) +- [Thanks](#thanks) +- [Support](#support) +- [License](#license) +- [Contributors](#contributors) +- [Star History](#star-history) + +## Quick start + +### Installation + +To use `aniwatch` package in your project, run: + +```bash +pnpm add aniwatch +# or "yarn add aniwatch" +# or "npm install aniwatch" +``` + +### Example usage + +Example - getting information about an anime by providing it's unique anime id, using anime [Steins;Gate](https://www.imdb.com/title/tt1910272/) with `steinsgate-3` unique anime id as an example. + +```javascript +import { HiAnime, HiAnimeError } from "aniwatch"; + +const hianime = new HiAnime.Scraper(); + +try { + const data: HiAnime.ScrapedAnimeAboutInfo = await hianime.getInfo( + "steinsgate-3" + ); + console.log(data); +} catch (err) { + console.error(err instanceof HiAnimeError, err); +} +``` + +
+ + + +### `getHomePage` + + + +#### Sample Usage + +```typescript +import { HiAnime } from "aniwatch"; + +const hianime = new HiAnime.Scraper(); + +hianime + .getHomePage() + .then((data) => console.log(data)) + .catch((err) => console.error(err)); +``` + +#### Response Schema + +```javascript +{ + genres: ["Action", "Cars", "Adventure", ...], + latestEpisodeAnimes: [ + { + id: string, + name: string, + poster: string, + type: string, + episodes: { + sub: number, + dub: number, + } + }, + {...}, + ], + spotlightAnimes: [ + { + id: string, + name: string, + jname: string, + poster: string, + description: string, + rank: number, + otherInfo: string[], + episodes: { + sub: number, + dub: number, + }, + }, + {...}, + ], + top10Animes: { + today: [ + { + episodes: { + sub: number, + dub: number, + }, + id: string, + name: string, + poster: string, + rank: number + }, + {...}, + ], + month: [...], + week: [...] + }, + topAiringAnimes: [ + { + id: string, + name: string, + jname: string, + poster: string, + }, + {...}, + ], + topUpcomingAnimes: [ + { + id: string, + name: string, + poster: string, + duration: string, + type: string, + rating: string, + episodes: { + sub: number, + dub: number, + } + }, + {...}, + ], + trendingAnimes: [ + { + id: string, + name: string, + poster: string, + rank: number, + }, + {...}, + ], + mostPopularAnimes: [ + { + id: string, + name: string, + poster: string, + type: string, + episodes: { + sub: number, + dub: number, + } + }, + {...}, + ], + mostFavoriteAnimes: [ + { + id: string, + name: string, + poster: string, + type: string, + episodes: { + sub: number, + dub: number, + } + }, + {...}, + ], + latestCompletedAnimes: [ + { + id: string, + name: string, + poster: string, + type: string, + episodes: { + sub: number, + dub: number, + } + }, + {...}, + ], +} + +``` + +[๐Ÿ”ผ Back to Top](#table-of-contents) + +
+ +
+ + + +### `getAZList` + + + +#### Parameters + +| Parameter | Type | Description | Required? | Default | +| :----------: | :----: | :-------------------------------------------------------------------------------------------------: | :-------: | :-----: | +| `sortOption` | string | The az-list sort option. Possible values include: "all", "other", "0-9" and all english alphabets . | Yes | -- | +| `page` | number | The page number of the result. | No | `1` | + +#### Sample Usage + +```javascript +import { HiAnime } from "aniwatch"; + +const hianime = new HiAnime.Scraper(); + +hianime + .getAZList("0-9", 1) + .then((data) => console.log(data)) + .catch((err) => console.error(err)); +``` + +#### Response Schema + +```javascript +{ + sortOption: "0-9", + animes: [ + { + id: string, + name: string, + jname: string, + poster: string, + duration: string, + type: string, + rating: string, + episodes: { + sub: number , + dub: number + } + }, + {...} + ], + totalPages: 1, + currentPage: 1, + hasNextPage: false +} +``` + +[๐Ÿ”ผ Back to Top](#table-of-contents) + +
+ +
+ + + +### `getQtipInfo` + + + +#### Parameters + +| Parameter | Type | Description | Required? | Default | +| :-------: | :----: | :----------------------------------: | :-------: | :-----: | +| `animeId` | string | The unique anime id (in kebab case). | Yes | -- | + +#### Sample Usage + +```javascript +import { HiAnime } from "aniwatch"; + +const hianime = new HiAnime.Scraper(); + +hianime + .getQtipInfo("one-piece-100") + .then((data) => console.log(data)) + .catch((err) => console.error(err)); +``` + +#### Response Schema + +```javascript +{ + anime: { + id: "one-piece-100", + name: "One Piece", + malscore: string, + quality: string, + episodes: { + sub: number, + dub: number + }, + type: string, + description: string, + jname: string, + synonyms: string, + aired: string, + status: string, + genres: ["Action", "Adventure", "Comedy", "Drama", "Fantasy", "Shounen", "Drama", "Fantasy", "Shounen", "Fantasy", "Shounen", "Shounen", "Super Power"] + } +} +``` + +[๐Ÿ”ผ Back to Top](#table-of-contents) + +
+ +
+ + + +### `getAnimeAboutInfo` + + + +#### Parameters + +| Parameter | Type | Description | Required? | Default | +| :-------: | :----: | :----------------------------------: | :-------: | :-----: | +| `animeId` | string | The unique anime id (in kebab case). | Yes | -- | + +#### Sample Usage + +```javascript +import { HiAnime } from "aniwatch"; + +const hianime = new HiAnime.Scraper(); + +hianime + .getInfo("steinsgate-3") + .then((data) => console.log(data)) + .catch((err) => console.error(err)); +``` + +#### Response Schema + +```javascript +{ + anime: [ + info: { + id: string, + name: string, + poster: string, + description: string, + stats: { + rating: string, + quality: string, + episodes: { + sub: number, + dub: number + }, + type: string, + duration: string + }, + promotionalVideos: [ + { + title: string | undefined, + source: string | undefined, + thumbnail: string | undefined + }, + {...}, + ], + characterVoiceActor: [ + { + character: { + id: string, + poster: string, + name: string, + cast: string + }, + voiceActor: { + id: string, + poster: string, + name: string, + cast: string + } + }, + {...}, + ] + } + moreInfo: { + aired: string, + genres: ["Action", "Mystery", ...], + status: string, + studios: string, + duration: string + ... + } + ], + mostPopularAnimes: [ + { + episodes: { + sub: number, + dub: number, + }, + id: string, + jname: string, + name: string, + poster: string, + type: string + }, + {...}, + ], + recommendedAnimes: [ + { + id: string, + name: string, + poster: string, + duration: string, + type: string, + rating: string, + episodes: { + sub: number, + dub: number, + } + }, + {...}, + ], + relatedAnimes: [ + { + id: string, + name: string, + poster: string, + duration: string, + type: string, + rating: string, + episodes: { + sub: number, + dub: number, + } + }, + {...}, + ], + seasons: [ + { + id: string, + name: string, + title: string, + poster: string, + isCurrent: boolean + }, + {...} + ] +} +``` + +[๐Ÿ”ผ Back to Top](#table-of-contents) + +
+ +
+ + + +### `getAnimeSearchResults` + + + +#### Parameters + +| Parameter | Type | Description | Required? | Default | +| :----------: | :----: | :---------------------------------------------------------------: | :-------: | :-----: | +| `q` | string | The search query, i.e. the title of the item you are looking for. | Yes | -- | +| `page` | number | The page number of the result. | No | `1` | +| `type` | string | Type of the anime. eg: `movie` | No | -- | +| `status` | string | Status of the anime. eg: `finished-airing` | No | -- | +| `rated` | string | Rating of the anime. eg: `r+` or `pg-13` | No | -- | +| `score` | string | Score of the anime. eg: `good` or `very-good` | No | -- | +| `season` | string | Season of the aired anime. eg: `spring` | No | -- | +| `language` | string | Language category of the anime. eg: `sub` or `sub-&-dub` | No | -- | +| `start_date` | string | Start date of the anime(yyyy-mm-dd). eg: `2014-10-2` | No | -- | +| `end_date` | string | End date of the anime(yyyy-mm-dd). eg: `2010-12-4` | No | -- | +| `sort` | string | Order of sorting the anime result. eg: `recently-added` | No | -- | +| `genres` | string | Genre of the anime, separated by commas. eg: `isekai,shounen` | No | -- | + +> [!TIP] +> +> For both `start_date` and `end_date`, year must be mentioned. If you wanna omit date or month specify `0` instead. Eg: omitting date -> 2014-10-0, omitting month -> 2014-0-12, omitting both -> 2014-0-0 + +#### Sample Usage + +```javascript +import { HiAnime } from "aniwatch"; + +const hianime = new HiAnime.Scraper(); + +hianime + .search("monster", 1, { + genres: "seinen,psychological", + }) + .then((data) => { + console.log(data); + }) + .catch((err) => { + console.error(err); + }); +``` + +#### Response Schema + +```javascript +{ + animes: [ + { + id: string, + name: string, + poster: string, + duration: string, + type: string, + rating: string, + episodes: { + sub: number, + dub: number, + } + }, + {...}, + ], + mostPopularAnimes: [ + { + episodes: { + sub: number, + dub: number, + }, + id: string, + jname: string, + name: string, + poster: string, + type: string + }, + {...}, + ], + currentPage: 1, + totalPages: 1, + hasNextPage: false, + searchQuery: string, + searchFilters: { + [filter_name]: [filter_value] + ... + } +} +``` + +[๐Ÿ”ผ Back to Top](#table-of-contents) + +
+ +
+ + + +### `getAnimeSearchSuggestion` + + + +#### Parameters + +| Parameter | Type | Description | Required? | Default | +| :-------: | :----: | :--------------------------: | :-------: | :-----: | +| `q` | string | The search suggestion query. | Yes | -- | + +#### Sample Usage + +```javascript +import { HiAnime } from "aniwatch"; + +const hianime = new HiAnime.Scraper(); + +hianime + .searchSuggestions("one piece") + .then((data) => console.log(data)) + .catch((err) => console.error(err)); +``` + +#### Response Schema + +```javascript +{ + suggestions: [ + { + id: string, + name: string, + poster: string, + jname: string, + moreInfo: ["Mar 4, 2000", "Movie", "50m"] + }, + {...}, + ], +} +``` + +[๐Ÿ”ผ Back to Top](#table-of-contents) + +
+ +
+ + + +### `getProducerAnimes` + + + +#### Parameters + +| Parameter | Type | Description | Required? | Default | +| :-------: | :----: | :-----------------------------------------: | :-------: | :-----: | +| `name` | string | The name of anime producer (in kebab case). | Yes | +| `page` | number | The page number of the result. | No | `1` | + +#### Sample Usage + +```javascript +import { HiAnime } from "aniwatch"; + +const hianime = new HiAnime.Scraper(); + +hianime + .getProducerAnimes("toei-animation", 2) + .then((data) => console.log(data)) + .catch((err) => console.error(err)); +``` + +#### Response Schema + +```javascript +{ + producerName: "Toei Animation Anime", + animes: [ + { + id: string, + name: string, + poster: string, + duration: string, + type: string, + rating: string, + episodes: { + sub: number, + dub: number, + } + }, + {...}, + ], + top10Animes: { + today: [ + { + episodes: { + sub: number, + dub: number, + }, + id: string, + name: string, + poster: string, + rank: number + }, + {...}, + ], + month: [...], + week: [...] + }, + topAiringAnimes: [ + { + episodes: { + sub: number, + dub: number, + }, + id: string, + jname: string, + name: string, + poster: string, + type: string + }, + {...}, + ], + currentPage: 2, + totalPages: 11, + hasNextPage: true, +} +``` + +[๐Ÿ”ผ Back to Top](#table-of-contents) + +
+ +
+ + + +### `getGenreAnime` + + + +#### Parameters + +| Parameter | Type | Description | Required? | Default | +| :-------: | :----: | :--------------------------------------: | :-------: | :-----: | +| `name` | string | The name of anime genre (in kebab case). | Yes | -- | +| `page` | number | The page number of the result. | No | `1` | + +#### Sample Usage + +```javascript +import { HiAnime } from "aniwatch"; + +const hianime = new HiAnime.Scraper(); + +hianime + .getGenreAnime("shounen", 2) + .then((data) => console.log(data)) + .catch((err) => console.error(err)); +``` + +#### Response Schema + +```javascript +{ + genreName: "Shounen Anime", + animes: [ + { + id: string, + name: string, + poster: string, + duration: string, + type: string, + rating: string, + episodes: { + sub: number, + dub: number, + } + }, + {...}, + ], + genres: ["Action", "Cars", "Adventure", ...], + topAiringAnimes: [ + { + episodes: { + sub: number, + dub: number, + }, + id: string, + jname: string, + name: string, + poster: string, + type: string + }, + {...}, + ], + currentPage: 2, + totalPages: 38, + hasNextPage: true +} +``` + +[๐Ÿ”ผ Back to Top](#table-of-contents) + +
+ +
+ + + +### `getAnimeCategory` + + + +#### Parameters + +| Parameter | Type | Description | Required? | Default | +| :--------: | :----: | :----------------------------: | :-------: | :-----: | +| `category` | string | The category of anime. | Yes | -- | +| `page` | number | The page number of the result. | No | `1` | + +#### Sample Usage + +```javascript +import { HiAnime } from "aniwatch"; + +const hianime = new HiAnime.Scraper(); + +hianime + .getCategoryAnime("subbed-anime") + .then((data) => console.log(data)) + .catch((err) => console.error(err)); + +// categories -> +// "most-favorite", "most-popular", "subbed-anime", "dubbed-anime", +// "recently-updated", "recently-added", "top-upcoming", "top-airing", +// "movie", "special", "ova", "ona", "tv", "completed" +``` + +#### Response Schema + +```javascript +{ + category: "TV Series Anime", + animes: [ + { + id: string, + name: string, + poster: string, + duration: string, + type: string, + rating: string, + episodes: { + sub: number, + dub: number, + } + }, + {...}, + ], + genres: ["Action", "Cars", "Adventure", ...], + top10Animes: { + today: [ + { + episodes: { + sub: number, + dub: number, + }, + id: string, + name: string, + poster: string, + rank: number + }, + {...}, + ], + month: [...], + week: [...] + }, + currentPage: 2, + totalPages: 100, + hasNextPage: true +} +``` + +[๐Ÿ”ผ Back to Top](#table-of-contents) + +
+ +
+ + + +### `getEstimatedSchedule` + + + +#### Parameters + +| Parameter | Type | Description | Required? | Default | +| :-----------------: | :----: | :------------------------------------------------------------------: | :-------: | :-----: | +| `date (yyyy-mm-dd)` | string | The date of the desired schedule. (months & days must have 2 digits) | Yes | -- | +| `tzOffset` | number | The timezone offset in minutes (defaults to -330 i.e. IST) | No | `-330` | + +#### Sample Usage + +```javascript +import { HiAnime } from "aniwatch"; + +const hianime = new HiAnime.Scraper(); +const timezoneOffset = -330; // IST offset in minutes + +hianime + .getEstimatedSchedule("2025-06-09", timezoneOffset) + .then((data) => console.log(data)) + .catch((err) => console.error(err)); +``` + +#### Response Schema + +```javascript +{ + scheduledAnimes: [ + { + id: string, + time: string, // 24 hours format + name: string, + jname: string, + airingTimestamp: number, + secondsUntilAiring: number + }, + {...} + ] +} +``` + +[๐Ÿ”ผ Back to Top](#table-of-contents) + +
+ +## + +
+ + + +### `getNextEpisodeSchedule` + + + +#### Parameters + +| Parameter | Type | Description | Required? | Default | +| :-------: | :----: | :----------------------------------: | :-------: | :-----: | +| `animeId` | string | The unique anime id (in kebab case). | Yes | -- | + +#### Sample Usage + +```javascript +import { HiAnime } from "aniwatch"; + +const hianime = new HiAnime.Scraper(); + +hianime + .getNextEpisodeSchedule("one-piece-100") + .then((data) => console.log(data)) + .catch((err) => console.error(err)); +``` + +#### Response Schema + +```javascript +{ + airingISOTimestamp: string | null, + airingTimestamp: number | null, + secondsUntilAiring: number | null +} +``` + +[๐Ÿ”ผ Back to Top](#table-of-contents) + +
+ +
+ + + +### `getAnimeEpisodes` + + + +#### Parameters + +| Parameter | Type | Description | Required? | Default | +| :-------: | :----: | :------------------: | :-------: | :-----: | +| `animeId` | string | The unique anime id. | Yes | -- | + +#### Sample Usage + +```javascript +import { HiAnime } from "aniwatch"; + +const hianime = new HiAnime.Scraper(); + +hianime + .getEpisodes("steinsgate-3") + .then((data) => console.log(data)) + .catch((err) => console.error(err)); +``` + +#### Response Schema + +```javascript +{ + totalEpisodes: 24, + episodes: [ + { + number: 1, + isFiller: false, + title: "Turning Point", + episodeId: "steinsgate-3?ep=213" + }, + {...} + ] +} +``` + +[๐Ÿ”ผ Back to Top](#table-of-contents) + +
+ +
+ + + +### `getEpisodeServers` + + + +#### Parameters + +| Parameter | Type | Description | Required? | Default | +| :---------: | :----: | :--------------------: | :-------: | :-----: | +| `episodeId` | string | The unique episode id. | Yes | -- | + +#### Request sample + +```javascript +import { HiAnime } from "aniwatch"; + +const hianime = new HiAnime.Scraper(); + +hianime + .getEpisodeServers("steinsgate-0-92?ep=2055") + .then((data) => console.log(data)) + .catch((err) => console.error(err)); +``` + +#### Response Schema + +```javascript +{ + episodeId: "steinsgate-0-92?ep=2055", + episodeNo: 5, + sub: [ + { + serverId: 4, + serverName: "vidstreaming", + }, + {...} + ], + dub: [ + { + serverId: 1, + serverName: "megacloud", + }, + {...} + ], + raw: [ + { + serverId: 1, + serverName: "megacloud", + }, + {...} + ], +} +``` + +[๐Ÿ”ผ Back to Top](#table-of-contents) + +
+ +
+ + + +### `getAnimeEpisodeSources` + + + +#### Parameters + +| Parameter | Type | Description | Required? | Default | +| :--------: | :----: | :--------------------------------------------------: | :-------: | :--------------: | +| `id` | string | The id of the episode. | Yes | -- | +| `server` | string | The name of the server. | No | `"vidstreaming"` | +| `category` | string | The category of the episode ('sub', 'dub' or 'raw'). | No | `"sub"` | + +#### Request sample + +```javascript +import { HiAnime } from "aniwatch"; + +const hianime = new HiAnime.Scraper(); + +hianime + .getEpisodeSources("steinsgate-3?ep=230", "hd-1", "sub") + .then((data) => console.log(data)) + .catch((err) => console.error(err)); +``` + +#### Response Schema + +```javascript +{ + headers: { + Referer: string, + "User-Agent": string, + ... + }, + sources: [ + { + url: string, // .m3u8 hls streaming file + isM3U8: boolean, + quality?: string, + }, + {...} + ], + subtitles: [ + { + lang: "English", + url: string, // .vtt subtitle file + default: boolean, + }, + {...} + ], + anilistID: number | null, + malID: number | null, +} +``` + +[๐Ÿ”ผ Back to Top](#table-of-contents) + +
+ +## Development + +Pull requests are always welcome. If you encounter any bug or want to add a new feature to this package, consider creating a new [issue](https://github.com/ghoshRitesh12/aniwatch/issues). If you wish to contribute to this project, read the [CONTRIBUTING.md](https://github.com/ghoshRitesh12/aniwatch/blob/main/CONTRIBUTING.md) file. + +## Contributors + +Thanks to the following people for keeping this project alive and relevant. + +[![](https://contrib.rocks/image?repo=ghoshRitesh12/aniwatch)](https://github.com/ghoshRitesh12/aniwatch/graphs/contributors) + +## Thanks + +- [consumet.ts](https://github.com/consumet/consumet.ts) +- [api.consumet.org](https://github.com/consumet/api.consumet.org) + +## Support + +Don't forget to leave a star ๐ŸŒŸ. You can also follow me on X (Twitter) [@riteshgsh](https://x.com/riteshgsh). + +## License + +This project is licensed under the [MIT License](https://opensource.org/license/mit/) - see the [LICENSE](https://github.com/ghoshRitesh12/aniwatch/blob/main/LICENSE) file for more details. + + + +## Star History + + diff --git a/CONSUMET_README.md b/CONSUMET_README.md new file mode 100644 index 0000000..be78140 --- /dev/null +++ b/CONSUMET_README.md @@ -0,0 +1,120 @@ +

+ +

consumet.ts

+ +consumet.ts is a Node library which provides high-level APIs to get information about several entertainment mediums like books, movies, comics, anime, manga, etc. + +

+ + npm (scoped) + + + npm (scoped) + + + Prs are welcome + + + Discord + + + GitHub + +

+ +

Table of Contents

+ +- [Quick Start](#quick-start) + - [Installation](#installation) + - [Usage](#usage) +- [Documentation](#documentation) +- [Ecosystem](#ecosystem) +- [Provider Request](#provider-request) +- [Contributing](#contributing) +- [Support](#support) +- [Contributors โœจ](#contributors-) + - [Credits](#credits) +- [License](#license) + +## Quick Start + +### Installation + +To use consumet.ts in your project, run: +```bash +yarn add @consumet/extensions +# or "npm i @consumet/extensions" +``` + +### Usage + +**Example** - searching for a book using the libgen provider. +```ts +import { BOOKS } from "@consumet/extensions" + +// Create a new instance of the Libgen provider +const books = new BOOKS.Libgen(); +// Search for a book. In this case, "Pride and Prejudice" +const data = books.search('pride and prejudice').then(data => { + // print results + console.log(data) +}) +``` + +**Example** - searching for anime using the gogoanime provider. +```ts +import { ANIME } from "@consumet/extensions" + +// Create a new instance of the Gogoanime provider +const gogoanime = new ANIME.Gogoanime(); +// Search for an anime. In this case, "One Piece" +const results = gogoanime.search("One Piece").then(data => { + // print results + console.log(data); +}) +``` + +Do you want to know more? Head to the [`Getting Started`](https://github.com/consumet/consumet.ts/tree/master/docs/guides/getting-started.md). + +## Documentation +- [`Getting Started`](./docs/guides/getting-started.md) +- [`Guides`](https://github.com/consumet/consumet.ts/tree/master/docs) +- [`Anime`](./docs/guides/anime.md) +- [`Manga`](./docs/guides/manga.md) +- [`Books`](./docs/guides/books.md) +- [`Movies`](./docs/guides/movies.md) +- [`Light Novels`](./docs/guides/light-novels.md) +- [`Comics`](./docs/guides/comics.md) +- [`Meta`](./docs/guides/meta.md) +- [`News`](./docs/guides/news.md) + +## Ecosystem +- [Rest-API Reference](https://docs.consumet.org/) - public rest api documentation +- [Examples](https://github.com/consumet/consumet.ts/tree/master/examples) - examples of using consumet.ts. +- [Provider Status](https://github.com/consumet/providers-status/blob/main/README.md) - A list of providers and their status. +- [Changelog](https://github.com/consumet/consumet.ts/blob/master/CHANGELOG.md) - See the latest changes. +- [Discord Server](https://discord.gg/qTPfvMxzNH) - Join our discord server and chat with the maintainers. + +## Provider Request +Make a new [issue](https://github.com/consumet/consumet.ts/issues/new?assignees=&labels=provider+request&template=provider-request.yml) with the name of the provider on the title, as well as a link to the provider in the body paragraph. + +## Contributing +Check out [contributing guide](https://github.com/consumet/consumet.ts/blob/master/CONTRIBUTING.md) to get an overview of consumet.ts development. + +## Support +You can contact the maintainers of consumet.ts via [email](mailto:consumet.org@gmail.com), or [join the discord server](https://discord.gg/qTPfvMxzNH) (Recommended). + + + + + +## Contributors โœจ +Thanks to the following people for keeping this project alive and thriving. + +[![](https://contrib.rocks/image?repo=consumet/consumet.ts)](https://github.com/consumet/consumet.ts/graphs/contributors) + +### Credits +- [Anify API](https://github.com/Eltik/Anify) - Used as a caching layer for the meta/anilist provider to speed up responses. + +## License +Licensed under [GPL-3.0](./LICENSE). diff --git a/README.md b/README.md index f0870b3..e99c423 100644 --- a/README.md +++ b/README.md @@ -1,1210 +1,24 @@ -

- - Logo - -

+

-#

Aniwatch

+### Quick Recap +On 2026-03-23 Cocksucker [Crunchyroll has DMCA striked these GitHub repositories](https://github.com/github/dmca/blob/master/2026/03/2026-03-23-crunchyroll.md) for copyright infringement instead of releasing a pr statement for the data breach that they experienced around the same time, I have gained all prior packages for `aniwatch` and `@consumet/extension`, but unfortunately I couldn't archieve the source code. -
- ๐Ÿ“ฆ A scraper package serving anime information from hianimez.to -
- - - Bug report - - ยท - - Feature request - - -
+### Rant +I won't force you to stop using crunchyroll but these motherfuckers have there priorities upside down not fixing there core service was the reason for these api/sdk/scraper to exist, thought not ethical/legal they focused on taking down piracy site and innocent individuals git repos as if it will stop it all together. There only so much these archive can provide so use it for the temporary solution it is -
+### Related Links: +- https://github.com/consumet/consumet.ts +- https://github.com/ghoshRitesh12/aniwatch-api +- https://github.com/ghoshRitesh12/aniwatch +- https://github.com/consumet/api.consumet.org +- https://github.com/github/dmca/blob/master/2026/03/2026-03-23-crunchyroll.md -
-[![Publish Package](https://github.com/ghoshRitesh12/aniwatch/actions/workflows/publish.yml/badge.svg)](https://github.com/ghoshRitesh12/aniwatch/actions/workflows/publish.yml) -![NPM Downloads](https://img.shields.io/npm/dw/aniwatch?logo=npm&logoColor=e78284&label=Downloads&labelColor=292e34&color=31c754) -[![GitHub License](https://img.shields.io/github/license/ghoshRitesh12/aniwatch?logo=github&logoColor=%23959da5&labelColor=%23292e34&color=%2331c754)](https://github.com/ghoshRitesh12/aniwatch/blob/main/LICENSE) +- https://www.cnet.com/tech/services-and-software/crunchyroll-responds-claims-of-cyberattack/ +- https://piunikaweb.com/2026/03/23/crunchyroll-data-breach-alleged-third-party-access/ +- https://www.escudodigital.com/en/cybersecurity/hacker-claims-theft-of-100-gb-of-crunchyroll-data.html - +Archive of packages `aniwatch` and `@consumet/extension` are in the folder match the version and do `npm i package.zip`. -
-
- -[![stars](https://img.shields.io/github/stars/ghoshRitesh12/aniwatch?style=social)](https://github.com/ghoshRitesh12/aniwatch/stargazers) -[![forks](https://img.shields.io/github/forks/ghoshRitesh12/aniwatch?style=social)](https://github.com/ghoshRitesh12/aniwatch/network/members) -[![issues](https://img.shields.io/github/issues/ghoshRitesh12/aniwatch?style=social&logo=github)](https://github.com/ghoshRitesh12/aniwatch/issues?q=is%3Aissue+is%3Aopen+) -[![version](https://img.shields.io/github/v/release/ghoshRitesh12/aniwatch?display_name=release&style=social&logo=github)](https://github.com/ghoshRitesh12/aniwatch/releases/latest) - -
- -> [!IMPORTANT] -> -> 1. This package is just an unofficial package for [hianimez.to](https://hianimez.to) and is in no other way officially related to the same. -> 2. The content that this package provides is not mine, nor is it hosted by me. These belong to their respective owners. This package just demonstrates how to build a package that scrapes websites and uses their content. - -## Table of Contents - -- [Quick Start](#quick-start) - - [Installation](#installation) - - [Example Usage](#example-usage) -- [Documentation](#documentation) -- - [getHomePage](#gethomepage) - - [getAZList](#getazlist) - - [getQtipInfo](#getqtipinfo) - - [getAnimeAboutInfo](#getanimeaboutinfo) - - [getAnimeSearchResults](#getanimesearchresults) - - [getAnimeSearchSuggestion](#getanimesearchsuggestion) - - [getProducerAnimes](#getproduceranimes) - - [getGenreAnime](#getgenreanime) - - [getAnimeCategory](#getanimecategory) - - [getEstimatedSchedule](#getestimatedschedule) - - [getNextEpisodeSchedule](#getnextepisodeschedule) - - [getAnimeEpisodes](#getanimeepisodes) - - [getEpisodeServers](#getepisodeservers) - - [getAnimeEpisodeSources](#getanimeepisodesources) -- [Development](#development) -- [Thanks](#thanks) -- [Support](#support) -- [License](#license) -- [Contributors](#contributors) -- [Star History](#star-history) - -## Quick start - -### Installation - -To use `aniwatch` package in your project, run: - -```bash -pnpm add aniwatch -# or "yarn add aniwatch" -# or "npm install aniwatch" -``` - -### Example usage - -Example - getting information about an anime by providing it's unique anime id, using anime [Steins;Gate](https://www.imdb.com/title/tt1910272/) with `steinsgate-3` unique anime id as an example. - -```javascript -import { HiAnime, HiAnimeError } from "aniwatch"; - -const hianime = new HiAnime.Scraper(); - -try { - const data: HiAnime.ScrapedAnimeAboutInfo = await hianime.getInfo( - "steinsgate-3" - ); - console.log(data); -} catch (err) { - console.error(err instanceof HiAnimeError, err); -} -``` - -
- - - -### `getHomePage` - - - -#### Sample Usage - -```typescript -import { HiAnime } from "aniwatch"; - -const hianime = new HiAnime.Scraper(); - -hianime - .getHomePage() - .then((data) => console.log(data)) - .catch((err) => console.error(err)); -``` - -#### Response Schema - -```javascript -{ - genres: ["Action", "Cars", "Adventure", ...], - latestEpisodeAnimes: [ - { - id: string, - name: string, - poster: string, - type: string, - episodes: { - sub: number, - dub: number, - } - }, - {...}, - ], - spotlightAnimes: [ - { - id: string, - name: string, - jname: string, - poster: string, - description: string, - rank: number, - otherInfo: string[], - episodes: { - sub: number, - dub: number, - }, - }, - {...}, - ], - top10Animes: { - today: [ - { - episodes: { - sub: number, - dub: number, - }, - id: string, - name: string, - poster: string, - rank: number - }, - {...}, - ], - month: [...], - week: [...] - }, - topAiringAnimes: [ - { - id: string, - name: string, - jname: string, - poster: string, - }, - {...}, - ], - topUpcomingAnimes: [ - { - id: string, - name: string, - poster: string, - duration: string, - type: string, - rating: string, - episodes: { - sub: number, - dub: number, - } - }, - {...}, - ], - trendingAnimes: [ - { - id: string, - name: string, - poster: string, - rank: number, - }, - {...}, - ], - mostPopularAnimes: [ - { - id: string, - name: string, - poster: string, - type: string, - episodes: { - sub: number, - dub: number, - } - }, - {...}, - ], - mostFavoriteAnimes: [ - { - id: string, - name: string, - poster: string, - type: string, - episodes: { - sub: number, - dub: number, - } - }, - {...}, - ], - latestCompletedAnimes: [ - { - id: string, - name: string, - poster: string, - type: string, - episodes: { - sub: number, - dub: number, - } - }, - {...}, - ], -} - -``` - -[๐Ÿ”ผ Back to Top](#table-of-contents) - -
- -
- - - -### `getAZList` - - - -#### Parameters - -| Parameter | Type | Description | Required? | Default | -| :----------: | :----: | :-------------------------------------------------------------------------------------------------: | :-------: | :-----: | -| `sortOption` | string | The az-list sort option. Possible values include: "all", "other", "0-9" and all english alphabets . | Yes | -- | -| `page` | number | The page number of the result. | No | `1` | - -#### Sample Usage - -```javascript -import { HiAnime } from "aniwatch"; - -const hianime = new HiAnime.Scraper(); - -hianime - .getAZList("0-9", 1) - .then((data) => console.log(data)) - .catch((err) => console.error(err)); -``` - -#### Response Schema - -```javascript -{ - sortOption: "0-9", - animes: [ - { - id: string, - name: string, - jname: string, - poster: string, - duration: string, - type: string, - rating: string, - episodes: { - sub: number , - dub: number - } - }, - {...} - ], - totalPages: 1, - currentPage: 1, - hasNextPage: false -} -``` - -[๐Ÿ”ผ Back to Top](#table-of-contents) - -
- -
- - - -### `getQtipInfo` - - - -#### Parameters - -| Parameter | Type | Description | Required? | Default | -| :-------: | :----: | :----------------------------------: | :-------: | :-----: | -| `animeId` | string | The unique anime id (in kebab case). | Yes | -- | - -#### Sample Usage - -```javascript -import { HiAnime } from "aniwatch"; - -const hianime = new HiAnime.Scraper(); - -hianime - .getQtipInfo("one-piece-100") - .then((data) => console.log(data)) - .catch((err) => console.error(err)); -``` - -#### Response Schema - -```javascript -{ - anime: { - id: "one-piece-100", - name: "One Piece", - malscore: string, - quality: string, - episodes: { - sub: number, - dub: number - }, - type: string, - description: string, - jname: string, - synonyms: string, - aired: string, - status: string, - genres: ["Action", "Adventure", "Comedy", "Drama", "Fantasy", "Shounen", "Drama", "Fantasy", "Shounen", "Fantasy", "Shounen", "Shounen", "Super Power"] - } -} -``` - -[๐Ÿ”ผ Back to Top](#table-of-contents) - -
- -
- - - -### `getAnimeAboutInfo` - - - -#### Parameters - -| Parameter | Type | Description | Required? | Default | -| :-------: | :----: | :----------------------------------: | :-------: | :-----: | -| `animeId` | string | The unique anime id (in kebab case). | Yes | -- | - -#### Sample Usage - -```javascript -import { HiAnime } from "aniwatch"; - -const hianime = new HiAnime.Scraper(); - -hianime - .getInfo("steinsgate-3") - .then((data) => console.log(data)) - .catch((err) => console.error(err)); -``` - -#### Response Schema - -```javascript -{ - anime: [ - info: { - id: string, - name: string, - poster: string, - description: string, - stats: { - rating: string, - quality: string, - episodes: { - sub: number, - dub: number - }, - type: string, - duration: string - }, - promotionalVideos: [ - { - title: string | undefined, - source: string | undefined, - thumbnail: string | undefined - }, - {...}, - ], - characterVoiceActor: [ - { - character: { - id: string, - poster: string, - name: string, - cast: string - }, - voiceActor: { - id: string, - poster: string, - name: string, - cast: string - } - }, - {...}, - ] - } - moreInfo: { - aired: string, - genres: ["Action", "Mystery", ...], - status: string, - studios: string, - duration: string - ... - } - ], - mostPopularAnimes: [ - { - episodes: { - sub: number, - dub: number, - }, - id: string, - jname: string, - name: string, - poster: string, - type: string - }, - {...}, - ], - recommendedAnimes: [ - { - id: string, - name: string, - poster: string, - duration: string, - type: string, - rating: string, - episodes: { - sub: number, - dub: number, - } - }, - {...}, - ], - relatedAnimes: [ - { - id: string, - name: string, - poster: string, - duration: string, - type: string, - rating: string, - episodes: { - sub: number, - dub: number, - } - }, - {...}, - ], - seasons: [ - { - id: string, - name: string, - title: string, - poster: string, - isCurrent: boolean - }, - {...} - ] -} -``` - -[๐Ÿ”ผ Back to Top](#table-of-contents) - -
- -
- - - -### `getAnimeSearchResults` - - - -#### Parameters - -| Parameter | Type | Description | Required? | Default | -| :----------: | :----: | :---------------------------------------------------------------: | :-------: | :-----: | -| `q` | string | The search query, i.e. the title of the item you are looking for. | Yes | -- | -| `page` | number | The page number of the result. | No | `1` | -| `type` | string | Type of the anime. eg: `movie` | No | -- | -| `status` | string | Status of the anime. eg: `finished-airing` | No | -- | -| `rated` | string | Rating of the anime. eg: `r+` or `pg-13` | No | -- | -| `score` | string | Score of the anime. eg: `good` or `very-good` | No | -- | -| `season` | string | Season of the aired anime. eg: `spring` | No | -- | -| `language` | string | Language category of the anime. eg: `sub` or `sub-&-dub` | No | -- | -| `start_date` | string | Start date of the anime(yyyy-mm-dd). eg: `2014-10-2` | No | -- | -| `end_date` | string | End date of the anime(yyyy-mm-dd). eg: `2010-12-4` | No | -- | -| `sort` | string | Order of sorting the anime result. eg: `recently-added` | No | -- | -| `genres` | string | Genre of the anime, separated by commas. eg: `isekai,shounen` | No | -- | - -> [!TIP] -> -> For both `start_date` and `end_date`, year must be mentioned. If you wanna omit date or month specify `0` instead. Eg: omitting date -> 2014-10-0, omitting month -> 2014-0-12, omitting both -> 2014-0-0 - -#### Sample Usage - -```javascript -import { HiAnime } from "aniwatch"; - -const hianime = new HiAnime.Scraper(); - -hianime - .search("monster", 1, { - genres: "seinen,psychological", - }) - .then((data) => { - console.log(data); - }) - .catch((err) => { - console.error(err); - }); -``` - -#### Response Schema - -```javascript -{ - animes: [ - { - id: string, - name: string, - poster: string, - duration: string, - type: string, - rating: string, - episodes: { - sub: number, - dub: number, - } - }, - {...}, - ], - mostPopularAnimes: [ - { - episodes: { - sub: number, - dub: number, - }, - id: string, - jname: string, - name: string, - poster: string, - type: string - }, - {...}, - ], - currentPage: 1, - totalPages: 1, - hasNextPage: false, - searchQuery: string, - searchFilters: { - [filter_name]: [filter_value] - ... - } -} -``` - -[๐Ÿ”ผ Back to Top](#table-of-contents) - -
- -
- - - -### `getAnimeSearchSuggestion` - - - -#### Parameters - -| Parameter | Type | Description | Required? | Default | -| :-------: | :----: | :--------------------------: | :-------: | :-----: | -| `q` | string | The search suggestion query. | Yes | -- | - -#### Sample Usage - -```javascript -import { HiAnime } from "aniwatch"; - -const hianime = new HiAnime.Scraper(); - -hianime - .searchSuggestions("one piece") - .then((data) => console.log(data)) - .catch((err) => console.error(err)); -``` - -#### Response Schema - -```javascript -{ - suggestions: [ - { - id: string, - name: string, - poster: string, - jname: string, - moreInfo: ["Mar 4, 2000", "Movie", "50m"] - }, - {...}, - ], -} -``` - -[๐Ÿ”ผ Back to Top](#table-of-contents) - -
- -
- - - -### `getProducerAnimes` - - - -#### Parameters - -| Parameter | Type | Description | Required? | Default | -| :-------: | :----: | :-----------------------------------------: | :-------: | :-----: | -| `name` | string | The name of anime producer (in kebab case). | Yes | -| `page` | number | The page number of the result. | No | `1` | - -#### Sample Usage - -```javascript -import { HiAnime } from "aniwatch"; - -const hianime = new HiAnime.Scraper(); - -hianime - .getProducerAnimes("toei-animation", 2) - .then((data) => console.log(data)) - .catch((err) => console.error(err)); -``` - -#### Response Schema - -```javascript -{ - producerName: "Toei Animation Anime", - animes: [ - { - id: string, - name: string, - poster: string, - duration: string, - type: string, - rating: string, - episodes: { - sub: number, - dub: number, - } - }, - {...}, - ], - top10Animes: { - today: [ - { - episodes: { - sub: number, - dub: number, - }, - id: string, - name: string, - poster: string, - rank: number - }, - {...}, - ], - month: [...], - week: [...] - }, - topAiringAnimes: [ - { - episodes: { - sub: number, - dub: number, - }, - id: string, - jname: string, - name: string, - poster: string, - type: string - }, - {...}, - ], - currentPage: 2, - totalPages: 11, - hasNextPage: true, -} -``` - -[๐Ÿ”ผ Back to Top](#table-of-contents) - -
- -
- - - -### `getGenreAnime` - - - -#### Parameters - -| Parameter | Type | Description | Required? | Default | -| :-------: | :----: | :--------------------------------------: | :-------: | :-----: | -| `name` | string | The name of anime genre (in kebab case). | Yes | -- | -| `page` | number | The page number of the result. | No | `1` | - -#### Sample Usage - -```javascript -import { HiAnime } from "aniwatch"; - -const hianime = new HiAnime.Scraper(); - -hianime - .getGenreAnime("shounen", 2) - .then((data) => console.log(data)) - .catch((err) => console.error(err)); -``` - -#### Response Schema - -```javascript -{ - genreName: "Shounen Anime", - animes: [ - { - id: string, - name: string, - poster: string, - duration: string, - type: string, - rating: string, - episodes: { - sub: number, - dub: number, - } - }, - {...}, - ], - genres: ["Action", "Cars", "Adventure", ...], - topAiringAnimes: [ - { - episodes: { - sub: number, - dub: number, - }, - id: string, - jname: string, - name: string, - poster: string, - type: string - }, - {...}, - ], - currentPage: 2, - totalPages: 38, - hasNextPage: true -} -``` - -[๐Ÿ”ผ Back to Top](#table-of-contents) - -
- -
- - - -### `getAnimeCategory` - - - -#### Parameters - -| Parameter | Type | Description | Required? | Default | -| :--------: | :----: | :----------------------------: | :-------: | :-----: | -| `category` | string | The category of anime. | Yes | -- | -| `page` | number | The page number of the result. | No | `1` | - -#### Sample Usage - -```javascript -import { HiAnime } from "aniwatch"; - -const hianime = new HiAnime.Scraper(); - -hianime - .getCategoryAnime("subbed-anime") - .then((data) => console.log(data)) - .catch((err) => console.error(err)); - -// categories -> -// "most-favorite", "most-popular", "subbed-anime", "dubbed-anime", -// "recently-updated", "recently-added", "top-upcoming", "top-airing", -// "movie", "special", "ova", "ona", "tv", "completed" -``` - -#### Response Schema - -```javascript -{ - category: "TV Series Anime", - animes: [ - { - id: string, - name: string, - poster: string, - duration: string, - type: string, - rating: string, - episodes: { - sub: number, - dub: number, - } - }, - {...}, - ], - genres: ["Action", "Cars", "Adventure", ...], - top10Animes: { - today: [ - { - episodes: { - sub: number, - dub: number, - }, - id: string, - name: string, - poster: string, - rank: number - }, - {...}, - ], - month: [...], - week: [...] - }, - currentPage: 2, - totalPages: 100, - hasNextPage: true -} -``` - -[๐Ÿ”ผ Back to Top](#table-of-contents) - -
- -
- - - -### `getEstimatedSchedule` - - - -#### Parameters - -| Parameter | Type | Description | Required? | Default | -| :-----------------: | :----: | :------------------------------------------------------------------: | :-------: | :-----: | -| `date (yyyy-mm-dd)` | string | The date of the desired schedule. (months & days must have 2 digits) | Yes | -- | -| `tzOffset` | number | The timezone offset in minutes (defaults to -330 i.e. IST) | No | `-330` | - -#### Sample Usage - -```javascript -import { HiAnime } from "aniwatch"; - -const hianime = new HiAnime.Scraper(); -const timezoneOffset = -330; // IST offset in minutes - -hianime - .getEstimatedSchedule("2025-06-09", timezoneOffset) - .then((data) => console.log(data)) - .catch((err) => console.error(err)); -``` - -#### Response Schema - -```javascript -{ - scheduledAnimes: [ - { - id: string, - time: string, // 24 hours format - name: string, - jname: string, - airingTimestamp: number, - secondsUntilAiring: number - }, - {...} - ] -} -``` - -[๐Ÿ”ผ Back to Top](#table-of-contents) - -
- -## - -
- - - -### `getNextEpisodeSchedule` - - - -#### Parameters - -| Parameter | Type | Description | Required? | Default | -| :-------: | :----: | :----------------------------------: | :-------: | :-----: | -| `animeId` | string | The unique anime id (in kebab case). | Yes | -- | - -#### Sample Usage - -```javascript -import { HiAnime } from "aniwatch"; - -const hianime = new HiAnime.Scraper(); - -hianime - .getNextEpisodeSchedule("one-piece-100") - .then((data) => console.log(data)) - .catch((err) => console.error(err)); -``` - -#### Response Schema - -```javascript -{ - airingISOTimestamp: string | null, - airingTimestamp: number | null, - secondsUntilAiring: number | null -} -``` - -[๐Ÿ”ผ Back to Top](#table-of-contents) - -
- -
- - - -### `getAnimeEpisodes` - - - -#### Parameters - -| Parameter | Type | Description | Required? | Default | -| :-------: | :----: | :------------------: | :-------: | :-----: | -| `animeId` | string | The unique anime id. | Yes | -- | - -#### Sample Usage - -```javascript -import { HiAnime } from "aniwatch"; - -const hianime = new HiAnime.Scraper(); - -hianime - .getEpisodes("steinsgate-3") - .then((data) => console.log(data)) - .catch((err) => console.error(err)); -``` - -#### Response Schema - -```javascript -{ - totalEpisodes: 24, - episodes: [ - { - number: 1, - isFiller: false, - title: "Turning Point", - episodeId: "steinsgate-3?ep=213" - }, - {...} - ] -} -``` - -[๐Ÿ”ผ Back to Top](#table-of-contents) - -
- -
- - - -### `getEpisodeServers` - - - -#### Parameters - -| Parameter | Type | Description | Required? | Default | -| :---------: | :----: | :--------------------: | :-------: | :-----: | -| `episodeId` | string | The unique episode id. | Yes | -- | - -#### Request sample - -```javascript -import { HiAnime } from "aniwatch"; - -const hianime = new HiAnime.Scraper(); - -hianime - .getEpisodeServers("steinsgate-0-92?ep=2055") - .then((data) => console.log(data)) - .catch((err) => console.error(err)); -``` - -#### Response Schema - -```javascript -{ - episodeId: "steinsgate-0-92?ep=2055", - episodeNo: 5, - sub: [ - { - serverId: 4, - serverName: "vidstreaming", - }, - {...} - ], - dub: [ - { - serverId: 1, - serverName: "megacloud", - }, - {...} - ], - raw: [ - { - serverId: 1, - serverName: "megacloud", - }, - {...} - ], -} -``` - -[๐Ÿ”ผ Back to Top](#table-of-contents) - -
- -
- - - -### `getAnimeEpisodeSources` - - - -#### Parameters - -| Parameter | Type | Description | Required? | Default | -| :--------: | :----: | :--------------------------------------------------: | :-------: | :--------------: | -| `id` | string | The id of the episode. | Yes | -- | -| `server` | string | The name of the server. | No | `"vidstreaming"` | -| `category` | string | The category of the episode ('sub', 'dub' or 'raw'). | No | `"sub"` | - -#### Request sample - -```javascript -import { HiAnime } from "aniwatch"; - -const hianime = new HiAnime.Scraper(); - -hianime - .getEpisodeSources("steinsgate-3?ep=230", "hd-1", "sub") - .then((data) => console.log(data)) - .catch((err) => console.error(err)); -``` - -#### Response Schema - -```javascript -{ - headers: { - Referer: string, - "User-Agent": string, - ... - }, - sources: [ - { - url: string, // .m3u8 hls streaming file - isM3U8: boolean, - quality?: string, - }, - {...} - ], - subtitles: [ - { - lang: "English", - url: string, // .vtt subtitle file - default: boolean, - }, - {...} - ], - anilistID: number | null, - malID: number | null, -} -``` - -[๐Ÿ”ผ Back to Top](#table-of-contents) - -
- -## Development - -Pull requests are always welcome. If you encounter any bug or want to add a new feature to this package, consider creating a new [issue](https://github.com/ghoshRitesh12/aniwatch/issues). If you wish to contribute to this project, read the [CONTRIBUTING.md](https://github.com/ghoshRitesh12/aniwatch/blob/main/CONTRIBUTING.md) file. - -## Contributors - -Thanks to the following people for keeping this project alive and relevant. - -[![](https://contrib.rocks/image?repo=ghoshRitesh12/aniwatch)](https://github.com/ghoshRitesh12/aniwatch/graphs/contributors) - -## Thanks - -- [consumet.ts](https://github.com/consumet/consumet.ts) -- [api.consumet.org](https://github.com/consumet/api.consumet.org) - -## Support - -Don't forget to leave a star ๐ŸŒŸ. You can also follow me on X (Twitter) [@riteshgsh](https://x.com/riteshgsh). - -## License - -This project is licensed under the [MIT License](https://opensource.org/license/mit/) - see the [LICENSE](https://github.com/ghoshRitesh12/aniwatch/blob/main/LICENSE) file for more details. - - - -## Star History - - +### I guess it the end of an era. \ No newline at end of file diff --git a/aniwatch-0.1.0.tgz b/aniwatch/aniwatch-0.1.0.tgz similarity index 100% rename from aniwatch-0.1.0.tgz rename to aniwatch/aniwatch-0.1.0.tgz diff --git a/aniwatch-0.2.0.tgz b/aniwatch/aniwatch-0.2.0.tgz similarity index 100% rename from aniwatch-0.2.0.tgz rename to aniwatch/aniwatch-0.2.0.tgz diff --git a/aniwatch-0.2.1.tgz b/aniwatch/aniwatch-0.2.1.tgz similarity index 100% rename from aniwatch-0.2.1.tgz rename to aniwatch/aniwatch-0.2.1.tgz diff --git a/aniwatch-0.2.2.tgz b/aniwatch/aniwatch-0.2.2.tgz similarity index 100% rename from aniwatch-0.2.2.tgz rename to aniwatch/aniwatch-0.2.2.tgz diff --git a/aniwatch-0.2.3.tgz b/aniwatch/aniwatch-0.2.3.tgz similarity index 100% rename from aniwatch-0.2.3.tgz rename to aniwatch/aniwatch-0.2.3.tgz diff --git a/aniwatch-0.3.0.tgz b/aniwatch/aniwatch-0.3.0.tgz similarity index 100% rename from aniwatch-0.3.0.tgz rename to aniwatch/aniwatch-0.3.0.tgz diff --git a/aniwatch-0.3.1.tgz b/aniwatch/aniwatch-0.3.1.tgz similarity index 100% rename from aniwatch-0.3.1.tgz rename to aniwatch/aniwatch-0.3.1.tgz diff --git a/aniwatch-0.3.2.tgz b/aniwatch/aniwatch-0.3.2.tgz similarity index 100% rename from aniwatch-0.3.2.tgz rename to aniwatch/aniwatch-0.3.2.tgz diff --git a/aniwatch-1.0.0.tgz b/aniwatch/aniwatch-1.0.0.tgz similarity index 100% rename from aniwatch-1.0.0.tgz rename to aniwatch/aniwatch-1.0.0.tgz diff --git a/aniwatch-1.0.1.tgz b/aniwatch/aniwatch-1.0.1.tgz similarity index 100% rename from aniwatch-1.0.1.tgz rename to aniwatch/aniwatch-1.0.1.tgz diff --git a/aniwatch-1.0.2.tgz b/aniwatch/aniwatch-1.0.2.tgz similarity index 100% rename from aniwatch-1.0.2.tgz rename to aniwatch/aniwatch-1.0.2.tgz diff --git a/aniwatch-1.0.3.tgz b/aniwatch/aniwatch-1.0.3.tgz similarity index 100% rename from aniwatch-1.0.3.tgz rename to aniwatch/aniwatch-1.0.3.tgz diff --git a/aniwatch-1.0.4.tgz b/aniwatch/aniwatch-1.0.4.tgz similarity index 100% rename from aniwatch-1.0.4.tgz rename to aniwatch/aniwatch-1.0.4.tgz diff --git a/aniwatch-1.1.0.tgz b/aniwatch/aniwatch-1.1.0.tgz similarity index 100% rename from aniwatch-1.1.0.tgz rename to aniwatch/aniwatch-1.1.0.tgz diff --git a/aniwatch-1.1.1.tgz b/aniwatch/aniwatch-1.1.1.tgz similarity index 100% rename from aniwatch-1.1.1.tgz rename to aniwatch/aniwatch-1.1.1.tgz diff --git a/aniwatch-1.2.1.tgz b/aniwatch/aniwatch-1.2.1.tgz similarity index 100% rename from aniwatch-1.2.1.tgz rename to aniwatch/aniwatch-1.2.1.tgz diff --git a/aniwatch-1.2.2.tgz b/aniwatch/aniwatch-1.2.2.tgz similarity index 100% rename from aniwatch-1.2.2.tgz rename to aniwatch/aniwatch-1.2.2.tgz diff --git a/aniwatch-1.2.3.tgz b/aniwatch/aniwatch-1.2.3.tgz similarity index 100% rename from aniwatch-1.2.3.tgz rename to aniwatch/aniwatch-1.2.3.tgz diff --git a/aniwatch-2.0.1.tgz b/aniwatch/aniwatch-2.0.1.tgz similarity index 100% rename from aniwatch-2.0.1.tgz rename to aniwatch/aniwatch-2.0.1.tgz diff --git a/aniwatch-2.1.0.tgz b/aniwatch/aniwatch-2.1.0.tgz similarity index 100% rename from aniwatch-2.1.0.tgz rename to aniwatch/aniwatch-2.1.0.tgz diff --git a/aniwatch-2.1.1.tgz b/aniwatch/aniwatch-2.1.1.tgz similarity index 100% rename from aniwatch-2.1.1.tgz rename to aniwatch/aniwatch-2.1.1.tgz diff --git a/aniwatch-2.10.0.tgz b/aniwatch/aniwatch-2.10.0.tgz similarity index 100% rename from aniwatch-2.10.0.tgz rename to aniwatch/aniwatch-2.10.0.tgz diff --git a/aniwatch-2.11.0.tgz b/aniwatch/aniwatch-2.11.0.tgz similarity index 100% rename from aniwatch-2.11.0.tgz rename to aniwatch/aniwatch-2.11.0.tgz diff --git a/aniwatch-2.11.1.tgz b/aniwatch/aniwatch-2.11.1.tgz similarity index 100% rename from aniwatch-2.11.1.tgz rename to aniwatch/aniwatch-2.11.1.tgz diff --git a/aniwatch-2.12.0.tgz b/aniwatch/aniwatch-2.12.0.tgz similarity index 100% rename from aniwatch-2.12.0.tgz rename to aniwatch/aniwatch-2.12.0.tgz diff --git a/aniwatch-2.12.1.tgz b/aniwatch/aniwatch-2.12.1.tgz similarity index 100% rename from aniwatch-2.12.1.tgz rename to aniwatch/aniwatch-2.12.1.tgz diff --git a/aniwatch-2.12.2.tgz b/aniwatch/aniwatch-2.12.2.tgz similarity index 100% rename from aniwatch-2.12.2.tgz rename to aniwatch/aniwatch-2.12.2.tgz diff --git a/aniwatch-2.13.1.tgz b/aniwatch/aniwatch-2.13.1.tgz similarity index 100% rename from aniwatch-2.13.1.tgz rename to aniwatch/aniwatch-2.13.1.tgz diff --git a/aniwatch-2.14.0.tgz b/aniwatch/aniwatch-2.14.0.tgz similarity index 100% rename from aniwatch-2.14.0.tgz rename to aniwatch/aniwatch-2.14.0.tgz diff --git a/aniwatch-2.14.1.tgz b/aniwatch/aniwatch-2.14.1.tgz similarity index 100% rename from aniwatch-2.14.1.tgz rename to aniwatch/aniwatch-2.14.1.tgz diff --git a/aniwatch-2.14.3.tgz b/aniwatch/aniwatch-2.14.3.tgz similarity index 100% rename from aniwatch-2.14.3.tgz rename to aniwatch/aniwatch-2.14.3.tgz diff --git a/aniwatch-2.15.0.tgz b/aniwatch/aniwatch-2.15.0.tgz similarity index 100% rename from aniwatch-2.15.0.tgz rename to aniwatch/aniwatch-2.15.0.tgz diff --git a/aniwatch-2.15.1.tgz b/aniwatch/aniwatch-2.15.1.tgz similarity index 100% rename from aniwatch-2.15.1.tgz rename to aniwatch/aniwatch-2.15.1.tgz diff --git a/aniwatch-2.15.2.tgz b/aniwatch/aniwatch-2.15.2.tgz similarity index 100% rename from aniwatch-2.15.2.tgz rename to aniwatch/aniwatch-2.15.2.tgz diff --git a/aniwatch-2.16.0.tgz b/aniwatch/aniwatch-2.16.0.tgz similarity index 100% rename from aniwatch-2.16.0.tgz rename to aniwatch/aniwatch-2.16.0.tgz diff --git a/aniwatch-2.17.0.tgz b/aniwatch/aniwatch-2.17.0.tgz similarity index 100% rename from aniwatch-2.17.0.tgz rename to aniwatch/aniwatch-2.17.0.tgz diff --git a/aniwatch-2.18.0.tgz b/aniwatch/aniwatch-2.18.0.tgz similarity index 100% rename from aniwatch-2.18.0.tgz rename to aniwatch/aniwatch-2.18.0.tgz diff --git a/aniwatch-2.18.1.tgz b/aniwatch/aniwatch-2.18.1.tgz similarity index 100% rename from aniwatch-2.18.1.tgz rename to aniwatch/aniwatch-2.18.1.tgz diff --git a/aniwatch-2.18.2.tgz b/aniwatch/aniwatch-2.18.2.tgz similarity index 100% rename from aniwatch-2.18.2.tgz rename to aniwatch/aniwatch-2.18.2.tgz diff --git a/aniwatch-2.18.3.tgz b/aniwatch/aniwatch-2.18.3.tgz similarity index 100% rename from aniwatch-2.18.3.tgz rename to aniwatch/aniwatch-2.18.3.tgz diff --git a/aniwatch-2.19.0.tgz b/aniwatch/aniwatch-2.19.0.tgz similarity index 100% rename from aniwatch-2.19.0.tgz rename to aniwatch/aniwatch-2.19.0.tgz diff --git a/aniwatch-2.2.0.tgz b/aniwatch/aniwatch-2.2.0.tgz similarity index 100% rename from aniwatch-2.2.0.tgz rename to aniwatch/aniwatch-2.2.0.tgz diff --git a/aniwatch-2.2.1.tgz b/aniwatch/aniwatch-2.2.1.tgz similarity index 100% rename from aniwatch-2.2.1.tgz rename to aniwatch/aniwatch-2.2.1.tgz diff --git a/aniwatch-2.20.0.tgz b/aniwatch/aniwatch-2.20.0.tgz similarity index 100% rename from aniwatch-2.20.0.tgz rename to aniwatch/aniwatch-2.20.0.tgz diff --git a/aniwatch-2.21.0.tgz b/aniwatch/aniwatch-2.21.0.tgz similarity index 100% rename from aniwatch-2.21.0.tgz rename to aniwatch/aniwatch-2.21.0.tgz diff --git a/aniwatch-2.21.1.tgz b/aniwatch/aniwatch-2.21.1.tgz similarity index 100% rename from aniwatch-2.21.1.tgz rename to aniwatch/aniwatch-2.21.1.tgz diff --git a/aniwatch-2.21.2.tgz b/aniwatch/aniwatch-2.21.2.tgz similarity index 100% rename from aniwatch-2.21.2.tgz rename to aniwatch/aniwatch-2.21.2.tgz diff --git a/aniwatch-2.22.0.tgz b/aniwatch/aniwatch-2.22.0.tgz similarity index 100% rename from aniwatch-2.22.0.tgz rename to aniwatch/aniwatch-2.22.0.tgz diff --git a/aniwatch-2.22.1.tgz b/aniwatch/aniwatch-2.22.1.tgz similarity index 100% rename from aniwatch-2.22.1.tgz rename to aniwatch/aniwatch-2.22.1.tgz diff --git a/aniwatch-2.23.0.tgz b/aniwatch/aniwatch-2.23.0.tgz similarity index 100% rename from aniwatch-2.23.0.tgz rename to aniwatch/aniwatch-2.23.0.tgz diff --git a/aniwatch-2.23.1.tgz b/aniwatch/aniwatch-2.23.1.tgz similarity index 100% rename from aniwatch-2.23.1.tgz rename to aniwatch/aniwatch-2.23.1.tgz diff --git a/aniwatch-2.23.3.tgz b/aniwatch/aniwatch-2.23.3.tgz similarity index 100% rename from aniwatch-2.23.3.tgz rename to aniwatch/aniwatch-2.23.3.tgz diff --git a/aniwatch-2.23.4.tgz b/aniwatch/aniwatch-2.23.4.tgz similarity index 100% rename from aniwatch-2.23.4.tgz rename to aniwatch/aniwatch-2.23.4.tgz diff --git a/aniwatch-2.23.5.tgz b/aniwatch/aniwatch-2.23.5.tgz similarity index 100% rename from aniwatch-2.23.5.tgz rename to aniwatch/aniwatch-2.23.5.tgz diff --git a/aniwatch-2.24.0.tgz b/aniwatch/aniwatch-2.24.0.tgz similarity index 100% rename from aniwatch-2.24.0.tgz rename to aniwatch/aniwatch-2.24.0.tgz diff --git a/aniwatch-2.24.1.tgz b/aniwatch/aniwatch-2.24.1.tgz similarity index 100% rename from aniwatch-2.24.1.tgz rename to aniwatch/aniwatch-2.24.1.tgz diff --git a/aniwatch-2.24.3.tgz b/aniwatch/aniwatch-2.24.3.tgz similarity index 100% rename from aniwatch-2.24.3.tgz rename to aniwatch/aniwatch-2.24.3.tgz diff --git a/aniwatch-2.27.9.tgz b/aniwatch/aniwatch-2.27.9.tgz similarity index 100% rename from aniwatch-2.27.9.tgz rename to aniwatch/aniwatch-2.27.9.tgz diff --git a/aniwatch-2.3.0.tgz b/aniwatch/aniwatch-2.3.0.tgz similarity index 100% rename from aniwatch-2.3.0.tgz rename to aniwatch/aniwatch-2.3.0.tgz diff --git a/aniwatch-2.4.0.tgz b/aniwatch/aniwatch-2.4.0.tgz similarity index 100% rename from aniwatch-2.4.0.tgz rename to aniwatch/aniwatch-2.4.0.tgz diff --git a/aniwatch-2.4.1.tgz b/aniwatch/aniwatch-2.4.1.tgz similarity index 100% rename from aniwatch-2.4.1.tgz rename to aniwatch/aniwatch-2.4.1.tgz diff --git a/aniwatch-2.5.0.tgz b/aniwatch/aniwatch-2.5.0.tgz similarity index 100% rename from aniwatch-2.5.0.tgz rename to aniwatch/aniwatch-2.5.0.tgz diff --git a/aniwatch-2.7.0.tgz b/aniwatch/aniwatch-2.7.0.tgz similarity index 100% rename from aniwatch-2.7.0.tgz rename to aniwatch/aniwatch-2.7.0.tgz diff --git a/aniwatch-2.8.0.tgz b/aniwatch/aniwatch-2.8.0.tgz similarity index 100% rename from aniwatch-2.8.0.tgz rename to aniwatch/aniwatch-2.8.0.tgz diff --git a/aniwatch-2.9.0.tgz b/aniwatch/aniwatch-2.9.0.tgz similarity index 100% rename from aniwatch-2.9.0.tgz rename to aniwatch/aniwatch-2.9.0.tgz diff --git a/consumet-extensions-metadata.json b/consumet-extensions-metadata.json new file mode 100644 index 0000000..403aadb --- /dev/null +++ b/consumet-extensions-metadata.json @@ -0,0 +1,290 @@ +{ + "_id": "@consumet/extensions@1.8.8", + "_rev": "76-53fd537a6a99a270a8eb02336988d67e", + "name": "@consumet/extensions", + "dist-tags": { + "latest": "1.8.8" + }, + "versions": [ + "1.0.0", + "1.0.1", + "1.0.2", + "1.0.3", + "1.0.4", + "1.0.5", + "1.0.6", + "1.0.7", + "1.0.8", + "1.0.9", + "1.0.10", + "1.1.0", + "1.1.1", + "1.1.2", + "1.1.3", + "1.1.4", + "1.1.5", + "1.1.6", + "1.1.7", + "1.1.8", + "1.1.9", + "1.2.0", + "1.2.1", + "1.2.2", + "1.2.3", + "1.2.4", + "1.2.5", + "1.2.6", + "1.2.7", + "1.2.8", + "1.2.9", + "1.2.10", + "1.2.11", + "1.2.12-rc", + "1.2.12", + "1.3.0", + "1.3.1", + "1.3.2", + "1.3.3", + "1.3.4", + "1.3.5", + "1.3.6", + "1.3.7", + "1.4.0", + "1.4.1", + "1.4.2", + "1.4.5", + "1.4.7", + "1.4.8", + "1.4.9", + "1.4.10", + "1.4.11", + "1.4.12", + "1.4.13", + "1.4.14", + "1.4.15", + "1.4.16", + "1.4.17", + "1.4.18", + "1.5.0", + "1.5.1", + "1.5.2", + "1.5.4", + "1.5.6", + "1.6.0", + "1.7.0", + "1.8.0", + "1.8.1", + "1.8.2", + "1.8.3", + "1.8.4", + "1.8.5", + "1.8.6", + "1.8.7", + "1.8.8" + ], + "time": { + "created": "2022-06-20T03:31:24.801Z", + "modified": "2026-01-20T21:33:07.498Z", + "1.0.0": "2022-06-20T03:31:25.046Z", + "1.0.1": "2022-06-22T20:39:48.276Z", + "1.0.2": "2022-07-06T21:00:31.310Z", + "1.0.3": "2022-07-10T04:11:01.668Z", + "1.0.4": "2022-07-13T22:50:52.540Z", + "1.0.5": "2022-07-17T14:56:25.803Z", + "1.0.6": "2022-07-20T11:48:24.733Z", + "1.0.7": "2022-07-25T17:07:18.801Z", + "1.0.8": "2022-07-31T05:14:10.358Z", + "1.0.9": "2022-08-04T21:06:02.871Z", + "1.0.10": "2022-08-09T19:01:12.619Z", + "1.1.0": "2022-08-28T01:29:25.974Z", + "1.1.1": "2022-09-27T03:15:21.950Z", + "1.1.2": "2022-10-01T18:01:53.918Z", + "1.1.3": "2022-10-02T00:06:09.163Z", + "1.1.4": "2022-10-04T19:07:37.439Z", + "1.1.5": "2022-10-05T04:54:23.868Z", + "1.1.6": "2022-10-13T13:22:16.322Z", + "1.1.7": "2022-10-13T13:50:24.016Z", + "1.1.8": "2022-10-15T19:49:59.308Z", + "1.1.9": "2022-10-18T16:01:09.461Z", + "1.2.0": "2022-10-22T03:17:20.554Z", + "1.2.1": "2022-10-22T03:35:47.399Z", + "1.2.2": "2022-10-24T21:04:30.992Z", + "1.2.3": "2022-10-26T22:50:20.661Z", + "1.2.4": "2022-11-01T22:33:55.834Z", + "1.2.5": "2022-11-01T23:21:56.303Z", + "1.2.6": "2022-11-05T21:46:33.040Z", + "1.2.7": "2022-11-09T23:00:31.536Z", + "1.2.8": "2022-11-14T03:28:22.669Z", + "1.2.9": "2022-11-28T01:34:28.954Z", + "1.2.10": "2022-12-01T23:07:29.092Z", + "1.2.11": "2022-12-03T21:03:59.907Z", + "1.2.12": "2022-12-14T00:14:47.750Z", + "1.2.12-rc": "2022-12-14T13:30:29.521Z", + "1.3.0": "2022-12-26T18:47:53.744Z", + "1.3.2": "2023-01-14T19:04:11.617Z", + "1.3.1": "2023-01-17T19:02:39.715Z", + "1.3.3": "2023-01-23T08:51:33.969Z", + "1.3.4": "2023-01-24T03:56:03.460Z", + "1.3.5": "2023-01-28T17:53:57.316Z", + "1.3.6": "2023-01-30T21:23:34.673Z", + "1.3.7": "2023-02-02T12:54:39.353Z", + "1.4.0": "2023-02-03T09:36:11.800Z", + "1.4.1": "2023-02-05T12:10:29.168Z", + "1.4.2": "2023-02-10T21:00:42.276Z", + "1.4.5": "2023-02-11T13:45:11.150Z", + "1.4.7": "2023-02-11T13:59:36.034Z", + "1.4.8": "2023-02-11T14:36:08.815Z", + "1.4.9": "2023-02-14T18:17:58.860Z", + "1.4.10": "2023-02-16T17:04:59.288Z", + "1.4.11": "2023-02-22T01:55:55.439Z", + "1.4.12": "2023-02-23T17:44:39.779Z", + "1.4.13": "2023-02-25T21:26:31.971Z", + "1.4.14": "2023-02-26T03:47:46.636Z", + "1.4.15": "2023-03-04T02:29:58.414Z", + "1.4.16": "2023-03-13T07:01:51.152Z", + "1.4.17": "2023-03-27T22:55:22.969Z", + "1.4.18": "2023-05-21T18:59:43.324Z", + "1.5.0": "2023-07-24T18:16:28.801Z", + "1.5.1": "2023-08-23T15:37:32.746Z", + "1.5.2": "2023-09-22T15:43:02.431Z", + "1.5.4": "2023-11-15T22:07:00.489Z", + "1.5.6": "2024-02-25T20:21:43.959Z", + "1.6.0": "2024-05-20T03:29:23.012Z", + "1.7.0": "2024-07-24T19:40:56.234Z", + "1.8.0": "2024-09-24T21:46:44.718Z", + "1.8.1": "2024-11-05T19:58:09.008Z", + "1.8.2": "2025-11-24T15:00:09.051Z", + "1.8.3": "2025-11-24T19:22:56.892Z", + "1.8.4": "2025-11-24T20:00:27.238Z", + "1.8.5": "2025-11-25T04:33:26.921Z", + "1.8.6": "2025-11-25T05:27:00.359Z", + "1.8.7": "2025-11-25T18:53:13.887Z", + "1.8.8": "2026-01-20T21:33:07.350Z" + }, + "bugs": { + "url": "https://github.com/consumet/consumet.ts/issues" + }, + "license": "MIT", + "homepage": "https://github.com/consumet/consumet.ts#readme", + "keywords": [ + "consumet", + "scraper", + "streaming", + "anime", + "books", + "comics", + "movies", + "manga", + "light-novels", + "news", + "meta" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/consumet/consumet.ts.git" + }, + "description": "Nodejs library that provides high-level APIs for obtaining information on various entertainment media such as books, movies, comic books, anime, manga, and so on.", + "maintainers": [ + "riimuru ", + "prince-ao " + ], + "readmeFilename": "README.md", + "_contentLength": 277351, + "version": "1.8.8", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "rimraf dist && tsc -p tsconfig.json", + "version": "auto-changelog -p && git add CHANGELOG.md", + "lint": "prettier --write .", + "prepare": "husky || true", + "test": "jest", + "test:anime": "jest ./test/anime", + "test:anime:kaa": "jest ./test/anime/kickassanime.test.ts", + "test:anime:anisma": "jest ./test/anime/animesama.test.ts", + "test:books": "jest ./test/books", + "test:comics": "jest ./test/comics", + "test:movies": "jest ./test/movies", + "test:manga": "jest ./test/manga", + "test:lightnovels": "jest ./test/light-novels", + "test:news": "jest ./test/news", + "test:meta": "jest ./test/meta" + }, + "pre-commit": [ + "lint", + "build" + ], + "authors": [ + "https://github.com/riimuru", + "https://github.com/prince-ao" + ], + "dependencies": { + "ascii-url-encoder": "^1.2.0", + "axios": "^1.7.9", + "cheerio": "^1.0.0-rc.12", + "crypto-js": "^4.1.1", + "domhandler": "^5.0.3", + "form-data": "^4.0.0", + "got": "^11.8.6", + "got-scraping": "^4.1.2", + "husky": "^9.1.1", + "node-fetch": "^2.7.0" + }, + "devDependencies": { + "@commitlint/cli": "^17.6.3", + "@commitlint/config-angular": "^17.6.3", + "@types/crypto-js": "^4.1.1", + "@types/jest": "^29.5.1", + "@types/node": "^20.19.25", + "@types/ws": "^8.5.4", + "auto-changelog": "^2.4.0", + "cloudscraper": "^4.6.0", + "is-ci": "^3.0.1", + "jest": "^29.5.0", + "pre-commit": "^1.0.10", + "prettier": "^2.8.8", + "request": "^2.88.2", + "rimraf": "^6.0.1", + "ts-jest": "^29.1.0", + "ts-node": "^10.9.1", + "typescript": "^5.0.4" + }, + "auto-changelog": { + "template": "keepachangelog", + "preset": "typescript-preset-eslint", + "output": "CHANGELOG.md", + "commitUrl": "https://github.com/consumet/consumet.ts/commit/{id}", + "compareUrl": "https://github.com/consumet/consumet.ts/compare/{from}...{to}", + "issueUrl": "https://github.com/consumet/consumet.ts/issues/{id}", + "mergeUrl": "https://github.com/consumet/consumet.ts/pull/{id}" + }, + "directories": { + "doc": "docs", + "example": "examples", + "test": "test", + "lib": "src" + }, + "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e", + "gitHead": "fa3bd2b0eac3d6c48343861e8c91248c459313ff", + "_nodeVersion": "16.20.2", + "_npmVersion": "8.19.4", + "dist": { + "integrity": "sha512-FehyOLruF/dq2AsXaoeWQEPMbPoSKOHHztDIdwpRnt8THFQKtIMY2qT27mLkmPGBnCEdK7si/Am5bkjXeGAA/Q==", + "shasum": "dbfbadf832aaf52e5a9dfb46897087c722200b12", + "tarball": "https://registry.npmjs.org/@consumet/extensions/-/extensions-1.8.8.tgz", + "fileCount": 273, + "unpackedSize": 1406258, + "signatures": [ + { + "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U", + "sig": "MEQCICEkM8a8HewVhictgduxvHEfllmbfgGyk5XEIpLWGaFIAiAOMht8nu8/TRT6kQiX5lKR+ti/iv7iwxXKNmsQIuslwQ==" + } + ] + }, + "_npmUser": "riimuru ", + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages-npm-production", + "tmp": "tmp/extensions_1.8.8_1768944787144_0.717119659806549" + }, + "_hasShrinkwrap": false +} diff --git a/consumet/consumet-extensions-1.0.0.tgz b/consumet/consumet-extensions-1.0.0.tgz new file mode 100644 index 0000000..537fe4e Binary files /dev/null and b/consumet/consumet-extensions-1.0.0.tgz differ diff --git a/consumet/consumet-extensions-1.0.1.tgz b/consumet/consumet-extensions-1.0.1.tgz new file mode 100644 index 0000000..f0f859e Binary files /dev/null and b/consumet/consumet-extensions-1.0.1.tgz differ diff --git a/consumet/consumet-extensions-1.0.10.tgz b/consumet/consumet-extensions-1.0.10.tgz new file mode 100644 index 0000000..537e333 Binary files /dev/null and b/consumet/consumet-extensions-1.0.10.tgz differ diff --git a/consumet/consumet-extensions-1.0.2.tgz b/consumet/consumet-extensions-1.0.2.tgz new file mode 100644 index 0000000..aa61845 Binary files /dev/null and b/consumet/consumet-extensions-1.0.2.tgz differ diff --git a/consumet/consumet-extensions-1.0.3.tgz b/consumet/consumet-extensions-1.0.3.tgz new file mode 100644 index 0000000..e604c79 Binary files /dev/null and b/consumet/consumet-extensions-1.0.3.tgz differ diff --git a/consumet/consumet-extensions-1.0.4.tgz b/consumet/consumet-extensions-1.0.4.tgz new file mode 100644 index 0000000..17b10d8 Binary files /dev/null and b/consumet/consumet-extensions-1.0.4.tgz differ diff --git a/consumet/consumet-extensions-1.0.5.tgz b/consumet/consumet-extensions-1.0.5.tgz new file mode 100644 index 0000000..408479f Binary files /dev/null and b/consumet/consumet-extensions-1.0.5.tgz differ diff --git a/consumet/consumet-extensions-1.0.6.tgz b/consumet/consumet-extensions-1.0.6.tgz new file mode 100644 index 0000000..00112f5 Binary files /dev/null and b/consumet/consumet-extensions-1.0.6.tgz differ diff --git a/consumet/consumet-extensions-1.0.7.tgz b/consumet/consumet-extensions-1.0.7.tgz new file mode 100644 index 0000000..f7aa1f2 Binary files /dev/null and b/consumet/consumet-extensions-1.0.7.tgz differ diff --git a/consumet/consumet-extensions-1.0.8.tgz b/consumet/consumet-extensions-1.0.8.tgz new file mode 100644 index 0000000..b52101a Binary files /dev/null and b/consumet/consumet-extensions-1.0.8.tgz differ diff --git a/consumet/consumet-extensions-1.0.9.tgz b/consumet/consumet-extensions-1.0.9.tgz new file mode 100644 index 0000000..f202771 Binary files /dev/null and b/consumet/consumet-extensions-1.0.9.tgz differ diff --git a/consumet/consumet-extensions-1.1.0.tgz b/consumet/consumet-extensions-1.1.0.tgz new file mode 100644 index 0000000..9295579 Binary files /dev/null and b/consumet/consumet-extensions-1.1.0.tgz differ diff --git a/consumet/consumet-extensions-1.1.1.tgz b/consumet/consumet-extensions-1.1.1.tgz new file mode 100644 index 0000000..7f0e665 Binary files /dev/null and b/consumet/consumet-extensions-1.1.1.tgz differ diff --git a/consumet/consumet-extensions-1.1.2.tgz b/consumet/consumet-extensions-1.1.2.tgz new file mode 100644 index 0000000..5e6bd13 Binary files /dev/null and b/consumet/consumet-extensions-1.1.2.tgz differ diff --git a/consumet/consumet-extensions-1.1.3.tgz b/consumet/consumet-extensions-1.1.3.tgz new file mode 100644 index 0000000..857383a Binary files /dev/null and b/consumet/consumet-extensions-1.1.3.tgz differ diff --git a/consumet/consumet-extensions-1.1.4.tgz b/consumet/consumet-extensions-1.1.4.tgz new file mode 100644 index 0000000..4a8f9a5 Binary files /dev/null and b/consumet/consumet-extensions-1.1.4.tgz differ diff --git a/consumet/consumet-extensions-1.1.5.tgz b/consumet/consumet-extensions-1.1.5.tgz new file mode 100644 index 0000000..cd83451 Binary files /dev/null and b/consumet/consumet-extensions-1.1.5.tgz differ diff --git a/consumet/consumet-extensions-1.1.6.tgz b/consumet/consumet-extensions-1.1.6.tgz new file mode 100644 index 0000000..5370fe3 Binary files /dev/null and b/consumet/consumet-extensions-1.1.6.tgz differ diff --git a/consumet/consumet-extensions-1.1.7.tgz b/consumet/consumet-extensions-1.1.7.tgz new file mode 100644 index 0000000..f6b9cf6 Binary files /dev/null and b/consumet/consumet-extensions-1.1.7.tgz differ diff --git a/consumet/consumet-extensions-1.1.8.tgz b/consumet/consumet-extensions-1.1.8.tgz new file mode 100644 index 0000000..2efeb82 Binary files /dev/null and b/consumet/consumet-extensions-1.1.8.tgz differ diff --git a/consumet/consumet-extensions-1.1.9.tgz b/consumet/consumet-extensions-1.1.9.tgz new file mode 100644 index 0000000..d672d85 Binary files /dev/null and b/consumet/consumet-extensions-1.1.9.tgz differ diff --git a/consumet/consumet-extensions-1.2.0.tgz b/consumet/consumet-extensions-1.2.0.tgz new file mode 100644 index 0000000..bbc5b92 Binary files /dev/null and b/consumet/consumet-extensions-1.2.0.tgz differ diff --git a/consumet/consumet-extensions-1.2.1.tgz b/consumet/consumet-extensions-1.2.1.tgz new file mode 100644 index 0000000..dc578d2 Binary files /dev/null and b/consumet/consumet-extensions-1.2.1.tgz differ diff --git a/consumet/consumet-extensions-1.2.10.tgz b/consumet/consumet-extensions-1.2.10.tgz new file mode 100644 index 0000000..576ec1f Binary files /dev/null and b/consumet/consumet-extensions-1.2.10.tgz differ diff --git a/consumet/consumet-extensions-1.2.11.tgz b/consumet/consumet-extensions-1.2.11.tgz new file mode 100644 index 0000000..517baaf Binary files /dev/null and b/consumet/consumet-extensions-1.2.11.tgz differ diff --git a/consumet/consumet-extensions-1.2.12-rc.tgz b/consumet/consumet-extensions-1.2.12-rc.tgz new file mode 100644 index 0000000..686ef05 Binary files /dev/null and b/consumet/consumet-extensions-1.2.12-rc.tgz differ diff --git a/consumet/consumet-extensions-1.2.12.tgz b/consumet/consumet-extensions-1.2.12.tgz new file mode 100644 index 0000000..64c8193 Binary files /dev/null and b/consumet/consumet-extensions-1.2.12.tgz differ diff --git a/consumet/consumet-extensions-1.2.2.tgz b/consumet/consumet-extensions-1.2.2.tgz new file mode 100644 index 0000000..a7cb08c Binary files /dev/null and b/consumet/consumet-extensions-1.2.2.tgz differ diff --git a/consumet/consumet-extensions-1.2.3.tgz b/consumet/consumet-extensions-1.2.3.tgz new file mode 100644 index 0000000..60548bf Binary files /dev/null and b/consumet/consumet-extensions-1.2.3.tgz differ diff --git a/consumet/consumet-extensions-1.2.4.tgz b/consumet/consumet-extensions-1.2.4.tgz new file mode 100644 index 0000000..bfc1376 Binary files /dev/null and b/consumet/consumet-extensions-1.2.4.tgz differ diff --git a/consumet/consumet-extensions-1.2.5.tgz b/consumet/consumet-extensions-1.2.5.tgz new file mode 100644 index 0000000..881f39e Binary files /dev/null and b/consumet/consumet-extensions-1.2.5.tgz differ diff --git a/consumet/consumet-extensions-1.2.6.tgz b/consumet/consumet-extensions-1.2.6.tgz new file mode 100644 index 0000000..edaa6b7 Binary files /dev/null and b/consumet/consumet-extensions-1.2.6.tgz differ diff --git a/consumet/consumet-extensions-1.2.7.tgz b/consumet/consumet-extensions-1.2.7.tgz new file mode 100644 index 0000000..02af547 Binary files /dev/null and b/consumet/consumet-extensions-1.2.7.tgz differ diff --git a/consumet/consumet-extensions-1.2.8.tgz b/consumet/consumet-extensions-1.2.8.tgz new file mode 100644 index 0000000..441965b Binary files /dev/null and b/consumet/consumet-extensions-1.2.8.tgz differ diff --git a/consumet/consumet-extensions-1.2.9.tgz b/consumet/consumet-extensions-1.2.9.tgz new file mode 100644 index 0000000..23b9635 Binary files /dev/null and b/consumet/consumet-extensions-1.2.9.tgz differ diff --git a/consumet/consumet-extensions-1.3.0.tgz b/consumet/consumet-extensions-1.3.0.tgz new file mode 100644 index 0000000..05ce75f Binary files /dev/null and b/consumet/consumet-extensions-1.3.0.tgz differ diff --git a/consumet/consumet-extensions-1.3.1.tgz b/consumet/consumet-extensions-1.3.1.tgz new file mode 100644 index 0000000..e830caf Binary files /dev/null and b/consumet/consumet-extensions-1.3.1.tgz differ diff --git a/consumet/consumet-extensions-1.3.2.tgz b/consumet/consumet-extensions-1.3.2.tgz new file mode 100644 index 0000000..50d0825 Binary files /dev/null and b/consumet/consumet-extensions-1.3.2.tgz differ diff --git a/consumet/consumet-extensions-1.3.3.tgz b/consumet/consumet-extensions-1.3.3.tgz new file mode 100644 index 0000000..89e3278 Binary files /dev/null and b/consumet/consumet-extensions-1.3.3.tgz differ diff --git a/consumet/consumet-extensions-1.3.4.tgz b/consumet/consumet-extensions-1.3.4.tgz new file mode 100644 index 0000000..21368c8 Binary files /dev/null and b/consumet/consumet-extensions-1.3.4.tgz differ diff --git a/consumet/consumet-extensions-1.3.5.tgz b/consumet/consumet-extensions-1.3.5.tgz new file mode 100644 index 0000000..f305b17 Binary files /dev/null and b/consumet/consumet-extensions-1.3.5.tgz differ diff --git a/consumet/consumet-extensions-1.3.6.tgz b/consumet/consumet-extensions-1.3.6.tgz new file mode 100644 index 0000000..41e81e5 Binary files /dev/null and b/consumet/consumet-extensions-1.3.6.tgz differ diff --git a/consumet/consumet-extensions-1.3.7.tgz b/consumet/consumet-extensions-1.3.7.tgz new file mode 100644 index 0000000..2fe5a40 Binary files /dev/null and b/consumet/consumet-extensions-1.3.7.tgz differ diff --git a/consumet/consumet-extensions-1.4.0.tgz b/consumet/consumet-extensions-1.4.0.tgz new file mode 100644 index 0000000..0f8d9bf Binary files /dev/null and b/consumet/consumet-extensions-1.4.0.tgz differ diff --git a/consumet/consumet-extensions-1.4.1.tgz b/consumet/consumet-extensions-1.4.1.tgz new file mode 100644 index 0000000..ea08a34 Binary files /dev/null and b/consumet/consumet-extensions-1.4.1.tgz differ diff --git a/consumet/consumet-extensions-1.4.10.tgz b/consumet/consumet-extensions-1.4.10.tgz new file mode 100644 index 0000000..4fe93c5 Binary files /dev/null and b/consumet/consumet-extensions-1.4.10.tgz differ diff --git a/consumet/consumet-extensions-1.4.11.tgz b/consumet/consumet-extensions-1.4.11.tgz new file mode 100644 index 0000000..2e4a909 Binary files /dev/null and b/consumet/consumet-extensions-1.4.11.tgz differ diff --git a/consumet/consumet-extensions-1.4.12.tgz b/consumet/consumet-extensions-1.4.12.tgz new file mode 100644 index 0000000..da1dff5 Binary files /dev/null and b/consumet/consumet-extensions-1.4.12.tgz differ diff --git a/consumet/consumet-extensions-1.4.13.tgz b/consumet/consumet-extensions-1.4.13.tgz new file mode 100644 index 0000000..fe31b5b Binary files /dev/null and b/consumet/consumet-extensions-1.4.13.tgz differ diff --git a/consumet/consumet-extensions-1.4.14.tgz b/consumet/consumet-extensions-1.4.14.tgz new file mode 100644 index 0000000..5e662a2 Binary files /dev/null and b/consumet/consumet-extensions-1.4.14.tgz differ diff --git a/consumet/consumet-extensions-1.4.15.tgz b/consumet/consumet-extensions-1.4.15.tgz new file mode 100644 index 0000000..935314d Binary files /dev/null and b/consumet/consumet-extensions-1.4.15.tgz differ diff --git a/consumet/consumet-extensions-1.4.16.tgz b/consumet/consumet-extensions-1.4.16.tgz new file mode 100644 index 0000000..aa3e67a Binary files /dev/null and b/consumet/consumet-extensions-1.4.16.tgz differ diff --git a/consumet/consumet-extensions-1.4.17.tgz b/consumet/consumet-extensions-1.4.17.tgz new file mode 100644 index 0000000..ef01903 Binary files /dev/null and b/consumet/consumet-extensions-1.4.17.tgz differ diff --git a/consumet/consumet-extensions-1.4.18.tgz b/consumet/consumet-extensions-1.4.18.tgz new file mode 100644 index 0000000..2da2419 Binary files /dev/null and b/consumet/consumet-extensions-1.4.18.tgz differ diff --git a/consumet/consumet-extensions-1.4.2.tgz b/consumet/consumet-extensions-1.4.2.tgz new file mode 100644 index 0000000..22e37f8 Binary files /dev/null and b/consumet/consumet-extensions-1.4.2.tgz differ diff --git a/consumet/consumet-extensions-1.4.5.tgz b/consumet/consumet-extensions-1.4.5.tgz new file mode 100644 index 0000000..a8849bc Binary files /dev/null and b/consumet/consumet-extensions-1.4.5.tgz differ diff --git a/consumet/consumet-extensions-1.4.7.tgz b/consumet/consumet-extensions-1.4.7.tgz new file mode 100644 index 0000000..7591485 Binary files /dev/null and b/consumet/consumet-extensions-1.4.7.tgz differ diff --git a/consumet/consumet-extensions-1.4.8.tgz b/consumet/consumet-extensions-1.4.8.tgz new file mode 100644 index 0000000..18cd1dc Binary files /dev/null and b/consumet/consumet-extensions-1.4.8.tgz differ diff --git a/consumet/consumet-extensions-1.4.9.tgz b/consumet/consumet-extensions-1.4.9.tgz new file mode 100644 index 0000000..ccbdd0b Binary files /dev/null and b/consumet/consumet-extensions-1.4.9.tgz differ diff --git a/consumet/consumet-extensions-1.5.0.tgz b/consumet/consumet-extensions-1.5.0.tgz new file mode 100644 index 0000000..0228d55 Binary files /dev/null and b/consumet/consumet-extensions-1.5.0.tgz differ diff --git a/consumet/consumet-extensions-1.5.1.tgz b/consumet/consumet-extensions-1.5.1.tgz new file mode 100644 index 0000000..8d3d11c Binary files /dev/null and b/consumet/consumet-extensions-1.5.1.tgz differ diff --git a/consumet/consumet-extensions-1.5.2.tgz b/consumet/consumet-extensions-1.5.2.tgz new file mode 100644 index 0000000..0f7add3 Binary files /dev/null and b/consumet/consumet-extensions-1.5.2.tgz differ diff --git a/consumet/consumet-extensions-1.5.4.tgz b/consumet/consumet-extensions-1.5.4.tgz new file mode 100644 index 0000000..33ab009 Binary files /dev/null and b/consumet/consumet-extensions-1.5.4.tgz differ diff --git a/consumet/consumet-extensions-1.5.6.tgz b/consumet/consumet-extensions-1.5.6.tgz new file mode 100644 index 0000000..02a3af6 Binary files /dev/null and b/consumet/consumet-extensions-1.5.6.tgz differ diff --git a/consumet/consumet-extensions-1.6.0.tgz b/consumet/consumet-extensions-1.6.0.tgz new file mode 100644 index 0000000..eedf25c Binary files /dev/null and b/consumet/consumet-extensions-1.6.0.tgz differ diff --git a/consumet/consumet-extensions-1.7.0.tgz b/consumet/consumet-extensions-1.7.0.tgz new file mode 100644 index 0000000..8635fcd Binary files /dev/null and b/consumet/consumet-extensions-1.7.0.tgz differ diff --git a/consumet/consumet-extensions-1.8.0.tgz b/consumet/consumet-extensions-1.8.0.tgz new file mode 100644 index 0000000..88d52d5 Binary files /dev/null and b/consumet/consumet-extensions-1.8.0.tgz differ diff --git a/consumet/consumet-extensions-1.8.1.tgz b/consumet/consumet-extensions-1.8.1.tgz new file mode 100644 index 0000000..392fa42 Binary files /dev/null and b/consumet/consumet-extensions-1.8.1.tgz differ diff --git a/consumet/consumet-extensions-1.8.2.tgz b/consumet/consumet-extensions-1.8.2.tgz new file mode 100644 index 0000000..2f0e2dd Binary files /dev/null and b/consumet/consumet-extensions-1.8.2.tgz differ diff --git a/consumet/consumet-extensions-1.8.3.tgz b/consumet/consumet-extensions-1.8.3.tgz new file mode 100644 index 0000000..ea229d9 Binary files /dev/null and b/consumet/consumet-extensions-1.8.3.tgz differ diff --git a/consumet/consumet-extensions-1.8.4.tgz b/consumet/consumet-extensions-1.8.4.tgz new file mode 100644 index 0000000..9a9488b Binary files /dev/null and b/consumet/consumet-extensions-1.8.4.tgz differ diff --git a/consumet/consumet-extensions-1.8.5.tgz b/consumet/consumet-extensions-1.8.5.tgz new file mode 100644 index 0000000..1076b0d Binary files /dev/null and b/consumet/consumet-extensions-1.8.5.tgz differ diff --git a/consumet/consumet-extensions-1.8.6.tgz b/consumet/consumet-extensions-1.8.6.tgz new file mode 100644 index 0000000..dc7d6e4 Binary files /dev/null and b/consumet/consumet-extensions-1.8.6.tgz differ diff --git a/consumet/consumet-extensions-1.8.7.tgz b/consumet/consumet-extensions-1.8.7.tgz new file mode 100644 index 0000000..1650f6d Binary files /dev/null and b/consumet/consumet-extensions-1.8.7.tgz differ diff --git a/consumet/consumet-extensions-1.8.8.tgz b/consumet/consumet-extensions-1.8.8.tgz new file mode 100644 index 0000000..67ca43b Binary files /dev/null and b/consumet/consumet-extensions-1.8.8.tgz differ diff --git a/consumetlogo.png b/consumetlogo.png new file mode 100644 index 0000000..118be0d Binary files /dev/null and b/consumetlogo.png differ diff --git a/dl.sh b/dl.sh new file mode 100644 index 0000000..f0cbb9b --- /dev/null +++ b/dl.sh @@ -0,0 +1,2 @@ +# npm view aniwatch versions --json | sed 's/[][",]//g' | xargs -I {} npm pack aniwatch@{} +# npm view @consumet/extensions versions --json | sed 's/[][",]//g' | xargs -I {} npm pack @consumet/extensions@{} \ No newline at end of file diff --git a/fuck-crunchyroll.jpg b/fuck-crunchyroll.jpg new file mode 100644 index 0000000..f5f47c6 Binary files /dev/null and b/fuck-crunchyroll.jpg differ diff --git a/image.png b/image.png new file mode 100644 index 0000000..247179a Binary files /dev/null and b/image.png differ