Skip to main content

anicli-multi

Поиск аниме, фильмов и сериалов сразу по нескольким источникам поверх anicli-ru.

Обычный anicli-ru ищет в одном источнике, выбранном при запуске, и только аниме. Если тайтла там нет, приходится выходить и перезапускаться с другим -s. anicli-multi опрашивает несколько источников параллельно и показывает одну строку на тайтл с пометкой, где он доступен.

~ наруто

  1  Наруто: Ураганные хроники (animego, yummy-anime, anilibria)
  2  Боруто: Новое поколение Наруто (animego, anilibria)
  3  Наруто: Последний фильм (hdrezka, yummy-anime)

~/multi 1

Фильмы, сериалы, мультфильмы и шоу тоже:

~ интерстеллар

  1  Интерстеллар [фильм] (hdrezka)
  2  Наука «Интерстеллар» [фильм] (hdrezka)

~ во все тяжкие

  1  Во все тяжкие [сериал] (hdrezka)
  2  Во все тяжкие: Медведи [мультфильм] (hdrezka)
  3  El Camino: Во все тяжкие [фильм] (hdrezka)

Служебные хвосты со страниц поиска — «3 сезон, 10 серия», «Завершен (все серии)», «Онгоинг» — из названий вырезаются.

Тип показывается бейджем у всего, что не аниме. Одноимённые аниме и игровой фильм остаются разными строками — тип входит в ключ группировки.

Выдача упорядочена по релевантности запросу: сначала точные совпадения, затем названия, начинающиеся с запроса, затем содержащие его. При равной релевантности выше то, что найдено на большем числе источников. Строки, где запрос вообще не встречается в названии, отсекаются — под таблицей пишется, сколько скрыто.

Фильтр по типу

Достаточно дописать тип к запросу — отдельный синтаксис не нужен:

~ жизнь по вызову сериал

  1  Жизнь по вызову [сериал] (hdrezka)

Слово типа вырезается из запроса к источникам и становится фильтром. Понимает сериал, фильм, кино, аниме, мультфильм, мультик, шоу и их формы множественного числа. Срабатывает, только если слово стоит первым или последним.

Фильтр мягкий: если под тип ничего не подошло, показывается вся найденная выдача с пометкой. Поэтому «наруто последний фильм» находит «Наруто: Последний Фильм», хотя тот лежит в разделе аниме.

Уточнения в запросе

Дописывать 1 сезон, 5 серия, смотреть, онлайн, бесплатно, hd можно — они вырезаются перед отправкой в источники. Это не косметика: источники сами начинают отдавать мусор, если получают такой запрос целиком.

Слова сезон и серия вырезаются только рядом с числом, поэтому «Сезон охоты» ищется как надо.

Совпадение считается не только по фразе целиком: если все значимые слова запроса есть в названии — пусть вразбивку и в другом порядке — строка считается релевантной. «ураганные хроники наруто» находит «Наруто: Ураганные хроники».

Установка

Нужен mpv в PATH и Python 3.9 или новее.

На Linux, macOS и Windows одинаково:

pipx install anicli-multi

или

uv tool install anicli-multi

Установка mpv: sudo apt install mpv на Debian и Ubuntu, sudo pacman -S mpv на Arch, brew install mpv на macOS, winget install shinchiro.mpv на Windows.

Использование

ani                              запустить REPL
ani наруто                       запустить и сразу искать
ani --sources animego,hdrezka    разово переопределить набор источников

В REPL достаточно набрать название — слово search не нужно. Команды:

Команда Алиас Что делает
search <запрос> s поиск по всем настроенным источникам
ongoing o текущие онгоинги
history h недавно просмотренное
config настройки anicli-ru
help справка
exit q выход

Выбрав тайтл, доступный на нескольких источниках, вы отдельно выбираете источник — дальше идёт штатный флоу anicli-ru: серия, озвучка, запуск в mpv.

Навигация

Внутри поиска работают команды перемещения:

