Giter Club home page Giter Club logo

api.consumet.org's Introduction

Consumet

Consumet API

Consumet provides an APIs for accessing information and links for various entertainments like movies, books, anime, etc.

Discord Discord Discord GitHub

Consumet scrapes data from various websites and provides APIs for accessing the data to satisfy your needs.

Table of Contents

Installation

Locally

installation is simple.

Run the following command to clone the repository, and install the dependencies.

$ git clone https://github.com/consumet/api.consumet.org.git
$ cd api.consumet.org
$ npm install #or yarn install

start the server!

$ npm start #or yarn start

Docker

Docker image is available at Docker Hub.

run the following command to pull and run the docker image.

$ docker pull riimuru/consumet-api
$ docker run -p 3000:3000 riimuru/consumet-api

This will start the server on port 3000. You can access the server at http://localhost:3000/, And can change the port by changing the -p option to -p <port>:3000.

Be sure to set NODE_ENV to PROD in your environment variables when running your own instance. Check out the .env.example file for more information.

You can add -d flag to run the server in detached mode.

Heroku

Host your own instance of Consumet API on Heroku using the button below.

Deploy on Heroku

Vercel

Host your own instance of Consumet API on Vercel using the button below.

Deploy with Vercel

Render

Host your own instance of Consumet API on Render using the button below.

Deploy to Render

Railway

Host your own instance of Consumet API on Railway using the button below.

Deploy on Railway

Documentation

Please refer to the documentation. Join our Discord server if you need any additional help or have any questions, comments, or suggestions.

Development

Pull requests and stars are always welcome, for bugs and features create a new issue. If you're brave to make make a commit to the project see CONTRIBUTING.md.

Showcases

Showcases are welcome! If you have a project that uses Consumet API, please let us know by making a new discussion here or by joining our Discord server. We will add your project to our showcases page.

Provider Request

Make a new issue with the name of the provider on the title, as well as a link to the provider in the body paragraph.

Support

You can contact the maintainers of consumet.ts via email, or join the discord server (Recommended).

Contributors ✨

Thanks to the following people for keeping this project alive and thriving.

Related repositories

api.consumet.org's People

Contributors

2004durgesh avatar 2uandm avatar aidanjuma avatar babyyoda777 avatar dependabot[bot] avatar devanabinaya avatar eltik avatar enimax-anime avatar errorerrorerror avatar hase0278 avatar illusiontba avatar inumakieu avatar jldev0 avatar kuroxi avatar layendan avatar parnexcodes avatar prince-ao avatar renovate[bot] avatar riimuru avatar shubham7101 avatar tdanks2000 avatar toasty360 avatar wearrrrr avatar zues-adi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

api.consumet.org's Issues

video player error

Describe the bug

All the provider except zoro are not working with flutter

Steps to reproduce

These are parts of code of a project

  VideoPlayerNotifier({required this.episode, required this.animeInfoService})
      : super(const VideoPlayerState.loading("")) {
    init();
  }

  final Episode episode;
  final AnimeInfoData animeInfoService;

  BetterPlayerController? betterPlayerController;

  void init() async {
    state =
        const VideoPlayerState.loading("fetching episode urls from server...");
    try {
      log("init");
      if (episode.id == null) {
        state = const VideoPlayerState.error({
          "error": "Something went wrong, Please try with different provider"
        });
      }
      EpisodeUrl? episodeUrls = await getEpisodeUrl();
      if (episodeUrls != null) {
        initializePlayer(episodeUrls);
      }
    } catch (e, st) {
      log("$e");
      log("$st");
      state = VideoPlayerState.error(e);
    }
  }

  Future<EpisodeUrl?> getEpisodeUrl({bool cancelToken = false}) async {
    EpisodeUrl? episodeUrl;
    if (cancelToken) {
      final cancelToken = CancelToken();
      animeInfoService.getEpisodeUrl(
          episodeId: episode.id!, cancelToken: cancelToken);
    } else {
      episodeUrl = await animeInfoService.getEpisodeUrl(episodeId: episode.id!);
    }
    return episodeUrl;
  }

  Future<void> initializePlayer(EpisodeUrl episodeSource) async {
    state = const VideoPlayerState.loading("initialing player");
    List<Source>? sources = episodeSource.sources;
    var subtitles = episodeSource.subtitles;
    Map<String, String>? headers = {
      if (episodeSource.headers != null) ...episodeSource.headers!,
      "user-agent":
          "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0"
    };

    /// if sources is empty return error
    if (sources == null) {
      state = const VideoPlayerState.error({"error": "No source found"});
      return;
    }

    String? firstSource() {
      String? url;
      try {
        var isAuto = sources
            .firstWhere(
                (element) =>
                    element.url != null && element.quality == "auto" ||
                    element.quality == "default",
                orElse: () =>
                    sources.firstWhere((element) => element.url != null))
            .url;
        if (isAuto != null) {
          url = isAuto.toString();
        } else {
          url = sources
              .firstWhere((element) => element.url != null)
              .url
              .toString();
        }
      } catch (e) {
        state = const VideoPlayerState.error({"error": "No source found"});
      }
      return url;
    }

    /// if [sources] is not null
    ///
    try {
      var dataSource = BetterPlayerDataSource(
          BetterPlayerDataSourceType.network, firstSource()!,
          resolutions: {
            for (var item in sources) "${item.quality}": "${item.url}"
          },
          subtitles: subtitles
              ?.map((e) => BetterPlayerSubtitlesSource(
                    selectedByDefault: e.lang == "English",
                    name: e.lang,
                    type: BetterPlayerSubtitlesSourceType.network,
                    urls: [e.url],
                  ))
              .toList(),
          videoFormat:
              sources.firstWhere((element) => element.isM3U8 != null).isM3U8 ==
                      true
                  ? BetterPlayerVideoFormat.hls
                  : BetterPlayerVideoFormat.other,
          headers: headers,
          bufferingConfiguration: const BetterPlayerBufferingConfiguration(
            minBufferMs: 50000,
            maxBufferMs: 13107200,
            bufferForPlaybackMs: 2500,
            bufferForPlaybackAfterRebufferMs: 5000,
          ),
          cacheConfiguration: const BetterPlayerCacheConfiguration(
            useCache: true,
            preCacheSize: 400000,
            maxCacheSize: 400000,
            maxCacheFileSize: 400000,
          ),

          /// notification configuration
          ///
          notificationConfiguration: BetterPlayerNotificationConfiguration(
            showNotification: true,
            title: "Episode ${episode.number} ${episode.title}",
            author: episode.description,
            imageUrl: episode.image,
            activityName: "MainActivity",
          ));

      betterPlayerController =
          BetterPlayerController(betterPlayerConfiguration);

      await betterPlayerController?.setupDataSource(dataSource);

      state = VideoPlayerState.data(betterPlayerController!);
    } catch (e, st) {
      log("$e");
      log("$st");
      state = VideoPlayerState.error({
        "Something went wrong!\n Please try with different provider":
            e.toString()
      });
    }
  }

  @override
  void dispose() {
    getEpisodeUrl(cancelToken: true);
    betterPlayerController?.dispose(forceDispose: true);
    betterPlayerController?.clearCache();
    super.dispose();
  }
}

