Украинские источники
В lampac-go идут 11 готовых JS-модулей украинских источников, портированные из внутренних Go-балансеров. Все находятся в modules/ и включаются через админку.
JS-модули перехватывают соответствующие Go-балансеры с тем же ID (
starlight → /lite/starlight идёт в JS). Выключите модуль в админке — и роут вернётся к встроенному Go-коду, если он есть.Матрица источников
| Модуль | Тип | Источник | Особенности |
|---|---|---|---|
| uafilmme | Фильмы + сериалы | uafilm.me (REST API) | Пагинация сезонов/эпизодов, matching по IMDB/TMDB |
| starlight | Сериалы / TV | teleportal.ua (tp-back.starlight.digital) |
Live-search + hash-based player-api |
| bamboo | Аниме / дорама | bambooua.com | HTML-scrape, sub/dub треки |
| unimay | Аниме | api.unimay.media/v1 |
Чистый REST, HLS master |
| eneyida | Фильмы + сериалы | eneyida.tv | DLE-поиск, iframe → Playerjs |
| animeon | Аниме | animeon.club | REST, fundubs (озвучки), translations |
| mikai | Аниме | api.mikai.me/v1 |
Множественные озвучки (teams) + субтитры |
| klonfun | Фильмы + сериалы | klon.fun | HTML + Playerjs tree |
| kinoukr | Фильмы + сериалы | kinoukr.tv | xfsearch (Cloudflare-bypass), ashdi/tortuga iframe |
| ashdi | Озвучка | ashdi.vip | Wormhole API (imdb_id, без токена) |
| uaflix | Фильмы + сериалы | uafix.net | Упрощённая реализация, без DLE-auth и uTLS |
Установка по умолчанию
Модули поставляются в папке modules/ вместе с сервером. После первого запуска появятся в админке → Модули.
modules/
uafilmme/
manifest.json
index.js
starlight/
manifest.json
index.js
...Чтобы получить обновления — обновите сервер (git pull / новую версию бинаря) или стяните с репозитория отдельно:
cd modules
rm -rf starlight
curl -L https://github.com/<repo>/archive/refs/heads/main.zip -o tmp.zip
unzip -o tmp.zip '*/modules/starlight/*' -d .Или через админку → Установить из URL.
Детали модулей
uafilmme
- Репозиторий-референс: lampame/lampac-ukraine → LME.UafilmME
- API-path:
GET /api/v1/search/{query},GET /api/v1/titles/{id},GET /api/v1/titles/{id}/seasons,GET /api/v1/titles/{id}/seasons/{s}/episodes,GET /api/v1/watch/{videoId} - Особенности: paginated API (cursor
next_page), best-match scoring, поддерживаетmovieиserial - Настройки:
host,userAgent,timeout, три TTL для кэша,proxyStreams
starlight
- API:
GET /{lang}/live-search?q={query}→GET {href}(project) →GET {playerAPI}/{hash}?referer=...&lang=ua - Формат: Hash-based episodes, мультивыбор сезонов через
seasonsGallery - Ограничение: контент доступен только на украинских IP или через VPN
bamboo
- Парсинг: HTML-scrape через regex (
<li class="slide-item">,<span data-file="..." data-type="sub|dub">) - Два трека: субтитры и дубляж — переключение через
?t=sub|dub - Стримы: прямые ссылки на CDN с
.m3u8
unimay
- API:
GET /v1/release/search?title={q},GET /v1/release?code={slug} - Формат:
playlist[].hls.master— HLS master manifest per episode - Скорость: один самых быстрых модулей — чистый JSON, без HTML
eneyida
- Flow:
POST /index.php?do=search→ iframe из film page → iframe HTML →file:из Playerjs - Структура Playerjs: voice → seasons → episodes tree (JSON массив)
- Fallback: если
file:— одна строка (фильм), показывает single-stream
animeon
- API:
GET /api/anime/search?text=,GET /api/player/{id}/translations,GET /api/player/{id}/episodes?... - Особенности: фандабы (озвучки) → players → episodes, поля в camelCase (
titleUa,episodeNum,videoUrl) - Серийность: один anime-ID обычно = один сезон; несколько результатов на поиск = разные сезоны
mikai
- API:
GET /v1/anime/search?name=,GET /v1/anime/{id} - Voices:
anime.players[].team.name+isSubs→ ключ озвучки/субтитров - Структура: несколько provider per voice, каждый — свой «сезон» (seasonCounter)
klonfun
- Flow:
POST /index.php?do=search→ iframe из film page → Playerjsfile: - Edge cases: multi-quality строка
[720p]url1,[1080p]url2→ строитqualitymap - Нюанс: на сайте много редиректов, иногда нужны повторные попытки
kinoukr
- Поиск:
GET /xfsearch/{query}/— обходит Cloudflare POST-challenge (работает с английскими названиями или%20-joined) - Iframe: ashdi/tortuga — приоритет ashdi
- Playerjs: такое же дерево как у eneyida
ashdi
- Wormhole API:
GET {wormholeHost}/?imdb_id={id}→{play: "https://ashdi.vip/vod/123"} - Без токена: полностью bypass через wormhole-прокси
- Flow:
playURL +?multivoice→ Playerjs → voices JSON array - CDN typo-fix: заменяет
0yql3tj→oyql3tjв URL (знаменитая ашди-опечатка)
uaflix
- Упрощённая реализация — полный Go-балансер умеет больше:
- DLE-cookie auth (cookie можно вставить вручную в настройках модуля)
- AMSP-bypass, pagination probes — не портированы
- DDoS-Guard bypass через uTLS — не портирован, нужен Go
- Когда переключаться на Go: если сайт возвращает 403/Cloudflare challenge — выключите JS-модуль, Go-версия подхватит
Как понять что сломано
Если какой-то источник перестал работать:
1. Проверьте роут руками
curl -s 'http://lampac:888/lite/starlight?checksearch=true' | jq
# {"rch":false} ← источник недоступен
# {"rch":true,"type":"movie","quality":"FHD"} ← работает2. Посмотрите логи модуля
Админка → Модули → карточка → Логи. Все console.warn / console.error из модуля + runtime-ошибки.
3. Типичные проблемы
| Проблема | Диагностика | Лечение |
|---|---|---|
{"rch":false} у всех запросов |
Сайт-источник упал или изменил API | Дождаться / обновить модуль |
| 403 в логах | Геоблок или Cloudflare | VPN, или включить Go-балансер (uTLS) |
JSON parse failed |
API вернул HTML-капчу | Смотреть res.text.slice(0,300) |
| Воспроизводится, но с лагами | CDN зарегулирован или нужен proxy | Включить proxyStreams: true в настройках |
| Рассинхрон озвучка/эпизоды | Кэш устарел | Кнопка ↻ на карточке (или cache.clear() в коде) |
4. Откат на Go-балансер
Если модуль критически сломан и нужна срочность:
- Админка → Модули → выключить toggle на карточке
- Роут
/lite/<id>автоматически вернётся к встроенному Go-балансеру - Чинить JS-модуль можно спокойно потом
Вклад в модули
Портированные модули живут в репозитории проекта в папке modules/. Если нашли баг или хотите добавить фичу:
- Отредактируйте
index.jsв админке → Сохранить и перезагрузить - Если работает — сделайте PR с изменённым файлом
- Бонусы за: новые источники, паттерны анти-бота, оптимизации регэкспов
Идеи для новых модулей из lampac-ukraine:
- LME.Makhno — wormhole-based, похож на ashdi
- LME.NMoonAnime — MAL-based search + base64/JSON обфускация
- LME.JackTor — Jackett indexer integration