Ввод Что делает
.. шаг назад: от серий к результатам поиска, оттуда — в главное меню
~ сразу в главное меню
q / exit выход из программы (из главного меню)
Ctrl+D тоже выход

Подсказка показывается под таблицей результатов, под списком серий и после возврата из плеера — чтобы после просмотра не пришлось гадать, как выйти.

Все опции anicli-ru cli работают как есть: -q 1080, --proxy, --cookies-from-browser, -H, --timeout и остальные.

Конфиг

%APPDATA%\anicli-multi\config.json на Windows, ~/.config/anicli-multi/config.json на Linux и macOS:

{
  "sources": ["animego", "hdrezka", "yummy-anime", "anilibria"],
  "timeout": 10.0,
  "bare_text_search": true,
  "hdrezka_categories": ["animation", "films", "series", "cartoons", "show"],
  "max_results": 30
}

max_results — сколько строк показывать. Лимит честный: скрытые строки нельзя выбрать по номеру, потому что дальше передаётся только показанный срез.

hdrezka_categories задаёт, какие разделы каталога hdrezka искать. Значение ["animation"] возвращает прежнее поведение — только аниме.

sources задаёт и набор, и приоритет: название тайтла показывается в варианте от первого источника в списке. timeout — предел ожидания одного источника в секундах. bare_text_search: false возвращает строгий режим, где голый текст даёт «Unknown command».

Доступные источники: animego, hdrezka, yummy-anime, anilibria, animevost, dreamcast. Источники anilibme и sameband из anicli-api на момент написания ничего не отдают, поэтому в набор по умолчанию не входят.

Ограничения

  • Тайтлы склеиваются только при точном совпадении названия после нормализации. Один тайтл под русским и ромадзи-названием на разных источниках останется двумя строками. Это осознанный размен: fuzzy-матчинг склеивал бы и разные тайтлы, а это хуже лишней строки.
  • Опечатка в команде (sarch наруто) уйдёт в поиск, а не в сообщение об ошибке. Отключается через bare_text_search: false.
  • Поиск идёт не быстрее самого медленного источника, но ограничен сверху значением timeout. Источник, не уложившийся в него, выпадает из выдачи с пометкой под таблицей.
  • Фильмы, сериалы, мультфильмы и шоу приходят только с hdrezka — остальные источники аниме-только. Склеивать их между источниками нечего, и если hdrezka недоступен, кино не найдётся вовсе.
  • Расширенный поиск по hdrezka опирается на вёрстку сайта. Если она изменится, hdrezka автоматически откатится в аниме-режим с предупреждением, а не сломает инструмент.

Разработка

uv venv --python 3.10
uv pip install -e ".[dev]"
python -m pytest

Тесты с сетью помечены маркером network и в обычный прогон не входят:

python -m pytest -m network

Лицензия

MIT. См. NOTICE — проект построен на anicli-ru и anicli-api, обе тоже MIT.

Metadata

Release files for anicli-multi 0.4.1

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

Source distribution (sdist)

Source distribution for anicli-multi 0.4.1
File Size Uploaded
anicli_multi-0.4.1.tar.gz 78.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for anicli-multi 0.4.1
File Interpreter ABI Platform
anicli_multi-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 109.2 kB

Release files / anicli_multi-0.4.1.tar.gz

Download URL anicli_multi-0.4.1.tar.gz
Size 78.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4ef159017060b2423a7e420ce17f9b1dcfbedd34ee97ea918e8f95cdb0c98ebf
BLAKE2b-256 checksum
How to use checksums
72bbe704e04fdc809da1872491f8f853ff8b89c36a52035c6068891200bafd94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / anicli_multi-0.4.1-py3-none-any.whl

Download URL anicli_multi-0.4.1-py3-none-any.whl
Size 30.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7c3c2efae4deafd333eadb4573909e2f6cd84f22193bf38245cf5a1cef948cc2
BLAKE2b-256 checksum
How to use checksums
513eb887528026cd4b3496bdd973d5680816d321d448e9e53be2fb642e9ba43c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 release files

0.4.0

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