const BetterPlayerConfiguration betterPlayerConfiguration =
    BetterPlayerConfiguration(
  autoDetectFullscreenAspectRatio: true,
  fit: BoxFit.fitHeight,
  aspectRatio: 16 / 9,
  handleLifecycle: false,
  autoDetectFullscreenDeviceOrientation: true,
  autoPlay: false,
  allowedScreenSleep: false,
  autoDispose: true,
  fullScreenAspectRatio: 16 / 9,
  fullScreenByDefault: true,
  placeholder: SizedBox(),
  deviceOrientationsAfterFullScreen: [DeviceOrientation.portraitUp],
  deviceOrientationsOnFullScreen: [
    DeviceOrientation.landscapeRight,
    DeviceOrientation.landscapeLeft
  ],
  controlsConfiguration: BetterPlayerControlsConfiguration(
    overflowMenuIcon: Icons.settings_outlined,
    playIcon: Icons.play_arrow_outlined,
    pauseIcon: Icons.pause,
    muteIcon: Icons.volume_mute_outlined,
    unMuteIcon: Icons.volume_up_outlined,
    playbackSpeedIcon: Icons.speed_outlined,
    subtitlesIcon: Icons.subtitles_outlined,
    audioTracksIcon: Icons.audiotrack_outlined,
    playerTheme: BetterPlayerTheme.cupertino,
  ),
);
class AnimeInfoData implements AnimeInfoRepository {
  final HttpService dio;
  final String provider;
  AnimeInfoData(this.dio, this.provider);

  @override
  Future<AnimeInfoModel?> getAnimeInfo(
      {required String id, CancelToken? cancelToken}) async {
    final response = await dio.get("${Configs.infoUrl}/$id",
        queryParameters: {"provider": provider}, cancelToken: cancelToken);
    return AnimeInfoModel.fromJson(response);
  }

  @override
  Future<EpisodeUrl?> getEpisodeUrl(
      {required String episodeId, CancelToken? cancelToken}) async {
    final response = await dio.get("${Configs.watchUrl}/$episodeId",
        queryParameters: {"provider": provider}, cancelToken: cancelToken);
    return EpisodeUrl.fromJson(response);
  }
}

Expected behavior

This code should play videos from most of the providers as their implementation are same.

Actual behavior

The video player is playing videos with zoro provider but any other provider are throwing error:

PlatformException(VideoError, Video player had error com.google.android.exoplayer2.ExoPlaybackException: Source error, , null)

Additional context

This is full project

Bug in zoro provider

Describe the bug

When I try to fetch any specific anime info from the provider - zoro, then the "subOrDub" field remains the same for all, it only shows "sub" value neither dub or both

Steps to reproduce

  1. fetch animes from api.consumet.org/anime/zoro...
  2. select any specific anime from the provider
  3. the value of "subOrDub" remains same for all

Expected behavior

The "subOrDub" field should display if the specific anime is available in subbed or dubbed version

Actual behavior

The field displays only "sub" value for every anime and serves it's corresponding subbed episode ID's

Additional context

No response

Uncensord anilist info

Describe the bug

This is not a bug but a feature

Steps to reproduce

  1. use https://api.consumet.org/meta/anilist/info/103139?provider=zoro
  2. look at episode ID.

Expected behavior

In the Episode list only the ID's for censored episodes is there.

Actual behavior

both use the same anilist ID meaning it is expected that the uncensored id is also there. perhaps a field called uncenID: or something that is null if there is non.

Additional context

It would be nice if the uncensored ID's are also in the list because the only way to get it now is to use the sites own search and go from there but this is not extremely modular.

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Location: renovate.json
Error type: The renovate configuration file contains some invalid settings
Message: Invalid packageRules[0].schedule: 'Invalid schedule: "0 */1 * * *" has cron syntax, but doesn't have * as minutes'

HLS Cors error

Describe the bug

I am using the streaming link that is provided by the api in the format of .m3u8 on my frontend using hls.js but it gives cors error and I am unable to play the video is there any way to solve or bypass the cors issue

Steps to reproduce

  1. Fetch the steaming link of which anime you want to watch
  2. Using Plyr-React with hls.js to show the video

Expected behavior

The video should play

Actual behavior

Showing cors error

Additional context

No response

[Error] Get myanimelist info.

Describe the bug

While trying to fetch an anime info using its ID, it gave error.

Steps to reproduce

Gintama: The Movie: The Final Chapter: Be Forever Yorozuya

Violet Evergarden the Movie

Kizumonogatari Part 3: Cold-Blooded

Just request for any of these anime.

Expected behavior

It should give all the anime details including.

Actual behavior

This is the error I am getting : {"message":"Cannot read properties of undefined (reading 'trim')"}

Additional context

No response

Stable releases of the api

Describe the bug

The current installation way of the api, which involves cloning the git repo, brings along issues.

Steps to reproduce

As described in the readme, the "local" way to install the api is to clone the git repo and then use npm. Cloning the repo though gets all all the issues of the development to the user (more in the "actual behavior" part), which is not ideal.

Expected behavior

After following all the instructions to the letter, the api server should launch and all its providers should work with no issues.

Actual behavior

However, this is not what happens, at least on my end. Up until the commit of May 4th (= the first time I tried that way of installation), the server launched as usual and all other issues were related to the providers themselves.
Four days and two commits later and the server can not launch at all!

And this made me open this request: please post releases of the api on which the server, i.e.the core component of all this, is in working condition. I know that the providers change constantly and, accorting to the status page, some of them do not work from time to time, but having the server work properly is more important.

Additional context

The reason behind all this is that I got tired of searching for a working instance, so I decided to host my own eventually. The main one leads to a 1020 error, another one I used in the past leads to a 520 error and a third one no longer exists!
So, as a test, I set up a vm with arch (minimal cli installation + git + npm) and what I mentioned above followed.

FlixHq: 429 Too Many Requests

Describe the bug

After few requests, FlixHq starts returning status code "429 Too Many Requests"

Steps to reproduce

$ curl -I https://api.consumet.org/movies/flixhq/a
HTTP/2 200
$ curl -I https://api.consumet.org/movies/flixhq/b
HTTP/2 200
$ curl -I https://api.consumet.org/movies/flixhq/c
HTTP/2 429

This happens not only for search requests, but also for info and watch.

Expected behavior

It shouldn't return status code 429 after few requests.

Actual behavior

It returns status code 429 after few requests.

