Skip to main content

Asyncopoisk

PyPI - License PyPI - Version PyPI - Supported versions GitHub Actions Workflow Status

Это асинхронная обертка для Kinopoisk API Unofficial. Создавалась для личного пользования, так как удобной и асинхронной обертки найти не смог. Это был мой первый опыт в написании АПИ обертки, так что PR и Issue приветствуются!

Особенности

В обертки реализованы все методы, что были описаны в документации на момент 2023.21.12 структура запросов сделана так, чтобы минимально отличаться от документации самой АПИ

Начало работы

Перед использованием asyncopoisk вам нужно получить токен. Получить его можно на сайте Kinopoisk API Unofficial

Установите Asyncopoisk

pip install asyncopoisk

Далее создайте экземпляр обертки

from asyncopoisk import KinopoiskAPI
kp = KinopoiskAPI(token="TOKEN")

Теперь с помощью kp вы можете вызывать методы АПИ.

ВАЖНО так как обертка использует асинхронную httpx сессию, вызов всех методов должен происходить асинхронно

Примеры

Получить данные о фильме по kinopoisk id

import asyncio
from asyncopoisk import KinopoiskAPI


async def main(kp_token: str, kp_id: int):
    kp = KinopoiskAPI(token=kp_token)
    # Получаем фильм по id
    film = await kp.films(kp_id)


if __name__ == "__main__":
    asyncio.run(main(kp_token="TOKEN", kp_id=841700))

Получить данные о фильме по imdb id

import asyncio
from asyncopoisk import KinopoiskAPI


async def main(kp_token: str, imdb_id: str):
    kp = KinopoiskAPI(token=kp_token)
    # Получаем фильм по imdb id
    film = await kp.films(imdb_id=imdb_id)


if __name__ == "__main__":
    asyncio.run(main(kp_token="TOKEN", imdb_id="tt3659388"))

Получить список русских сериалов с рейтингом не ниже 6.5 от 2023 года

Номера стран и жанров можно получить используя метод films.filters()

from typing import List

import asyncio
from asyncopoisk import KinopoiskAPI
from asyncopoisk.models.enums import SearchOrder, SearchFilmType


async def main(
	kp_token: str, 
    countries: List[int],
    order: SearchOrder,
    type: SearchFilmType,
    rating_from: float,
    year_from: int,
):
    kp = KinopoiskAPI(token=kp_token)
    # Поиск по фильтрам
    film = await kp.films(
        countries=countries,
        order=order,
        type=type,
        rating_from=rating_from,
        year_from=year_from,
    )


if __name__ == "__main__":
    asyncio.run(
        main(
            kp_token="TOKEN", 
            countries = [34],
            order = SearchOrder.RATING,
            type = SearchFilmType.TV_SERIES,
            rating_from = 6.5,
            year_from = 2023,
        )
    )

Поиск по ключевому слову

import asyncio
from asyncopoisk import KinopoiskAPI
from asyncopoisk.models.enums import SearchOrder, SearchFilmType


async def main(kp_token: str, keyword: str):
    kp = KinopoiskAPI(token=kp_token)
    # Поиск по ключевому слову
    result = await kp.films.search_by_keyword(keyword=keyword)


if __name__ == "__main__":
    asyncio.run(
        main(
            kp_token="2d3c7c68-b288-4fbd-84d8-ccb68e495923",
            keyword="Марсианин",
        )
    )

Зависимости

Metadata

Release files for asyncopoisk 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for asyncopoisk 1.0.2
File Size Uploaded
asyncopoisk-1.0.2.tar.gz 15.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for asyncopoisk 1.0.2
File Interpreter ABI Platform
asyncopoisk-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 31.7 kB

Release files / asyncopoisk-1.0.2.tar.gz

Download URL asyncopoisk-1.0.2.tar.gz
Size 15.1 kB
Tags Source
SHA-256 checksum
How to use checksums
b94bfd6027443c723b4513cce2799c4725bae377ad348532e83ecc8b7bd917b1
BLAKE2b-256 checksum
How to use checksums
5c222c553b8614307eeb2a4be5fe65667c4d75ba62d40aa8dbf94de62889c85e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.5

Release files / asyncopoisk-1.0.2-py3-none-any.whl

Download URL asyncopoisk-1.0.2-py3-none-any.whl
Size 16.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
98270d996101c93a18bdeb17efe052a32b4fe87c398deefc332109313b9bc2e1
BLAKE2b-256 checksum
How to use checksums
988f88151a7cb1f103baacd8d6b2d1fff08eae51d156dae96e925147c667c9da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.5

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page