anitube_crawler_api 0.3.0
anitube_crawler_api: ^0.3.0 copied to clipboard

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
80
pub points
39%
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