Additional context

While it is reasonable to limit how many requests can be sent in a certain period, I think this is far too few. I don't know for sure if the limitation is set in this API or it's something set by the FlixHq. I can send requests directly to FlixHq (flixhq.to) repeatedly without getting the error.

Zoro domain update

Describe the bug

Recently zoro got rebranded to aniwatch, and so it's domain change. this change cause error to the current zoro provider

Steps to reproduce

one of the error is in the streaming link endpoint. for example https://api.consumet.org/anime/zoro/watch?episodeId=spy-x-family-17977$episode$89506$both&server=vidcloud

Expected behavior

it should return with this schema

{
  "headers": {
      "Referer": "string",
      "watchsb": "string", // or null, since only provided with server being equal to "streamsb".
      "User-Agent": "string" // or null
  },
  "sources": [
      {
      "url": "string",
      "quality": "string",
      "isM3U8": true
      }
  ]
}

Actual behavior

but currently it return

"message": {}

Additional context

i think this should be an easy fix, just by changing the domain. since the content in the new domain is still the same with the old one

Zoro watch api returns 404 albeit correct episodeId

Describe the bug

zoro watch api returns {"message":{}} although I pass in the correct episode Id

Steps to reproduce

I get this "bleach-the-movie-fade-to-black-1492$episode$58326" id from zoro info api and pass in the link "https://consumet-api.herokuapp.com/anime/zoro/watch?episodeId=bleach-the-movie-fade-to-black-1492$episode$58326"

it returns 404

Expected behavior

this is the link:
https://consumet-api.herokuapp.com/anime/zoro/watch?episodeId=bleach-the-movie-fade-to-black-1492$episode$58326

it should return data

Actual behavior

https://consumet-api.herokuapp.com/anime/zoro/watch?episodeId=bleach-the-movie-fade-to-black-1492$episode$58326
returns {"message":{}} instead of data

Additional context

No response

TMDB: Getting continuous error on getting links

Describe the bug

No response

Steps to reproduce

Request the link for a movie or episode using tmdb meta

Expected behavior

This should provide links for the id

Actual behavior

{"level":40,"time":1690022745923,"pid":8,"hostname":"xxx.xxx.xxx.xxx","reqId":"req-1g","err":{"type":"FastifyError","message":"Reply was already sent.","stack":"FastifyError: Reply was already sent.\n at Reply.send (/var/task/node_modules/fastify/lib/reply.js:127:26)\n at /vercel/path0/src/routes/meta/tmdb.ts:55:27\n at Generator.next ()\n at fulfilled (/var/task/src/routes/meta/tmdb.js:5:58)\n at processTicksAndRejections (node:internal/process/task_queues:95:5)","code":"FST_ERR_REP_ALREADY_SENT","name":"FastifyError","statusCode":500},"msg":"Reply already sent"}

Getting following error in logs

Additional context

No response

[Libgen] 403 errors for both query urls

Describe the bug

As mentioned in the title, libgen returns 403 errors for both query urls.

Steps to reproduce

For simplicity reasons, instead of some generic word that would return tens or even hundreds or results, e.g. "greek", the isbn of a specific book will be used as a term, thus the api would return only one result.

  1. Search for anything with the primary search url
