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)

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

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

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

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

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

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

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

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

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

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

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

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

Установка

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

Репозиторий приватный, поэтому ставится через авторизованный gh — на Linux, macOS и Windows одинаково:

gh auth login
gh release download v0.2.0 --repo root3315/anicli-multi --pattern '*.whl'
pipx install ./anicli_multi-0.2.0-py3-none-any.whl

Вместо pipx можно uv tool install ./anicli_multi-0.2.0-py3-none-any.whl.

Одной командой, если git настроен на работу с GitHub (gh auth setup-git):

pipx install git+https://github.com/root3315/anicli-multi.git@v0.2.0

Установка 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.0

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.0
File Size Uploaded
anicli_multi-0.4.0.tar.gz 78.9 kB Details

Built distribution (wheel)

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

Total release size: 109.4 kB

Release files / anicli_multi-0.4.0.tar.gz

Download URL anicli_multi-0.4.0.tar.gz
Size 78.9 kB
Tags Source
SHA-256 checksum
How to use checksums
cb520350e8c4309e86306ffade5a00d233280959647954ac1004072a2185eb79
BLAKE2b-256 checksum
How to use checksums
dbefdee537c1e110149b88051c50d527961e11a5d2efee11c6c2d075845b7229
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.0-py3-none-any.whl

Download URL anicli_multi-0.4.0-py3-none-any.whl
Size 30.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7e620342f476385aca453a831f9d6db3b62466226e022fa352f26db1e3591c59
BLAKE2b-256 checksum
How to use checksums
3b458e4a1b32c4cd2166d8f5c0549548b8510be33c36b25f683d03d416d24adc
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

0.4.1

2 release files

This release

0.4.0 This release

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