SkillAgentSearch skills...

AnimeParsers

Библиотека с парсерами аниме/дорам плееров

Install / Use

/learn @YaNesyTortiK/AnimeParsers
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

AnimeParsers

PyPI - Downloads PyPI - Version

Описание

Данный проект нацелен на создание наиболее широкого спектра парсеров на python для различных аниме-плееров в русскоязычном/снг сегменте

Актуальная стабильная версия доступна на pypi или в релизах на гитхабе

Что есть на данный момент

  • [x] Парсер Kodik (требуется api ключ)
  • [x] Асинхронный парсер Kodik
  • [x] Парсер AniBoom (на основе animego, не требует api ключей)
  • [x] Асинхронный парсер Aniboom
  • [ ] Парсер JutSu (без функции поиска, не требует api ключей) (Сервис заблокирован ркн)
  • [x] Парсер Shikimori (с возможностью использовать псевдо-api, не требует api ключей)
  • [x] Асинхронный парсер Shikimori

Установка

  • Стандартная установка:
    pip install anime-parsers-ru
    
  • Установка с lxml:
    pip install anime-parsers-ru[lxml]
    
    Для использования lxml при инициализации парсера установите параметр use_lxml = True
  • Установка с асинхронными библиотеками (без lxml):
    pip install anime-parsers-ru[async]
    

Установка lxml вручную:

pip install lxml

Инструкция к парсерам

Оглавление

Kodik инструкция

[!IMPORTANT] Если вы хотите использовать функции библиотеки для апи кодика, то вся документация расположена в файле KODIK_API.md

[!WARNING] Токен получаемый с помощью функции get_token НЕ работает для функций base_search, base_search_by_id, get_list и search По умолчанию данная функция не используется и класс требует от пользователя указать корректный токен. Если вы хотите использовать ограниченный функционал библиотеки, то можете при инициализации указать параметры token=KodikParser.get_token(), validate_token=False (Для асинхронного параметр token=KodikParserAsync.get_token_sync())