$ curl -s "https://api.consumet.org/books/s?bookTitle=9781501134630&page=1" 
{"message":{"message":"Request failed with status code 403","name":"AxiosError","config":{"transitional":{"silentJSONParsing":true,"forcedJSONParsing":true,"clarifyTimeoutError":false},"transformRequest":[null],"transformResponse":[null],"timeout":0,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN","maxContentLength":-1,"maxBodyLength":-1,"env":{},"headers":{"Accept":"application/json, text/plain, */*","User-Agent":"axios/0.27.2"},"method":"get","url":"http://libgen.rs/search.php?req=9781501134630&view=simple&res=25&sort=def&sortmode=ASC&page=1"},"code":"ERR_BAD_REQUEST","status":403},"error":"internal_error"}

or with the secondary one

$ curl -s "https://api.consumet.org/books/libgen/s?bookTitle=9781501134630&page=1" 
{"statusCode":400,"code":"ERR_BAD_REQUEST","error":"Bad Request","message":"Request failed with status code 403"
  1. Notice that in both cases the api fails with a 403 error.

Expected behavior

Normally, the api should return results. e.g. for the forementioned url the book is "Midnight in Chernobyl".

Actual behavior

However, it fails with a 403 error as seen above.

Additional context

The api was working properly yesterday morning (I live at gmt+2) when I last run my mini app that uses it to display info about books. I checked it again last night and it had the forementioned issue. I checked it again earlier today, like 4-5 hours ago and it was working again. And I checked it just now and it is broken again.

This app is my "homework" for a lesson that I should present to the "classroom" yesterday morning, but my presentation was postponed for Monday's morning. I hope it is fixed by then :)

axios rate limit

Describe the bug

The axios rate limit prevents app to fetch data from zoro

Steps to reproduce

https://consumet-api.herokuapp.com/anime/zoro/watch?episodeId=demon-slayer-entertainment-district-arc-17483$episode$84969

Expected behavior

{data: [...]}

Actual behavior

{"message":{"message":"Request failed with status code 429","name":"AxiosError","config":{"transitional":{"silentJSONParsing":true,"forcedJSONParsing":true,"clarifyTimeoutError":false},"transformRequest":[null],"transformResponse":[null],"timeout":0,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN","maxContentLength":-1,"maxBodyLength":-1,"env":{},"headers":{"Accept":"application/json, text/plain, /","User-Agent":"axios/0.27.2"},"method":"get","url":"https://rapidclown.riimuru.workers.dev/rapidclown"},"code":"ERR_BAD_REQUEST","status":429}}

Additional context

This only happens for zoro, not other providers

checking https://rapidclown.riimuru.workers.dev/rapidclown shows

image

[Anilist] Anime Info no result on some anime IDs

Describe the bug

Returns nothings but anilist has info about it.

Steps to reproduce

  1. I found this anime
    https://api.consumet.org/meta/anilist/advanced-search?perPage=50&query=yahari%20ore%20no%20seishun
  2. Use Anime Info id=14813
    https://api.consumet.org/meta/anilist/info/14813
  3. It returns
    {"message":{}}

Expected behavior

I expect it to return json string along with anime title, image, cover, release date, episodes, characters, and a lot more info.
The API seems doesnt have info about it but anilist has it.
https://anilist.co/anime/14813/Yahari-Ore-no-Seishun-Love-Come-wa-Machigatteiru/

Actual behavior

Returns
{"message":{}}
Instead of something like this
{"id":"20","title":{"romaji":"NARUTO","english":"Naruto","native":"NARUTO -ナルト-"},"malId":20,"synonyms":["נארוטו","ناروتو","火影忍者","นารูโตะ นินจาจอมคาถา"],"isLicensed":true,"isAdult":false,"countryOfOrigin":"JP","image":"https://s4.anilist.co/file/anilistcdn/media/anime/cover/large/bx20-YJvLbgJQPCoI.jpg","popularity":429649,"color":"#e47850","cover":"https://s4.anilist.co/file/anilistcdn/media/anime/banner/20-HHxhPj5JD13a.jpg","description":"Naruto Uzumaki, a hyperactive and knuckle-headed ninja, lives in Konohagakure, the Hidden Leaf village. Moments prior to his birth, a huge demon known as the Kyuubi, the Nine-tailed Fox, attacked Konohagakure and wreaked havoc. In order to put an end to the Kyuubi's rampage, the leader of the village, the 4th Hokage, sacrificed his life and sealed the monstrous beast inside the newborn Naruto. <br><br>\nShunned because of the presence of the Kyuubi inside him, Naruto struggles to find his place in the village. He strives to become the Hokage of Konohagakure, and he meets many friends and foes along the way. <br><br>\n(Source: MAL Rewrite)","status":"Completed","releaseDate":2002,"startDate":{"year":2002,"month":10,"day":3},................................ more info"

Additional context

No response

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • chore(deps): lock file maintenance

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

dockerfile
Dockerfile
  • node 20
Dockerfile.alpine
  • node 20.8-alpine
Dockerfile.distroless
  • node 20
  • gcr.io/distroless/nodejs 18
github-actions
.github/workflows/codeql-analysis.yml
  • actions/checkout v3
  • github/codeql-action v3
  • github/codeql-action v3
  • github/codeql-action v3
.github/workflows/docker-build.yml
  • docker/setup-qemu-action v2
  • docker/setup-buildx-action v2
  • docker/login-action v2
  • docker/build-push-action v4
.github/workflows/nodejs-ci.yml
  • actions/checkout v3
  • actions/setup-node v4.0.2
npm
package.json
  • @fastify/cors ^8.2.0
  • @types/fastify-cors ^2.1.0
  • @types/node ^18.11.17
  • @types/ws ^8.5.3
  • axios ^1.0.0
  • chalk 4.1.2
  • cheerio 1.0.0-rc.12
  • dotenv ^16.0.3
  • fastify ^4.10.2
  • fastify-cors ^6.1.0
  • ioredis ^5.2.4
  • reconnecting-websocket ^4.4.0
  • ts-node ^10.9.1
  • typescript 5.3.3
  • ws ^8.8.1
  • nodemon 3.0.1
  • prettier ^3.0.0
  • node >=12.5.0
  • yarn >=1.17.3
travis
.travis.yml
  • node 12.22.12
  • node 13
  • node 14
  • node 15
  • node 16
  • node 17

  • Check this box to trigger a request for Renovate to run again on this repository

Feature request: Fallback via passing a list of providers

Current:

Only one provider can be passed as an optional request parameter.

Suggestion:

Supporting an ordered list of providers.

This would open the door to implementing a fallback feature which would make the api more robust in the case of unreliable providers. Implementing it into the API directly would reduce requests to consumet itself, and simplify usage for developers.

Getting CORS blocked and when hosting my own instance i can't get some episodes.

Describe the bug

CORS blocking my access to the m3u8 files and when hosting my own server i don't even get the json response of some episodes back

Steps to reproduce

  1. fetching the m3u8 episode links using consumet api and my own instance of the api
  2. getting the url of the file and playing it through my player
  3. on the consumet api the CORS is blocking me from accessing the m3u8 file and in my own instance gets an empty response when fetching

Expected behavior

Getting a response back or having access to the files

Actual behavior

getting no response and getting blocked

Additional context

No response

Not loading

Describe the bug

api.consumet.org shows 503, or keeps loading.

Steps to reproduce

Just load the URL.

Expected behavior

It gives a response

Actual behavior

It keeps on loading, or shows a 503 error

Additional context

No response

Crunchyroll mediaType error

Describe the bug

When trying to get info for a movie it doesn't work with either media types (series and movie)

Steps to reproduce

Try getting info for a movie (in this case Your Name) with either one of the media types
Used link: https://api.consumet.org/anime/crunchyroll/info?id=G9VHN9PK3&mediaType=movie

Expected behavior

Info gets returned

Actual behavior

Either Error 500 or empty message

When using series

{
  "message": {
    "message": "Request failed with status code 500",
    "name": "AxiosError",
    "config": {
      "transitional": {
        "silentJSONParsing": true,
        "forcedJSONParsing": true,
        "clarifyTimeoutError": false
      },
      "transformRequest": [
        null
      ],
      "transformResponse": [
        null
      ],
      "timeout": 0,
      "xsrfCookieName": "XSRF-TOKEN",
      "xsrfHeaderName": "X-XSRF-TOKEN",
      "maxContentLength": -1,
      "maxBodyLength": -1,
      "env": {},
      "headers": {
        "Accept": "application/json, text/plain, */*",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36",
        "Authorization": "Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkFxbUJwdVpTZTlNUnlBWVo0YU5hUWciLCJ0eXAiOiJKV1QifQ.eyJhbm9ueW1vdXNfaWQiOiIiLCJiZW5lZml0cyI6WyJjYXRhbG9nIiwiY29uY3VycmVudF9zdHJlYW1zLjQiLCJjcl9leHBvX2ZpcnN0X2FjY2VzcyIsImNyX2Zhbl9wYWNrIiwiY3JfcHJlbWl1bSIsImNyX3N0b3JlLjE1X29mZl8xMDAiLCJtYW5nYV9saWJyYXJ5Iiwibm9fYWRzIiwib2ZmbGluZV92aWV3aW5nIiwic2ltdWxjYXN0Il0sImNsaWVudF9pZCI6ImNyX2FuZHJvaWQiLCJjbGllbnRfdGFnIjoiMy44LjAiLCJjb3VudHJ5IjoiVVMiLCJldHBfdXNlcl9pZCI6IjY2MDk3ZTE0LTZhYzYtNWQ5Yy04NWFhLTMzNjZjY2NiZTAxOSIsImV4cCI6MTY3NDc2NDU5NiwianRpIjoiZjc2NzRhMDYtNWQ3Mi00ZjM5LThiNmEtNzkxMGFkN2FiZTNmIiwibWF0dXJpdHkiOiJNMyIsIm9hdXRoX3Njb3BlcyI6ImFjY291bnQgY29udGVudCBvZmZsaW5lX2FjY2VzcyByZXZpZXdzIHRhbGtib3giLCJydF9pZCI6ImNmOWUwMjA0MXEzdHI2Y3Uzb2JnIiwic2NvcGVzIjp7ImNyIjp7ImFjY19pZCI6IjY2MDk3ZTE0LTZhYzYtNWQ5Yy04NWFhLTMzNjZjY2NiZTAxOSIsImV4dF9pZCI6IjEwOTQxNTg2NDIifX0sInN0YXR1cyI6IkFDVElWRSIsInRudCI6ImNyIn0.iFziLSSCYZiz3b_pcRGl5ZtQE5HYh283sElvVDBWO-C-RyYTZ-4ahmZzemnc8DN_tOT6GLD5pukU_m0wejF4Y38J0momFQiCONGE3PAttffqhUyWzt34Z3KAf9nJNY2PKBIbbaucIikdJyXX1tm9Vn6ZIbv5C-IEiDMl0rlZPWIwmaEPIbzmJIVjZvrvyUF_knZHULVyOfKLGXmZeMwr8wnKmL5_odRlvt073Ct2GjcZglgwtY7snAOMmc1Uh93x60TW8Snt1kFGvFExON4YIES2nzhtc1pWQLIh884RW8kauS-Q7VpmJDMv7tSmW4-aLPWLqL8HcJRxZgBxoRjr3Q"
      },
      "method": "get",
      "url": "https://cronchy.consumet.stream/info/G9VHN9PK3?type=series&fetchAllSeasons=false"
    },
    "code": "ERR_BAD_RESPONSE",
    "status": 500
  }
}

