AnimeParsers
Библиотека с парсерами аниме/дорам плееров
Install / Use
/learn @YaNesyTortiK/AnimeParsersREADME
AnimeParsers
Описание
Данный проект нацелен на создание наиболее широкого спектра парсеров на 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:
Для использования lxml при инициализации парсера установите параметрpip install anime-parsers-ru[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] В большинстве случаев в комментариях к функциям описаны шаблоны и возможные значения возвращаемых данных
-
Установите и импортируйте библиотеку
Стандартно:
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 ключ>) -
Поиск аниме по названию
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)" }, ] -
Поиск аниме по 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)" }, ] -
Получить список аниме
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, если след. страниц нет)" ) -
Получить информацию об аниме
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") # список словарей
- Получить отдельно кол-во серий:
-
Прямая ссылка на видеофайл
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)- Ссылка
Пример:
//cloud.kodik-storage.com/useruploads/67b6e546-e51d-43d2-bb11-4d8bfbedc2d7/d6f4716bc90bd30694cf09b0062d07a2:2024062705/К данной ссылке в начале нужно добавитьhttp:илиhttps:, а в конце качество.mp4 (720.mp4) (Обычно доступны следующие вари
- Ссылка
Пример:
Related Skills
node-connect
336.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
336.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.0kCommit, push, and open a PR