[!TIP] В большинстве случаев в комментариях к функциям описаны шаблоны и возможные значения возвращаемых данных

  1. Установите и импортируйте библиотеку

    Стандартно:

    pip install anime-parsers-ru
    

    С lxml:

    pip install anime-parsers-ru[lxml]
    
    from anime_parsers_ru import KodikParser
    
    parser = KodikParser(<ваш api ключ>)
    

    Для асинхронного кода:

    pip install anime-parsers-ru[async]
    

    (Установка без lxml)

    from anime_parsers_ru import KodikParserAsync
    
    parser = KodikParserAsync(<ваш api ключ>)
    
  2. Поиск аниме по названию

    parser.search(title="Наруто", limit=None, include_material_data=True, anime_status=None, strict=False, only_anime=False) # список словарей
    # title - Название аниме/фильма/сериала
    # limit - количество результатов выдачи (int) (результатов будет сильно меньше чем указанное число, так как в выдаче результаты повторяются)
    # include_material_data - Добавлять дополнительные данные об элементе
    # anime_status - Статус выхода аниме (доступно: released, ongoing, None - если ищется не аниме или любой статус)
    # strict - Исключение названий далеких от оригинального
    # only_anime - возвращать только элементы где type in ['anime', 'anime-serial']
    

    Возвращает:

    [
    {
        "title": "Название",
        "type": "тип мультимедиа (anime, film, ...)",
        "year": "Год выпуска фильма",
        "screenshots": [
            "ссылки на скриншоты"
        ],
        "shikimori_id": "Id шикимори, если нет - None",
        "kinopoisk_id": "Id кинопоиска, если нет - None",
        "imdb_id": "Id imdb, если нет - None",
        "worldart_link": "ссылка на worldart, если нет - None",
        "additional_data": {
            "Здесь будут находится все остальные данные выданные кодиком, не связанные с отдельным переводом"
        },
        "material_data": { 
            "Здесь будут все данные о сериале имеющиеся у кодика. (None если указан параметр include_material_data=False)
            В том числе оценки на шикимори, статус выхода, даты анонсов, выхода, все возможные названия, жанры, студии и многое другое."
        },
        "link": "ссылка на kodik.info (Пример: //kodik.info/video/20609/e8fd5bc1190b7eb1ee1a3e1c3aec5f62/720p)"
    },
    ]
    
  3. Поиск аниме по id

    parser.search_by_id(id="20", id_type="shikimori", limit=None)
    # id - id аниме на одном из сайтов
    # id_type - с какого сайта id (Поддерживается: shikimori, kinopoisk, imdb)
    # limit - количество результатов выдачи (int) (результатов будет сильно меньше чем указанное число, так как в выдаче результаты повторяются)
    

    Возвращает:

    [
    {
        "title": "Название",
        "type": "тип мультимедиа (anime, film, ...)",
        "year": "Год выпуска фильма",
        "screenshots": [
            "ссылки на скриншоты"
        ],
        "shikimori_id": "Id шикимори, если нет - None",
        "kinopoisk_id": "Id кинопоиска, если нет - None",
        "imdb_id": "Id imdb, если нет - None",
        "worldart_link": "ссылка на worldart, если нет - None",
        "additional_data": {
            "Здесь будут находится все остальные данные выданные кодиком, не связанные с отдельным переводом"
        },
        "material_data": { 
            "Здесь будут все данные о сериале имеющиеся у кодика. (None если указан параметр include_material_data=False)
            В том числе оценки на шикимори, статус выхода, даты анонсов, выхода, все возможные названия, жанры, студии и многое другое."
        },
        "link": "ссылка на kodik.info (Пример: //kodik.info/video/20609/e8fd5bc1190b7eb1ee1a3e1c3aec5f62/720p)"
    },
    ]
    
  4. Получить список аниме

    data = parser.get_list(limit_per_page=50, pages_to_parse=1, include_material_data=True, anime_status=None, only_anime=False, start_from=None)
    # limit_per_page - количество результатов на одной странице (итоговых результатов будет сильно меньше чем указан параметр)
    # pages_to_parse - количество страниц для обработки (каждая страница - отдельный запрос)
    # include_material_data - включить в результат дополнительные данные
    # anime_status - Статус выхода аниме (доступно: released, ongoing, None - если ищется не аниме или любой статус)
    # only_anime - возвращать только элементы где type in ['anime', 'anime-serial']
    # start_from - начать поиск со страницы под id (id возвращается вторым элементом результата функции)
    

    Возвращает:

    (
        [
        {
            "title": "Название",
            "type": "тип мультимедиа (anime, film, ...)",
            "year": "Год выпуска фильма",
            "screenshots": [
                "ссылки на скриншоты"
            ],
            "shikimori_id": "Id шикимори, если нет - None",
            "kinopoisk_id": "Id кинопоиска, если нет - None",
            "imdb_id": "Id imdb, если нет - None",
            "worldart_link": "ссылка на worldart, если нет - None",
            "additional_data": {
                "Здесь будут находится все остальные данные выданные кодиком, не связанные с отдельным переводом"
            },
            "material_data": { 
                "Здесь будут все данные о сериале имеющиеся у кодика. (None если указан параметр include_material_data=False)
                В том числе оценки на шикимори, статус выхода, даты анонсов, выхода, все возможные названия, жанры, студии и многое другое."
            },
            "link": "ссылка на kodik.info (Пример: //kodik.info/video/20609/e8fd5bc1190b7eb1ee1a3e1c3aec5f62/720p)"
        },
        ],
        "next_page_id": "id следующей страницы (для последовательного парсинга нескольких страниц) (может быть None, если след. страниц нет)"
    )
    
  5. Получить информацию об аниме

    parser.get_info(id="z20", id_type="shikimori")
    # id - id аниме на одном из сайтов
    # id_type - с какого сайта id (Поддерживается: shikimori, kinopoisk, imdb)
    

    Возвращает:

    {
        "series_count": 220, 
        "translations": [
            {"id": "735", "type": "Озвучка", "name": "2x2 (220 эп.)"}, 
            {"id": "609", "type": "Озвучка", "name": "AniDUB (220 эп.)"}, 
            {"id": "869", "type": "Субтитры", "name": "Субтитры (220 эп.)"}, 
            {"id": "958", "type": "Озвучка", "name": "AniRise (135 эп.)"}, 
            {"id": "2550", "type": "Озвучка", "name": "ANI.OMNIA (8 эп.)"}
        ]
    }
    
    • Получить отдельно кол-во серий:
      parser.series_count("z20", "shikimori") # число
      
    • Получить отдельно переводы:
      parser.translations("z20", "shikimori") # список словарей
      
  6. Прямая ссылка на видеофайл

    parser.get_link(
        id="z20", 
        id_type="shikimori", 
        seria_num=1, 
        translation_id="609") # Кортеж
    # id - id медиа
    # id_type - тип id (возможные: shikimori, kinopoisk, imdb)
    # seria_num - номер серии (если фильм или одно видео - 0)
    # translation_id - id перевода (прим: Anilibria = 610, если неизвестно - 0)
    

    Возвращает кортеж: ("//cloud.kodik-storage.com/useruploads/67b6e546-e51d-43d2-bb11-4d8bfbedc2d7/d6f4716bc90bd30694cf09b0062d07a2:2024062705/", 720)

    1. Ссылка Пример: //cloud.kodik-storage.com/useruploads/67b6e546-e51d-43d2-bb11-4d8bfbedc2d7/d6f4716bc90bd30694cf09b0062d07a2:2024062705/ К данной ссылке в начале нужно добавить http: или https:, а в конце качество.mp4 (720.mp4) (Обычно доступны следующие вари

Related Skills

View on GitHub
GitHub Stars78
CategoryDevelopment
Updated2d ago
Forks8

Languages

Python

Security Score

100/100

Audited on Mar 24, 2026

No findings