Об этом проекте
guessit-js — это порт библиотеки Python guessit на TypeScript для извлечения метаданных из имен медиафайлов. Он определяет 50 свойств, включая название, год, сезон, эпизод, разрешение, кодек, язык, потоковый сервис, группу выпуска и многое другое.
Ключевые возможности:
- 100% совместимость с Python guessit 4.4.0 (пройдено 1342/1342 тестовых случаев)
- В 3,5 раза быстрее, чем Python (~4,4 мс против ~15,5 мс на один парсинг в Node.js)
- 50 определяемых свойств с машиночитаемой JSON Schema
- CLI с теми же флагами, что и у Python guessit, плюс дополнительные, такие как --serve для REST API, --benchmark и автодополнение командной строки
- Сервер REST API (npx guessit-js --serve)
- Сборка WASM через Javy/QuickJS для сред, отличных от JS (побитово идентична JS)
- Поддержка Dual ESM и CommonJS
- Полные определения типов TypeScript с полями значений, перечисленными в enum
- Одна зависимость (rebulk-js)
- Автоматически загружает пользовательскую конфигурацию из ~/.guessit/options.json
Проект исправляет 32 исторические ошибки из Python guessit и корректно обрабатывает случаи, с которыми версия на Python до сих пор справляется неверно, такие как короткие названия (X2), полноширинные символы CJK, составные названия аниме с дефисами и номера событий UFC. CLI является полной заменой команды Python guessit.
Доступны размещенная демо-версия и REST API для тестирования, а проект поставляется с JSON Schema draft-07 для проверки результатов и генерации клиентов на других языках.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.