/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
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:
| Parameter | Type | Description |
|---|---|---|
title | string | Display title |
original_title | string | Original title |
year | int | Release year |
imdb_id | string | IMDb identifier for confident matching |
kinopoisk_id | long | TMDB/Kinopoisk identifier |
serial | int | 1 = TV serial, 0 = movie |
s | int | Season number (-1 = show season list) |
href | string | Internal title_id as string (skips search) |
checksearch | bool | Lightweight content availability check |
rjson | bool | Return JSON instead of HTML templates |
/play parameters
| Parameter | Type | Description |
|---|---|---|
video_id | long | Unique video identifier from the uafilm.me API |
title_id | long | Parent title identifier (context only) |
s | int | Season number (context only) |
e | int | Episode number (context only) |
title | string | Display title for the video |
How content is resolved
- Search —
invoke.Search(title, original_title, year)queries the uafilm.me API. Results are scored and sorted byMatchScore. - Confident match selection — a result is selected automatically if
TmdbIdorImdbIdmatches exactly, or if the top result scores ≥ 65 points with at least a 10-point gap over the second result. Otherwise aSimilarTpldisambiguation list is shown (up to 60 entries). - Season listing —
invoke.GetAllSeasons(titleId)returns season numbers with episode counts for the season picker. - Episode listing —
invoke.GetSeasonEpisodes(titleId, season)returns episodes withPrimaryVideoIdfields. Episodes without a playable video ID are skipped. - Stream resolution — the
/playroute callsinvoke.GetWatch(video_id)and theninvoke.CollectPlayableVideos(watch), assembling aStreamQualityTplfrom all playable variants. Stream proxying is always forced (forceProxy: true) andUser-Agent: Mozilla/5.0plusReferer: <domain>headers are attached.
Configuration (init.conf)
UafilmME does not define
magic_apn defaults. APN must be configured explicitly via apn / apn_host fields if required.Key parameters
Enables or disables the module.
Base URL of the uafilm.me site. Update if the domain changes.
Label shown in the Lampac source list.
Sort order among sources.
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.Route outbound parsing requests through the
proxy list.Stream label format
Each video variant is labelled by joining its non-emptyName, 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_hostininit.conf) →streamproxyis forced off. streamproxy: trueand no APN →apnstreamandapnare cleared.- The
/playhandler always forces stream proxy for video delivery to satisfy the Referer requirements of the uafilm.me CDN, independent of thestreamproxysetting.