Skip to main content
LME.StarLight bridges Lampac NextGen and the StarLight Digital streaming platform (tp-back.starlight.digital). It searches the platform’s catalogue by title, retrieves project metadata including seasons and episodes (each identified by a unique hash), and resolves hashes to playable stream URLs on demand using a call-method pattern. Quality variants returned by the StarLight API are exposed to Lampac as a StreamQualityTpl, letting the player pick the best available resolution.
Module version: 4.1 (ModInit.Version in LME.StarLight/ModInit.cs). Default backend: https://tp-back.starlight.digital.

HTTP routes

GET /lite/lme.starlight
GET /lite/lme.starlight/play
The Index action handles search, season selection, and episode listing. The /play sub-route resolves a hash to a stream URL and returns a VideoTpl JSON payload. Key query parameters for the Index action:
ParameterTypeDescription
titlestringTitle used for search
original_titlestringOriginal title (also used for search)
imdb_idstringIMDb identifier (passed through for similar-results links)
kinopoisk_idlongKinopoisk identifier (passed through)
yearintRelease year (passed through)
serialint1 = TV serial, 0 = movie
sintSeason index (-1 = show season list)
hrefstringDirect project URL (skips search)
checksearchboolLightweight content availability check
rjsonboolReturn JSON instead of HTML templates

/play parameters

ParameterTypeDescription
hashstringEpisode or movie hash from the StarLight API
titlestringDisplay title for the video

How content is resolved

  1. Searchinvoke.Search(title, original_title) queries the StarLight catalogue. If multiple results are found, a SimilarTpl disambiguation list is returned.
  2. Project fetchinvoke.GetProject(href) retrieves full metadata: season list, episode list, and a top-level hash for the movie case.
  3. Episode listing — episodes are sorted first by numeric episode number (extracted from title or a dedicated Number field), then by broadcast date. Each episode is rendered with method: "call" pointing to /lite/lme.starlight/play?hash=<hash>.
  4. Stream resolution — the /play endpoint calls invoke.ResolveStream(hash), which returns a StreamResult with one or more (link, quality) pairs. These are assembled into a StreamQualityTpl so the Lampac player can select a quality level.
If the project has no seasons but has episodes, the top-level project.Hash is used directly for movie-mode playback. If that is also absent, the first episode with a non-empty hash is used.

Configuration (init.conf)

"LME.StarLight": {
  "enable": true,
  "domain": "https://tp-back.starlight.digital",
  "displayname": "StarLight",
  "displayindex": 1,
  "streamproxy": false,
  "useproxy": false,
  "proxy": {
    "useAuth": true,
    "username": "",
    "password": "",
    "list": [
      "socks5://ip:port"
    ]
  }
}

Key parameters

enable
boolean
default:"true"
Enables or disables the module.
domain
string
default:"https://tp-back.starlight.digital"
Base URL of the StarLight backend API.
displayname
string
default:"StarLight"
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.
useproxy
boolean
default:"false"
Route outbound parsing requests through the proxy list.

Season and episode ordering

Seasons are indexed from zero internally but presented with 1-based numbering. Episode ordering uses the following priority:
  1. Explicit Number field from the API.
  2. A number found before a keyword such as "випуск", "серия", or "серія" in the episode title.
  3. Broadcast date from the Date field ("yyyy-MM-dd HH:mm:ss" format).
  4. Original API order as a final fallback.

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.
  • StarLight does not currently define a magic_apn default; APN must be configured explicitly if needed.

Build docs developers (and LLMs) love