When using movie

{"message":{}}

Additional context

I got the media types from here

Zoro "/watch" endpoint broken.

Describe the bug

Zoro isn't providing video data, while fetching from the link given in docs, "https://api.consumet.org/anime/zoro/watch?episodeId=spy-x-family-17977$episode$89506$dub"

Steps to reproduce

Just, try accessing any episode from "/watch" endpoint.
E.g.
Classroom of the Elite

Expected behavior

This should provide the :

  • Episode HLS manifest.
  • Subtitles.
  • Preview Thumbnails.

Actual behavior

The response given is, {"message":{}} with status code 404.

Additional context

I just made a direct anime player for Iframe embeds based on the API and in just an hour this problem occured.

The player works with using episode Id : https://speedynet.eu.org/apps/anime/zoro?id={episodeId}

Something went wrong. Please try again later.

Describe the bug

It gives an error "Something went wrong. Please try again later.", any idea how to fix it?

Steps to reproduce

Request: http://127.0.0.1:3000/movies/flixhq/watch?episodeId=7230&mediaId=movie/watch-project-xtraction-7230

Expected behavior

{
"headers": {
"Referer": "string"
},
"sources": [
{
"url": "string",
"quality": "string",
"isM3U8": true
}
],
"subtitles": [
{
"url": "string",
"lang": "string"
}
]
}

Actual behavior

{"message":"Something went wrong. Please try again later."}

Additional context

??

Image Proxy 400 error

Describe the bug

https://api.consumet.org/utils/image-proxy?url=image_url&referer=image_referer_url doesn't work.

