Skip to content

anime

Anime(provider, name, identifier, languages)

A wrapper class that represents an anime, it is pretty useful, but you can also just use the Provider without the wrapper.

Parameters:

Name Type Description Default
provider BaseProvider

The provider from which the identifier was retrieved

required
name str

The name of the Anime

required
identifier str

The identifier of the Anime

required
languages Set[LanguageTypeEnum]

Supported Language types of the Anime

required

Attributes:

Name Type Description
provider BaseProvider

The from which the Anime comes from

name str

The name of the Anime

identifier str

The identifier of the Anime

languages Set[LanguageTypeEnum]

Set of supported Language types of the Anime

Source code in api/src/anipy_api/anime.py
def __init__(
    self,
    provider: "BaseProvider",
    name: str,
    identifier: str,
    languages: Set["LanguageTypeEnum"],
):
    self.provider: "BaseProvider" = provider
    self.name: str = name
    self.identifier: str = identifier
    self.languages: Set["LanguageTypeEnum"] = languages

from_local_list_entry(entry) staticmethod

Get Anime object from LocalListEntry

Parameters:

Name Type Description Default
entry LocalListEntry

The local list entry

required

Returns:

Type Description
Anime

Anime Object

Source code in api/src/anipy_api/anime.py
@staticmethod
def from_local_list_entry(entry: "LocalListEntry") -> "Anime":
    """Get Anime object from [LocalListEntry][anipy_api.locallist.LocalListEntry]

    Args:
        entry: The local list entry

    Returns:
        Anime Object
    """
    provider = next(
        filter(lambda x: x.NAME == entry.provider, list_providers()), None
    )

    if provider is None:
        raise ProviderNotAvailable(entry.provider)

    return Anime(provider(), entry.name, entry.identifier, entry.languages)

from_search_result(provider, result) staticmethod

Get Anime object from ProviderSearchResult.

Parameters:

Name Type Description Default
provider BaseProvider

The provider from which the search result stems from

required
result ProviderSearchResult

The search result

required

Returns:

Type Description
Anime

Anime object

Source code in api/src/anipy_api/anime.py
@staticmethod
def from_search_result(
    provider: "BaseProvider", result: "ProviderSearchResult"
) -> "Anime":
    """Get Anime object from ProviderSearchResult.

    Args:
        provider: The provider from which the search result stems from
        result: The search result

    Returns:
        Anime object
    """
    return Anime(provider, result.name, result.identifier, result.languages)

get_episodes(lang)

Get a list of episodes from the Anime.

Parameters:

Name Type Description Default
lang LanguageTypeEnum

Language type that determines if episodes are searched for the dub or sub version of the Anime. Use the languages attribute to get supported languages for this Anime.

required

Returns:

Type Description
List[Episode]

List of Episodes

Source code in api/src/anipy_api/anime.py
def get_episodes(self, lang: "LanguageTypeEnum") -> List["Episode"]:
    """Get a list of episodes from the Anime.

    Args:
        lang: Language type that determines if episodes are searched
            for the dub or sub version of the Anime. Use the `languages`
            attribute to get supported languages for this Anime.

    Returns:
        List of Episodes
    """
    return self.provider.get_episodes(self.identifier, lang)

get_info()

Get information about the Anime.

Returns:

Type Description
ProviderInfoResult

ProviderInfoResult object

Source code in api/src/anipy_api/anime.py
def get_info(self) -> "ProviderInfoResult":
    """Get information about the Anime.

    Returns:
        ProviderInfoResult object
    """
    return self.provider.get_info(self.identifier)

get_video(episode, lang, preferred_quality=None)

Get a video stream for the specified episode, the quality to return is determined by the preferred_quality argument or if this is not defined by the best quality found. To get a list of streams use get_videos.

Parameters:

Name Type Description Default
episode Episode

The episode to get the stream for

required
lang LanguageTypeEnum

Language type that determines if streams are searched for the dub or sub version of the Anime. Use the languages attribute to get supported languages for this Anime.

required
preferred_quality Optional[Union[str, int]]

This may be a integer (e.g. 1080, 720 etc.) or the string "worst" or "best".

None

Returns:

Type Description
ProviderStream

A stream

Source code in api/src/anipy_api/anime.py
def get_video(
    self,
    episode: Episode,
    lang: "LanguageTypeEnum",
    preferred_quality: Optional[Union[str, int]] = None,
) -> "ProviderStream":
    """Get a video stream for the specified episode, the quality to return
    is determined by the `preferred_quality` argument or if this is not
    defined by the best quality found. To get a list of streams use
    [get_videos][anipy_api.anime.Anime.get_videos].

    Args:
        episode: The episode to get the stream for
        lang: Language type that determines if streams are searched for
            the dub or sub version of the Anime. Use the `languages`
            attribute to get supported languages for this Anime.
        preferred_quality: This may be a integer (e.g. 1080, 720 etc.)
            or the string "worst" or "best".

    Returns:
        A stream
    """
    streams = self.provider.get_video(self.identifier, episode, lang)
    streams.sort(key=lambda s: s.resolution)

    if preferred_quality == "worst":
        stream = streams[0]
    elif preferred_quality == "best":
        stream = streams[-1]
    elif preferred_quality is None:
        stream = streams[-1]
    else:
        stream = next(
            filter(lambda s: s.resolution == preferred_quality, streams), None
        )

        if stream is None:
            stream = streams[-1]

    return stream

get_videos(episode, lang)

Get a list of video streams for the specified Episode.

Parameters:

Name Type Description Default
episode Episode

The episode to get the streams for

required
lang LanguageTypeEnum

Language type that determines if streams are searched for the dub or sub version of the Anime. Use the languages attribute to get supported languages for this Anime.

required

Returns:

Type Description
List[ProviderStream]

A list of streams sorted by quality

Source code in api/src/anipy_api/anime.py
def get_videos(
    self, episode: Episode, lang: "LanguageTypeEnum"
) -> List["ProviderStream"]:
    """Get a list of video streams for the specified Episode.

    Args:
        episode: The episode to get the streams for
        lang: Language type that determines if streams are searched for
            the dub or sub version of the Anime. Use the `languages`
            attribute to get supported languages for this Anime.

    Returns:
        A list of streams sorted by quality
    """
    streams = self.provider.get_video(self.identifier, episode, lang)
    streams.sort(key=lambda s: s.resolution)

    return streams