Skip to main content
LME.JackTor bridges Jackett torrent indexing with TorrServer playback inside Lampac NextGen. When a user opens a title, the module queries your Jackett instance across configured trackers, applies quality and audio-language filters, ranks results by seeders or other criteria, and streams the winning torrent directly through TorrServer — all without manual torrent management.
Version 2.1. The key in init.conf must be "LME.JackTor" (not "JackTor").

HTTP routes

MethodPathDescription
GET/lite/lme.jacktorMain search — returns season picker (serials) or movie stream list
GET/lite/lme.jacktor/serial/{rid}Episode file listing for a specific release
GET/lite/lme.jacktor/s{rid}Stream redirect — pushes the torrent to TorrServer and returns a playback URL

Playback workflow

1

Search Jackett

The module sends a search query to your Jackett instance using the title, original title, year, and language. Results are parsed, filtered, and ranked. Each result is stored in a short-lived cache keyed by a release ID (rid).
2

Season or movie list

For movies, the filtered results become a MovieTpl where each row shows the voice/tracker name, quality label, codec, and seeder count. Each row links to /lite/lme.jacktor/s{rid}.For serials, if season information is detected in the torrent titles, a season picker is shown first. Selecting a season shows a SimilarTpl of matching releases, each linking to /lite/lme.jacktor/serial/{rid}.
3

Episode listing (serials)

/lite/lme.jacktor/serial/{rid} pushes the torrent to TorrServer, waits up to 20 seconds for the file list, caches it for 36 hours, then returns an EpisodeTpl where each entry is a video file inside the torrent. Each entry links to /lite/lme.jacktor/s{rid}?tsid={fileId}.
4

Stream redirect

/lite/lme.jacktor/s{rid} resolves the appropriate TorrServer node, authenticates if required, adds the torrent hash, and issues an HTTP redirect to {torrentServer}/stream?link={hash}&index={fileId}&play.

TorrServer node selection

JackTor supports three ways to configure TorrServer nodes, evaluated in priority order:

auth_torrs — per-country authenticated nodes

auth_torrs is a list of TorrServer entries with authentication and optional country routing. When a stream request arrives, the module filters the list to entries whose country matches the client’s detected country (and where no_country does not exclude it), then picks one at random. The selection is cached per-client for four hours.
"auth_torrs": [
  {
    "enable": true,
    "host": "http://ts.example.com:8090",
    "login": "{account_email}",
    "passwd": "StrongPassword",
    "country": "UA",
    "no_country": null,
    "headers": {
      "x-api-key": "your-ts-key"
    }
  }
]
  • {account_email} is substituted with the Lampac account e-mail at request time.
  • country — allow this server only for clients in these countries (null = allow all).
  • no_country — block this server for clients in these countries.
  • headers — extra HTTP headers sent to TorrServer alongside the Authorization header.

base_auth — single-credential auth for all torrs nodes

When auth_torrs is empty and base_auth.enable is true, the module applies a single login/password to all hosts listed in torrs.
"base_auth": {
  "enable": true,
  "login": "{account_email}",
  "passwd": "StrongPassword",
  "headers": {}
},
"torrs": [
  "http://127.0.0.1:8090"
]

torrs — unauthenticated nodes

If neither auth_torrs nor base_auth is active, torrs is used as a plain list of TorrServer hosts. A random host is selected and the torrent link is redirected without adding credentials.

Complete init.conf example

"LME.JackTor": {
  "enable": true,
  "displayname": "JackTor",
  "displayindex": 0,

  "jackett": "jackett.app",
  "apikey": "YOUR_JACKETT_API_KEY",

  "min_sid": 5,
  "min_peers": 0,
  "max_size": 0,
  "max_serial_size": 0,
  "max_age_days": 0,

  "forceAll": false,
  "emptyVoice": true,
  "sort": "sid",
  "query_mode": "both",
  "year_tolerance": 1,

  "quality_allow": [2160, 1080, 720],
  "hdr_mode": "any",
  "codec_allow": "any",
  "audio_pref": ["ukr", "eng", "rus"],

  "trackers_allow": ["toloka", "rutracker", "noname-club"],
  "trackers_block": ["selezen"],

  "filter": "",
  "filter_ignore": "(camrip|ts|telesync)",

  "torrs": [
    "http://127.0.0.1:8090"
  ],
  "auth_torrs": [
    {
      "enable": true,
      "host": "http://ts.example.com:8090",
      "login": "{account_email}",
      "passwd": "StrongPassword",
      "country": "UA",
      "no_country": null,
      "headers": {
        "x-api-key": "your-ts-key"
      }
    }
  ],
  "base_auth": {
    "enable": false,
    "login": "{account_email}",
    "passwd": "StrongPassword",
    "headers": {}
  },

  "group": 0,
  "group_hide": true
}

Configuration reference

jackett
string
default:"http://127.0.0.1:9117"
Hostname or URL of your Jackett instance.
apikey
string
required
Jackett API key. Found in the Jackett dashboard under API Key.
min_sid
integer
default:"5"
Minimum number of seeders a torrent must have to be included in results.
min_peers
integer
default:"0"
Minimum number of peers. 0 disables this filter.
max_size
integer
default:"0"
Maximum file size in bytes for movies. 0 disables the limit.
max_serial_size
integer
default:"0"
Maximum file size in bytes for serial releases. 0 disables the limit.
max_age_days
integer
default:"0"
Exclude torrents older than this many days. 0 disables the age filter.
quality_allow
array
default:"[2160, 1080, 720]"
Allowed quality levels in pixels. Results not matching any listed quality are excluded.
hdr_mode
string
default:"any"
HDR filter. "any" allows all, "hdr" requires HDR, "sdr" excludes HDR content.
codec_allow
string
default:"any"
Codec filter. "any" allows all codecs. Set to "h264", "h265", etc. to restrict.
audio_pref
array
default:"[\"ukr\", \"eng\", \"rus\"]"
Preferred audio language codes in priority order. Releases with earlier languages rank higher.
sort
string
default:"sid"
Result sort order. "sid" sorts by seeders descending.
query_mode
string
default:"both"
Search query strategy. "both" tries both the title and original title; "title" or "original" restricts to one.
year_tolerance
integer
default:"1"
Year fuzzy matching range. A tolerance of 1 allows results from ±1 year relative to the title’s release year.
trackers_allow
array
Whitelist of tracker IDs. When non-empty, only results from these trackers are kept.
trackers_block
array
Blacklist of tracker IDs. Results from these trackers are always excluded.
filter
string
Regex applied to release titles. Only releases matching this pattern are included. Leave empty to disable.
filter_ignore
string
default:"(camrip|ts|telesync)"
Regex applied to release titles. Releases matching this pattern are excluded regardless of other filters.
emptyVoice
boolean
default:"true"
When true, releases without a detected voice label still appear in results (using the tracker name as the label).
forceAll
boolean
default:"false"
When true, bypasses quality, codec, and audio filters and returns all results.
group
integer
default:"0"
Access group ID. Users in this group can access JackTor. 0 means all users.
group_hide
boolean
default:"true"
When true, the module is hidden from users who are not in the configured group.
torrs
array
List of TorrServer hosts for unauthenticated or base_auth playback.
auth_torrs
array
List of authenticated TorrServer entries with optional per-country routing. See the auth_torrs section above.
base_auth
object
Single set of credentials applied to all torrs hosts when enable is true.
For the full JackTor configuration reference including advanced group access and stream filtering options, see /configuration/jacktor.

Build docs developers (and LLMs) love