На kinozal во встроенном #tabs только «Техданные» («Перевод:» без студий), а строки «Аудио N: … (MVO, LostFilm)» лежат во вкладке «Релиз», которую страница грузит JS. Поэтому по URL определялись только типы без студий. * fetch: для kinozal скачиваются вкладки showtab(id,N) (get_srv_details.php?id=…&pagesd=N, кроме «Техданных» и «Скриншотов») и дописываются в #tabs; недоступная вкладка пропускается. * release: кодек-строки с типом озвучки берутся правилом codec_segments (сегментатор их отбрасывает — в разметке rutracker это не raw) и идут второстепенным источником (source=codec / page+codec): только дорожки со студией, дубли студии (same_studio) пропускаются, студия вписывается в дорожку того же типа без студии. «English Dubbing» и т.п. не берутся. * merge_title_tracks переведён на общий merge_extra_tracks. e2e test rutracker без изменений (P 0.988 / R 0.982); train-страницы P 0.975 -> 0.951. Тесты: 77 ok. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Документация DUB-AI
| Документ | Содержание |
|---|---|
| architecture.md | Схема пайплайна, multi-task модель (тип + BIO-спан + 18+), почему извлечение вместо классификации |
| dataset.md | Схема labels.csv, семантика 14 классов, словарь алиасов, находки аудита и как они обработаны |
| training-windows.md | Пошаговое обучение на Windows с GPU (RTX 5070 Ti / Blackwell), гиперпараметры, troubleshooting, переобучение на свежем датасете |
| inference.md | CLI, Python API, JSON-контракт (таблица полей), обработка HTML, ограничения |
| integration.md | Интеграция из Rust и TypeScript: HTTP-сервис (путь А) и ONNX без Python (путь Б), трейдоффы |
Быстрый старт — в README.md корня проекта.