Skip to main content
LME.UafilmME integrates Lampac NextGen with uafilm.me, a Ukrainian film and series portal. It matches titles against the site’s catalogue using a combination of TMDB/IMDB identifiers and fuzzy name scoring, then navigates seasons and episodes for serials or retrieves multi-quality video variants for films. Individual video streams are resolved on-demand via a /play sub-route, which forces stream proxying and attaches the required User-Agent and Referer headers.
Module version: 1.1 (ModInit.Version in LME.UafilmME/ModInit.cs). Default backend: https://uafilm.me.

HTTP routes

GET /lite/lme.uafilmme
GET /lite/lme.uafilmme/play
The Index action handles search, season listing, and episode listing. The /play sub-route fetches watch data for a specific video_id and returns a VideoTpl JSON payload with quality variants. Key query parameters for the Index action:
ParameterTypeDescription
titlestringDisplay title
original_titlestringOriginal title
yearintRelease year
imdb_idstringIMDb identifier for confident matching
kinopoisk_idlongTMDB/Kinopoisk identifier
serialint1 = TV serial, 0 = movie
sintSeason number (-1 = show season list)
hrefstringInternal title_id as string (skips search)
checksearchboolLightweight content availability check
rjsonboolReturn JSON instead of HTML templates

/play parameters

ParameterTypeDescription
video_idlongUnique video identifier from the uafilm.me API
title_idlongParent title identifier (context only)
sintSeason number (context only)
eintEpisode number (context only)
titlestringDisplay title for the video

How content is resolved

  1. Searchinvoke.Search(title, original_title, year) queries the uafilm.me API. Results are scored and sorted by MatchScore.
  2. Confident match selection — a result is selected automatically if TmdbId or ImdbId matches exactly, or if the top result scores ≥ 65 points with at least a 10-point gap over the second result. Otherwise a SimilarTpl disambiguation list is shown (up to 60 entries).
  3. Season listinginvoke.GetAllSeasons(titleId) returns season numbers with episode counts for the season picker.
  4. Episode listinginvoke.GetSeasonEpisodes(titleId, season) returns episodes with PrimaryVideoId fields. Episodes without a playable video ID are skipped.
  5. Stream resolution — the /play route calls invoke.GetWatch(video_id) and then invoke.CollectPlayableVideos(watch), assembling a StreamQualityTpl from all playable variants. Stream proxying is always forced (forceProxy: true) and User-Agent: Mozilla/5.0 plus Referer: <domain> headers are attached.
For reliable auto-selection, ensure Lampac passes a valid imdb_id or kinopoisk_id in the request. When neither is available, the module falls back to fuzzy name matching and may show a disambiguation list.

Configuration (init.conf)

"LME.UafilmME": {
  "enable": true,
  "domain": "https://uafilm.me",
  "displayname": "UAFilmME",
  "displayindex": 1,
  "streamproxy": false,
  "useproxy": false,
  "proxy": {
    "useAuth": true,
    "username": "",
    "password": "",
    "list": [
      "socks5://ip:port"
    ]
  }
}
UafilmME does not define magic_apn defaults. APN must be configured explicitly via apn / apn_host fields if required.

Key parameters

enable
boolean
default:"true"
Enables or disables the module.
domain
string
default:"https://uafilm.me"
Base URL of the uafilm.me site. Update if the domain changes.
displayname
string
default:"UAFilmME"
Label shown in the Lampac source list.
displayindex
integer
default:"0"
Sort order among sources.
streamproxy
boolean
default:"false"
Route video streams through Lampac’s built-in stream proxy. Automatically disabled when APN is active. Note that stream proxying is always forced in the /play handler regardless of this setting.
useproxy
boolean
default:"false"
Route outbound parsing requests through the proxy list.

Stream label format

Each video variant is labelled by joining its non-empty Name, Quality, and Language fields with , deduplicating case-insensitively. For example: "Ukrainska • 1080p • ukr". If none of those fields are populated, the label falls back to "Варіант <n>" or "Потік".

APN and stream proxy precedence

  • APN active (apn / apn_host in init.conf) → streamproxy is forced off.
  • streamproxy: true and no APN → apnstream and apn are cleared.
  • The /play handler always forces stream proxy for video delivery to satisfy the Referer requirements of the uafilm.me CDN, independent of the streamproxy setting.

Build docs developers (and LLMs) love