Steps to reproduce

  1. await fetch("https://api.consumet.org/utils/image-proxy?url=https://zjcdn.mangahere.org/store/manga/32140/074.0/compressed/lspy_x_family_074_001.jpg, { "headers": {"Referer":"http://www.mangahere.cc/manga/spy_x_family/c074/1.html"}

Expected behavior

200 ok

Actual behavior

400 error

Additional context

I tried await fetch("https://api.consumet.org/utils/image-proxy?url=https://zjcdn.mangahere.org/store/manga/32140/074.0/compressed/lspy_x_family_074_001.jpg&headers=http://www.mangahere.cc/manga/spy_x_family/c074/1.html", { "headers": {"Referer":"http://www.mangahere.cc/manga/spy_x_family/c074/1.html"}
which gives me a 500 any help is appreciated its probably some dumb mistake.

Some anime data exactly array of episode return empty array example ['black clover', 'Koe no Katachi']

Describe the bug

the return empty array of episode in some anime and movies when navigating to anilist/meta/info /:id

Steps to reproduce

1 : we navigate to https://api.consumet.org/meta/anilist/info/21519 [anime movie is kimi-no-na-wa]
2: we get the data object down we can see the episode array empty []
3: we navigate to hhttps://api.consumet.org/anime/gogoanime/watch/kimi-no-na-wa-episode-1
4: we got the streamming links
so the question is why we got some episodes links but others not ?

Expected behavior

to get : the episode array full of episode id and the other field

Actual behavior

we got empty array

Additional context

No response

rabbitstream key not working

Describe the bug

the key in rapidclown rabbitstream branch isn't working and the action of the update isn't lanching at all

Steps to reproduce

test the rabbitstream key

Expected behavior

key working

Actual behavior

key not working

Additional context

No response

Animepahe /watch endpoint is broken

Describe the bug

Error code 503

Steps to reproduce

Try querying /watch/{episodeId}

Expected behavior

JSON Response object

Actual behavior

503 internal server error

Additional context

No response

Gogoanime Episode Link Reorder Request

Response Enhancement

Hi there,
This is just a request to provide the "default" quality hls stream url first in the sources array from the API response.

{
    "headers": {
        "Referer": "https://playgo1.cc/embedplus?id=MTkyNjAy&token=WOsXz6plgqICZIzkwVNOaA&expires=1675922589"
    },
    "sources": [{
        "url": "https://wwwx13.gofcdn.com/videos/hls/WJfteL0w4ByDKG6O8QZ88Q/1675929790/192602/35048ebd339056b22336edd5f216b659/ep.1.1663759957.360.m3u8",
        "isM3U8": true,
        "quality": "360p"
    }, {
        "url": "https://wwwx13.gofcdn.com/videos/hls/WJfteL0w4ByDKG6O8QZ88Q/1675929790/192602/35048ebd339056b22336edd5f216b659/ep.1.1663759957.480.m3u8",
        "isM3U8": true,
        "quality": "480p"
    }, {
        "url": "https://wwwx13.gofcdn.com/videos/hls/WJfteL0w4ByDKG6O8QZ88Q/1675929790/192602/35048ebd339056b22336edd5f216b659/ep.1.1663759957.720.m3u8",
        "isM3U8": true,
        "quality": "720p"
    }, {
        "url": "https://wwwx13.gofcdn.com/videos/hls/WJfteL0w4ByDKG6O8QZ88Q/1675929790/192602/35048ebd339056b22336edd5f216b659/ep.1.1663759957.1080.m3u8",
        "isM3U8": true,
        "quality": "1080p"
    }, {
        "url": "https://wwwx13.gofcdn.com/videos/hls/WJfteL0w4ByDKG6O8QZ88Q/1675929790/192602/35048ebd339056b22336edd5f216b659/ep.1.1663759957.m3u8",
        "isM3U8": true,
        "quality": "default"
    }, {
        "url": "https://wwwx13.gofcdn.com/videos/hls/WJfteL0w4ByDKG6O8QZ88Q/1675929790/192602/35048ebd339056b22336edd5f216b659/ep.1.1663759957.m3u8",
        "isM3U8": true,
        "quality": "backup"
    }],
    "download": "https://gogohd.net/download?id=MTkyNjAy&token=WOsXz6plgqICZIzkwVNOaA&expires=1675922589"
}

Expected Behaviour

The new order of episode urls should be like :

default
360
480
720
1080
backup

Something like this would be helpful.
For some episodes having 180p or not having any one of the above given resolutions could impact the order of default url.

Anilist Api Not Working

Describe the bug

Api Error

Steps to reproduce

If i try to get this https://api.consumet.org/meta/anilist/popular

Error comes... The same with search and anime info

Expected behavior

List of trending animes and their data

Actual behavior

{"statusCode":500,"error":"Internal Server Error","message":"Request failed with status code 429"}

Additional context

No response

FlixHq

Describe the bug

not working

Steps to reproduce

when searching access denied

Expected behavior

..

Actual behavior

...

Additional context

No response

Zoro anime info route not working

Describe the bug

The anime info route of zoro provider is not working. Its always giving 404 status code with an empty object having an empty message property.

Steps to reproduce

  1. Go to this zoro anime info provider route
  2. You will get a { "message": { } } as response & the status code is 404

Expected behavior

Should show info about the anime that is being seached for if it exists.
For eg. I searched for Steins Gate, so it should information about Steins Gate. Information like its Studio, Genres, etc.

Actual behavior

Should show info about the anime that is being seached for if it exists.
For eg. I searched for Steins Gate, so it should information about Steins Gate. Information like its Studio, Genres, etc.

Additional context

No response

API is down

Hey I was working with the API and suddenly it stopped working. I think you might have an application error on your Heroku server

fmovies.ts and marin.ts commits break consumet docker

Describe the bug

Reverting latest fmovies.ts and marin.ts is required to run docker

Steps to reproduce

Assuming you have the repo cloned:

cd ../consumet-api
git pull

docker rm -f local_consumet
docker container prune -f
docker build -t consumet-api .

docker run -p 3000:3000 --name local_consumet consumet-api

Expected behavior

Container should start.

Actual behavior

Before reverting marin.ts:

> [email protected] start
> ts-node src/main.ts

/home/nodejs/app/node_modules/ts-node/src/index.ts:859
    return new TSError(diagnosticText, diagnosticCodes, diagnostics);
           ^
TSError: ⨯ Unable to compile TypeScript:
src/routes/anime/marin.ts(65,12): error TS2554: Expected 2 arguments, but got 1.

    at createTSError (/home/nodejs/app/node_modules/ts-node/src/index.ts:859:12)
    at reportTSError (/home/nodejs/app/node_modules/ts-node/src/index.ts:863:19)
    at getOutput (/home/nodejs/app/node_modules/ts-node/src/index.ts:1077:36)
    at Object.compile (/home/nodejs/app/node_modules/ts-node/src/index.ts:1433:41)
    at Module.m._compile (/home/nodejs/app/node_modules/ts-node/src/index.ts:1617:30)
    at Module._extensions..js (node:internal/modules/cjs/loader:1272:10)
    at Object.require.extensions.<computed> [as .ts] (/home/nodejs/app/node_modules/ts-node/src/index.ts:1621:12)
    at Module.load (node:internal/modules/cjs/loader:1081:32)
    at Function.Module._load (node:internal/modules/cjs/loader:922:12)
    at Module.require (node:internal/modules/cjs/loader:1105:19) {
  diagnosticCodes: [ 2554 ]
}
npm notice
npm notice New minor version of npm available! 9.2.0 -> 9.6.2
npm notice Changelog: <https://github.com/npm/cli/releases/tag/v9.6.2>
npm notice Run `npm install -g [email protected]` to update!
npm notice

Before reverting fmovies.ts:

> [email protected] start
> ts-node src/main.ts

/home/nodejs/app/node_modules/ts-node/src/index.ts:859
    return new TSError(diagnosticText, diagnosticCodes, diagnostics);
           ^
TSError: ⨯ Unable to compile TypeScript:
src/routes/movies/fmovies.ts(15,5): error TS2554: Expected 0-2 arguments, but got 3.

    at createTSError (/home/nodejs/app/node_modules/ts-node/src/index.ts:859:12)
    at reportTSError (/home/nodejs/app/node_modules/ts-node/src/index.ts:863:19)
    at getOutput (/home/nodejs/app/node_modules/ts-node/src/index.ts:1077:36)
    at Object.compile (/home/nodejs/app/node_modules/ts-node/src/index.ts:1433:41)
    at Module.m._compile (/home/nodejs/app/node_modules/ts-node/src/index.ts:1617:30)
    at Module._extensions..js (node:internal/modules/cjs/loader:1272:10)
    at Object.require.extensions.<computed> [as .ts] (/home/nodejs/app/node_modules/ts-node/src/index.ts:1621:12)
    at Module.load (node:internal/modules/cjs/loader:1081:32)
    at Function.Module._load (node:internal/modules/cjs/loader:922:12)
    at Module.require (node:internal/modules/cjs/loader:1105:19) {
  diagnosticCodes: [ 2554 ]
}
npm notice
npm notice New minor version of npm available! 9.2.0 -> 9.6.2
npm notice Changelog: <https://github.com/npm/cli/releases/tag/v9.6.2>
npm notice Run `npm install -g [email protected]` to update!
npm notice

Additional context

No response

Streaming Link Not currently working

Describe the bug

500 Internal Server Error when requesting streaming link of a movie

Steps to reproduce

Try to access the streaming link endpoint of movies

Expected behavior

The response should be a streaming link with different qualities

Actual behavior

It returns server error code 500, with the message Something went wrong. Please try again later.

Additional context

No response

Fmovies not working

Describe the bug

As mentioned in the title, the fmovies provider does not work, neither at your instance, nor at the one I host locally

Steps to reproduce

Use the api's function to search something through fmovies. Using your instance that returns a 403 error

$ curl https://api.consumet.org/movies/fmovies/deadpool
{"statusCode":500,"error":"Internal Server Error","message":"Request failed with status code 403"

Using my instance, hosted locally

# curl -s http://localhost:3000/movies/fmovies/deadpool
{"statusCode":500,"error":"Internal Server Error","message":"connect ECONNREFUSED ::1:80"}

# curl -s http://localhost:3000/movies/fmovies/deadpool
{"statusCode":500,"error":"Internal Server Error","message":"connect EAFNOSUPPORT ::1:80 - Local (undefined:undefined)"}

The top error is with ip6 disabled (kernel parameter ipv6.disable=1), the bottom one is with ipv6 enabled.

Expected behavior

I don't know how the results from fmovies actually look like, but I assume they should look like the ones from flixhq

# curl -s http://localhost:3000/movies/flixhq/deadpool
{"currentPage":1,"hasNextPage":false,"results":[{"id":"movie/watch-deadpool-19694","title":"Deadpool","url":"https://flixhq.to/movie/watch-deadpool-19694","image":"https://img.flixhq.to/xxrz/250x400/379/17/5c/175c58ef507c3b92a77825d04569a3ed/175c58ef507c3b92a77825d04569a3ed.jpg","releaseDate":"2016","type":"Movie"},{"id":"movie/watch-deadpool-2-19799","title":"Deadpool 2","url":"https://flixhq.to/movie/watch-deadpool-2-19799","image":"https://img.flixhq.to/xxrz/250x400/379/e5/6f/e56fac68a871cf787db740d4d3072603/e56fac68a871cf787db740d4d3072603.jpg","releaseDate":"2018","type":"Movie"},{"id":"movie/watch-once-upon-a-deadpool-19800","title":"Once Upon a Deadpool","url":"https://flixhq.to/movie/watch-once-upon-a-deadpool-19800","image":"https://img.flixhq.to/xxrz/250x400/379/5b/92/5b924878c80e51ff2db738eb2d55e691/5b924878c80e51ff2db738eb2d55e691.jpg","releaseDate":"2018","type":"Movie"}]}

Actual behavior

See above. The reason I tried with ipv6 support disabled is explained below.

Additional context

Flixhq returns this error and fails with anything when ipv6 is enabled. That is why I tried both providers with it being disabled.

# curl -s http://localhost:3000/movies/flixhq/deadpool
{"statusCode":500,"error":"Internal Server Error","message":"connect EHOSTUNREACH (ipv6 address removed)"}

RIP Animixplay

Describe the bug

As seen in the screenshot below, animixplay shut down yesterday.

Steps to reproduce

Use the api to search for something, e.g.

$ curl -s https://api.consumet.org/anime/animixplay/dragonball | jq .
{
  "results": [
    {
      "id": "/v1/dragon-ball",
      "title": "Dragon Ball",
      "url": "https://animixplay.to/v1/dragon-ball"
    },
    {
      "id": "/v1/dragon-ball-dub",
      "title": "Dragon Ball (Dub)",
      "url": "https://animixplay.to/v1/dragon-ball-dub"
    },
    {
      "id": "/v1/dragon-ball-gt",
      "title": "Dragon Ball GT",
      "url": "https://animixplay.to/v1/dragon-ball-gt"
    },
    {
      "id": "/v1/dragon-ball-gt-dub",
      "title": "Dragon Ball GT (Dub)",
      "url": "https://animixplay.to/v1/dragon-ball-gt-dub"
    },
    {
      "id": "/v1/dragon-ball-kai",
      "title": "Dragon Ball Kai",
      "url": "https://animixplay.to/v1/dragon-ball-kai"
    },
    {
      "id": "/v1/dragon-ball-kai-2014",
      "title": "Dragon Ball Kai (2014)",
      "url": "https://animixplay.to/v1/dragon-ball-kai-2014"
    }
  ]
}

Expected behavior

Any of the above entries that are under the url keys should point to a valid page...

Actual behavior

However, every url under the forementioned domain redirects to the main page where the user sees the following announcemet.

2022-12-24-121048_1280x1024_scrot

Additional context

This is as far as I could go with the api's functions. All I found from the source code is that it has 3 functions (search, info and watch), but I could not make any of the other 2 work.
Sadly, the api's part for animixplay is not documented under docs.consumet.org (and for other supported sites too) and my knowledge is too limited to understand the rest :(

[Flixhq] No stream links are returned for vidcloud and upcloud

Describe the bug

The api does not return streams for vidcloud and upcloud. It does return streams for mixcloud though.

Steps to reproduce

  1. Using the search function, find the movie's id or mediaId as the api names it. E.g. for deadpool
$ curl -s https://api.consumet.org/movies/flixhq/deadpool | jq .
    {
      "id": "movie/watch-deadpool-19694",
    },
  1. Using the movie id from above, find the id number for the movie or episodeId as the api names it.
$ curl -s https://api.consumet.org/movies/flixhq/info?id=movie/watch-deadpool-19694 | jq .
    {
      "id": "19694",
    }
  1. Using the 2 outputs from above, request the source urls (streams) for vidcloud or upcloud.
$ curl -s "https://api.consumet.org/movies/flixhq/watch?episodeId=19694&mediaId=movie/watch-deadpool-19694&server=vidcloud" | jq .

$ curl -s "https://api.consumet.org/movies/flixhq/watch?episodeId=19694&mediaId=movie/watch-deadpool-19694&server=upcloud" | jq .

Expected behavior

The last step should return results similar to this one, which is for mixdrop.

$ curl -s "https://api.consumet.org/movies/flixhq/watch?episodeId=19694&mediaId=movie/watch-deadpool-19694&server=mixdrop" | jq .
    {
      "url": "https://s-delivery25.mxdcontent.net/v/0d097bb93c197127f37e24d151e5ff26.mp4?s=2aWSU0kHPEWTnEV_wNqLOQ&e=1665692979&_t=1665677379",
    }

Actual behavior

Instead, a "media not found" message is returned for vidcloud and upcloud.

$ curl -s "https://api.consumet.org/movies/flixhq/watch?episodeId=19694&mediaId=movie/watch-deadpool-19694&server=vidcloud" | jq .
{
  "message": "Media Not found."
}

$ curl -s "https://api.consumet.org/movies/flixhq/watch?episodeId=19694&mediaId=movie/watch-deadpool-19694&server=upcloud" | jq .
{
  "message": "Media Not found."
}

Additional context

I don't know when the api broke, but I am sure I used it successfully on a script 2 days ago.
Also, all command outputs above have been trimmed to show only the important part of each one.

Invalid id from gogoanime Get Recent Episodes

Describe the bug

There are cases where the id from recent episodes and the real anime id don't match.

Steps to reproduce

Episode JSON data from https://api.consumet.org/anime/gogoanime/recent-episodes?page=4
(Page numbers may change over time.)

...
{
"id":"jujutsu-kaisen-2nd-season",
"episodeId":"jujutsu-kaisen-2nd-season-episode-3",
"episodeNumber":3,
"title":"Jujutsu Kaisen 2nd Season",
"image":"https://gogocdn.net/cover/jujutsu-kaisen-tv-2nd-season-1688154932.png",
"url":"https://gogoanimehd.to/jujutsu-kaisen-2nd-season-episode-3"
}
...

Expected behavior

If my understanding is correct, the gogoanime id for 'Jujutsu Kaisen 2nd Season' is 'jujutsu-kaisen-2nd-season' from the above data.

So the url to get its anime info should be this.

https://api.consumet.org/anime/gogoanime/info/jujutsu-kaisen-2nd-season

Actual behavior

https://api.consumet.org/anime/gogoanime/info/jujutsu-kaisen-2nd-season

{"message":{}}

Additional context

The correct id is 'jujutsu-kaisen-tv-2nd-season'.

https://api.consumet.org/anime/gogoanime/info/jujutsu-kaisen-tv-2nd-season

{"id":"jujutsu-kaisen-tv-2nd-season","title":"Jujutsu Kaisen 2nd Season","url":"/category/jujutsu-kaisen-tv-2nd-season","genres":["Action","Fantasy","School","Shounen"],"totalEpisodes":3,"image":"https://gogocdn.net/cover/jujutsu-kaisen-tv-2nd-season-1688154932.png","releaseDate":"2023","description":"Second season of Jujutsu Kaisen.","subOrDub":"sub","type":"SUMMER 2023 ANIME","status":"Ongoing","otherName":"呪術廻戦 2 / 咒術迴戰第二季 / 咒術迴戰 2 / 주술회전 2기 / Sorcery Fight / JJK / Jujutsu Kaisen (TV) 2nd Season / มหาเวทย์ผนึกมาร ซีซั่น 2","episodes":[{"id":"jujutsu-kaisen-2nd-season-episode-1","number":1,"url":"https://gogoanimehd.to//jujutsu-kaisen-2nd-season-episode-1"},{"id":"jujutsu-kaisen-2nd-season-episode-2","number":2,"url":"https://gogoanimehd.to//jujutsu-kaisen-2nd-season-episode-2"},{"id":"jujutsu-kaisen-2nd-season-episode-3","number":3,"url":"https://gogoanimehd.to//jujutsu-kaisen-2nd-season-episode-3"}]}

jujutsu-kaisen-2nd-season
jujutsu-kaisen-tv-2nd-season

Unlike the id from recent episodes data, the correct id contains '-tv-' in the slug.
Is this also considered as a bug?

ts-node error

Describe the bug

Docker container from fresh build fails to start

Steps to reproduce

Assuming you have the git repo cloned:

cd ../consumet-api
git pull

docker rm -f local_consumet
docker container prune -f
docker build -t consumet-api .

docker run -p 3000:3000 --name local_consumet consumet-api

Expected behavior

Container should start.

Actual behavior

Error message follows:

> [email protected] start
> ts-node src/main.ts

/home/nodejs/app/node_modules/ts-node/src/index.ts:859
    return new TSError(diagnosticText, diagnosticCodes, diagnostics);
           ^
TSError: ⨯ Unable to compile TypeScript:
src/routes/anime/9anime.ts(112,35): error TS2341: Property 'ev' is private and only accessible within class 'NineAnime'.
src/routes/anime/9anime.ts(115,35): error TS2551: Property 'searchVrf' does not exist on type 'NineAnime'. Did you mean 'search'?
src/routes/anime/9anime.ts(118,35): error TS2339: Property 'decrypt' does not exist on type 'NineAnime'.
src/routes/anime/9anime.ts(121,35): error TS2339: Property 'vizcloud' does not exist on type 'NineAnime'.
src/routes/anime/9anime.ts(124,35): error TS2339: Property 'customRequest' does not exist on type 'NineAnime'.

    at createTSError (/home/nodejs/app/node_modules/ts-node/src/index.ts:859:12)
    at reportTSError (/home/nodejs/app/node_modules/ts-node/src/index.ts:863:19)
    at getOutput (/home/nodejs/app/node_modules/ts-node/src/index.ts:1077:36)
    at Object.compile (/home/nodejs/app/node_modules/ts-node/src/index.ts:1433:41)
    at Module.m._compile (/home/nodejs/app/node_modules/ts-node/src/index.ts:1617:30)
    at Module._extensions..js (node:internal/modules/cjs/loader:1272:10)
    at Object.require.extensions.<computed> [as .ts] (/home/nodejs/app/node_modules/ts-node/src/index.ts:1621:12)
    at Module.load (node:internal/modules/cjs/loader:1081:32)
    at Function.Module._load (node:internal/modules/cjs/loader:922:12)
    at Module.require (node:internal/modules/cjs/loader:1105:19) {
  diagnosticCodes: [ 2341, 2551, 2339, 2339, 2339 ]
}
npm notice
npm notice New minor version of npm available! 9.2.0 -> 9.6.2
npm notice Changelog: <https://github.com/npm/cli/releases/tag/v9.6.2>
npm notice Run `npm install -g [email protected]` to update!
npm notice

Additional context

No response

Provide Gogoanime ID as well for ease.

Describe the bug

First of all, This is just a request for a feature.

Steps to reproduce


Expected behavior

Mentioned below.

Actual behavior


Additional context

Hi there, I am requesting for an important feature to be added.

Feature : The feature is just providing gogo-id, gogodub-id or zoro-id (if available) when fetching anime data from anilist (meta/anilist/trending meta/anilist/popular meta/anilist/random-anime or meta/anilist/info/{id}), just like how id and malId are provided by the api.
This will make it a lot easier to implement in anime apps and web apps.

Thank you,
Great day ahead.

Crunchyroll search not working

Describe the bug

Crunchyroll search is not working

Steps to reproduce

Get 'https://api.consumet.org/anime/crunchyroll/attack'

Expected behavior

Returning something like this:

{
"id": "attack-on-tomorrow.kvm4",
"title": "Attack on Tomorrow",
"url": "https://9anime.pl/watch/attack-on-tomorrow.kvm4",
"image": "https://static.bunnycdn.ru/i/cache/images/2020/03/a74e1d59b2f118aeff732cb7eb229d28.jpg",
"type": "TV",
"hasSub": true,
"hasDub": false
},

Actual behavior

Returning an error:

{
"statusCode": 500,
"code": "ERR_BAD_REQUEST",
"error": "Internal Server Error",
"message": "Request failed with status code 404"
}

Additional context

I am using Postman to test things.

Unable to get anime streaming link in gogoanime and anilist

Describe the bug

when i send a get request in /anime/gogoanime/watch/spy-x-oshi-no-ko-episode-1 its not returning the streaming link

Steps to reproduce

Send a get request in /anime/gogoanime/watch/spy-x-oshi-no-ko-episode-1 or /meta/anilist/watch/spy-x-oshi-no-ko-episode-1

it wont return any response

Expected behavior

{
"headers": {
"Referer": "string",
"watchsb": "string", // or null, since only provided with server being equal to "streamsb".
"User-Agent": "string" // or null
},
"sources": [
{
"url": "string",
"quality": "string",
"isM3U8": true
}
]
}

Actual behavior

{"message":{}}

Additional context

No response

Heroku button does not work

Describe the bug

Returns a not found page

Steps to reproduce

Sorry,
I dont have discord, but if I press the heroku button, returns a not found error...
Is no more supported?
Thanks

Expected behavior

Open heroku

Actual behavior

Not found page

Additional context

No response

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.