anitube_crawler_api 0.3.0
anitube_crawler_api: ^0.3.0

Dart native js
Flutter Android iOS web

Anitube website crawler API. This API allows you to get data and parse them from the brazilian anime website anitube.site.

anitube_crawler_api #

Build Status

Anitube website crawler API. This dart package is a simple library to fetch animes and episodes data from the brazilian Anitube website.

This package gets the website html pages, parse them and returns the data using a well formatted data model classes.

This package is part of the AnimeStore mobile app project.

Features #

  • Fetch the most recents episodes

  • Fetch the most recents animes

  • Fetch the most viewed animes

  • Fetch the daily releases

  • Fetch available genres

  • Fetch anime details with an episode list

  • Fetch episodes details with video stream link

Usage #

To use this plugin, add anitube_crawler_api and dio package as dependencies in pubspec.yaml file. For example:

dependencies:

anitube_crawler_api: 0.3.0
dio: 3.0.10

The API #

The API is very simple. You just need an instance of AniTubeApi class to get all the data that you want.

import  'package:anitube_crawler_api/anitube_crawler_api.dart';

final dioClient = Dio();
/// create a instance.
final  AniTubeApi api = AniTubeApi(dioClient);

Getting the Anitube homepage data #

HomePageInfo homePage = await api.getHomePageData();

// HomePageInfo brings all information about the anitube website home page using a simple and good formated model.

// Checking the data that homePage brings to you.

print(homePage.dayReleases ); // Data type is List<AnimeItem>

print(homePage.latestEpisodes); // Data type is List<EpisodeItem>

print(homePage.mostRecentAnimes); // Data type is List<AnimeItem>

print(homePage.mostShowedAnimes); // Data type is List<AnimeItem>

Getting details about an "anime" like title, author, episodes reference list, genre and more... #

// getting the first anime released.
AnimeItem anime = homePage.dayReleases[0];
// use id property of AnimeItem instance.

AnimeDetails details = await api.getAnimeDetails();

// check the anime details property
print(details);

Getting episode details like the stream Url #


// details is an AnimeDetails instance.

var episodeList = details.episodes; // getting List<EpisodeItem>

// getting the first episode from the list

var desiredEpisode = episodeList[ 0 ];

// use id property of EpisodeItem instance.

EpisodeDetails episode = await api.getEpisodeDetails(desiredEpisode.id);

// printing episode title

print(episode.title)

// printing episode stream URL

print(episode.streamUrl);

// checking EpisodeDetails class properties

print(episode);

Getting all genres available. #

List<Genres> genres = await api.getGenresAvailable();

// print the list with all avaialble genre names.
print(genres);

Getting all the animes in anitube website. #

// AnimeListPageInfo instance holds data about the current
// anime list page included the anime item list and the current page
// number and the max page number both are useful to do pagination.

AnimeListPageInfo pageInfo = await api.getAnimeListPageData(
// 1 is the default page number
pageNumber = 1,
// getting only animes with subtitles.
ccType = AnimeCC.LEGENDED,);

// prints the current page number
print(pageInfo.pageNumber);

// prints the last page number
print(pageInfo.maxPageNumber);

// prints the list with AnimeItem objects which comes with the current page.
print(pageInfo.animes);

The search engine used is from the anitube website. Sometimes it returns undesired results but most cases it works well.

// the search can be anything. A letter, a anime name, studio name etc.

String query = "Shigeki no kyojin";

AnimeListPageInfo searchPageInfo = await api.search(
query,
pageNumber = 1, // the default page number is 1.

);

// prints the current search page number
print(searchPageInfo.pageNumber);

// prints the last page number
print(searchPageInfo.maxPageNumber);

// prints the list with AnimeItem objects which comes with the current search page.
print(searchPageInfo.animes);

//NOTE: sometimes a query can have more than 1 page, in this cases

// if you want more results to the same query string value YOU MUST call search method again using the same query but a different pageNumber

// getting the page 2 for the query string.

AnimeListPageInfo searchPageInfo2 = await api.search(
query,
pageNumber = 2,);
4
likes
90
pub points
49%
popularity

Anitube website crawler API. This API allows you to get data and parse them from the brazilian anime website anitube.site.

Repository (GitHub)
View/report issues

Documentation

API reference

Uploader

scavenger.gnu@gmail.com

License

MIT (LICENSE)

Dependencies

dio, html, meta

More

Packages that depend on anitube_crawler_api