1
0
mirror of https://github.com/Prowlarr/Indexers.git synced 2026-02-14 23:19:03 +00:00

jackett indexers as of 69e039f44165d61ab64cbeef249721e139f45c87 [2026-01-03T23:21:28Z]

Added Indexers: definitions/v11/arabtorrents-com.yml definitions/v11/c411.yml definitions/v11/exttorrents.yml

Modified Indexers: definitions/v11/animeworld-api.yml
definitions/v11/baozipt.yml
definitions/v11/bigbbs.yml
definitions/v11/bitmagnet.yml
definitions/v11/bitsearch.yml
definitions/v11/danishbytes-api.yml
definitions/v11/f1carreras-api.yml
definitions/v11/hdforever.yml
definitions/v11/jme-reunit3d-api.yml
definitions/v11/monikadesign-api.yml
definitions/v11/nekobt.yml
definitions/v11/portugas-api.yml
definitions/v11/racing4everyone-api.yml
definitions/v11/seedpool-api.yml
definitions/v11/theleachzone-api.yml
definitions/v11/theoldschool-api.yml
definitions/v11/upscalevault.yml
This commit is contained in:
ineednewpajamas
2026-01-03 17:21:28 -06:00
committed by Auggie
parent 798367c483
commit 0389696466
20 changed files with 636 additions and 147 deletions

View File

@@ -28,8 +28,8 @@ caps:
modes:
search: [q]
tv-search: [q, season, ep, tvdbid, tmdbid]
movie-search: [q, tmdbid]
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
@@ -45,6 +45,10 @@ settings:
type: checkbox
label: Search freeleech only
default: false
- name: tmdbidonly
type: checkbox
label: Disable IMDB and TVDB ID search (only support TMDB ID) to potentially improve Sonarr and Radarr results
default: false
- name: single_file_release_use_filename
type: checkbox
label: Use filename as title for single file releases
@@ -95,11 +99,11 @@ search:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
# seasonNumber: "{{ .Query.Season }}" # disabled due to Prowlarr/Indexers#486
# episodeNumber: "{{ .Query.Ep }}" # disabled due to Prowlarr/Indexers#486
# imdbId: "{{ .Query.IMDBIDShort }}" # disabled due to #14776
# seasonNumber: "{{ .Query.Season }}" # not supported
# episodeNumber: "{{ .Query.Ep }}" # not supported
imdbId: "{{ if .Config.tmdbidonly }}{{ else }}{{ .Query.IMDBIDShort }}{{ end }}"
tmdbId: "{{ .Query.TMDBID }}"
tvdbId: "{{ .Query.TVDBID }}"
tvdbId: "{{ if .Config.tmdbidonly }}{{ else }}{{ .Query.TVDBID }}{{ end }}"
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"

View File

@@ -0,0 +1,136 @@
---
id: arabtorrents-com
name: arab-torrents.com
description: "arab-torrents.com is an ARABIC Private Torrent Tracker for MOVIES / TV / GENERAL"
language: ar-AE
type: public
encoding: UTF-8
requestDelay: 2
links:
- https://arab-torrents.com/
caps:
categorymappings:
# categories containing '»' have a double space in search results
- {id: 14, cat: Other, desc: "اسلامي"}
- {id: 17, cat: Books, desc: "كتب"}
- {id: 19, cat: TV/Documentary, desc: "المرئيات العربية » وثائقي"}
- {id: 22, cat: PC, desc: "برامج عربية"}
- {id: 23, cat: PC, desc: "برامج عامه"}
- {id: 25, cat: Other, desc: "القران الكريم"}
- {id: 26, cat: Audio, desc: "اناشيد"}
- {id: 27, cat: Other, desc: "محاضرات"}
- {id: 41, cat: Movies, desc: "افلام عربيه"}
- {id: 44, cat: TV, desc: "مسلسلات عربية"}
- {id: 46, cat: Audio, desc: "منوع"}
- {id: 52, cat: Movies/Other, desc: "مسرحيات"}
- {id: 56, cat: TV/Sport, desc: "رياضي"}
- {id: 57, cat: TV/Foreign, desc: "مسلسلات آسيوية"}
- {id: 59, cat: Movies/Foreign, desc: "افلام آسيوية"}
- {id: 65, cat: Other, desc: "صور"}
- {id: 70, cat: Other, desc: "المرئيات العربية » تعليمي"}
- {id: 71, cat: TV/Foreign, desc: "مسلسلات مدبلجه عربي"}
- {id: 86, cat: Movies/Foreign, desc: "افلام هنديه"}
- {id: 88, cat: Movies/Foreign, desc: "افلام مدبلجه عربي"}
- {id: 89, cat: TV, desc: "مسلسلات عربية كامله"}
- {id: 90, cat: TV, desc: "برامج ومسابقات"}
- {id: 92, cat: Other, desc: "المرئيات الاجنبية » تعليمي"}
- {id: 93, cat: TV/Documentary, desc: "المرئيات الاجنبية » وثائقي"}
- {id: 98, cat: Movies/Other, desc: "انمي مدبلج عربي » افلام"}
- {id: 99, cat: Movies/Other, desc: "انمي مترجم عربي » افلام"}
- {id: 100, cat: TV/Anime, desc: "انمي مدبلج عربي » مسلسلات"}
- {id: 101, cat: TV/Anime, desc: "انمي مترجم عربي » مسلسلات"}
- {id: 102, cat: TV/Anime, desc: "انمي مدبلج عربي » حلقات"}
- {id: 103, cat: TV/Anime, desc: "انمي مترجم عربي » حلقات"}
- {id: 113, cat: TV/Foreign, desc: "مسلسلات لاتينية مترجم.مدبلج"}
- {id: 114, cat: Movies/Foreign, desc: "افلام لاتينية مترجم.مدبلج"}
- {id: 115, cat: TV/Foreign, desc: "مسلسلات تركية مترجم.مدبلج"}
- {id: 116, cat: Movies/Foreign, desc: "افلام تركية مترجم.مدبلج"}
- {id: 117, cat: TV, desc: "رمضان 2025"}
# categories not listed
- {id: missing1, cat: TV/Other, desc: "الكارتون الصامت والكلاسيكي"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings: []
search:
paths:
- path: index.php
- path: index.php
inputs:
p: 2
inputs:
page: torrents
search: "{{ .Keywords }}"
# does not support multi-category search
keywordsfilters:
- name: re_replace
args: ["^.{1,2}$", ""]
rows:
selector: table#torrents > tbody > tr
fields:
categorydesc:
selector: div.fcat
title:
selector: a[href^="/index.php?page=torrents&tid="] img
attribute: alt
filters:
- name: re_replace
args: ["(?<=\\d)\\s+(?=\\d)", " "]
- name: re_replace
args: ["\\[(\\d+(?:[\\s-]+\\d+)*)\\]\\s*\\[(\\d{4})\\]\\s*\\[م(\\d+)\\]", "S$3E$1 [$2]"]
- name: re_replace
args: ["\\[(\\d+(?:[\\s-]+\\d+)*)\\]\\s*\\[م(\\d+)\\]", "S$2E$1"]
- name: re_replace
args: ["^\\[(\\d+(?:[\\s-]+\\d+)*)\\](?!\\s*\\[م)", "S01E$1"]
- name: re_replace
args: ["E(\\d+)[\\s-]+(\\d+)", "E$1-E$2"]
- name: re_replace
args: ["\\[\\s*\\]", ""]
- name: re_replace
args: ["(?<=\\S)(\\[)", " $1"]
- name: re_replace
args: ["S(\\d)(?=E)", "S0$1"]
- name: re_replace
args: ["E(\\d)(?=\\D)", "E0$1"]
- name: re_replace
args: ["\\s{2,}", " "]
- name: trim
details:
selector: a[href^="/index.php?page=torrents&tid="]
attribute: href
magnet:
selector: a[href^="magnet:?xt="]
attribute: href
poster:
selector: a:has(img.posterIcon)
attribute: href
tmdbid:
selector: a[href*="themoviedb.org/movie/"], a[href*="themoviedb.org/tv/"]
attribute: href
date:
text: now
size:
selector: div.fsize
seeders:
text: 1
leechers:
text: 1
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
description:
selector: td
remove: a[href^="magnet:?xt="], div
# engine n/a

View File

@@ -19,6 +19,7 @@ caps:
- {id: 407, cat: TV/Sport, desc: "体育运动/Sports"}
- {id: 408, cat: Audio, desc: "高品质音频/HQ Audio"}
- {id: 409, cat: Other, desc: "其他/Other"}
- {id: 410, cat: TV, desc: "短剧/Playlet"}
modes:
search: [q]

View File

@@ -59,14 +59,15 @@ caps:
- {id: 118, cat: Audio, desc: "Disco Polo"}
- {id: 119, cat: Audio, desc: "Clubbing"}
- {id: 120, cat: Audio, desc: "House"}
- {id: 125, cat: Audio, desc: "Tranc"}
- {id: 127, cat: Audio, desc: "Dance"}
- {id: 128, cat: Audio, desc: "Opus"}
- {id: 130, cat: Audio, desc: "Pop"}
- {id: 129, cat: Audio, desc: "Italo"}
- {id: 131, cat: Audio, desc: "ClubDance"}
- {id: 133, cat: Audio, desc: "Retro Remixes"}
- {id: 134, cat: Audio, desc: "Techno"}
- {id: 125, cat: Audio, desc: "Elektro"}
- {id: 127, cat: Audio, desc: "Tranc"}
- {id: 128, cat: Audio, desc: "Dance"}
- {id: 130, cat: Audio, desc: "Opus"}
- {id: 129, cat: Audio, desc: "Pop"}
- {id: 131, cat: Audio, desc: "Italo"}
- {id: 133, cat: Audio, desc: "ClubDance"}
- {id: 134, cat: Audio, desc: "Retro Remixes"}
- {id: 146, cat: Audio, desc: "Techno"}
- {id: 132, cat: Audio, desc: "eurodance"}
- {id: 145, cat: Audio, desc: "Chillout"}
- {id: 83, cat: Audio, desc: "BLUES / REGGAE/ ROCK / METAL/CLASSIC/"}

View File

@@ -38,7 +38,24 @@ caps:
music-search: [q]
book-search: [q]
settings: []
settings:
- name: sort
type: select
label: Sort requested from site
default: published_at
options:
relevance: relevance
published_at: added
size: size
seeders: seeders
name: title
- name: type
type: select
label: Order requested from site
default: 1
options:
1: desc
0: asc
search:
paths:
@@ -53,6 +70,8 @@ search:
tmdbid: "{{ .Query.TMDBID }}"
season: "{{ .Query.Season }}"
ep: "{{ .Query.Ep }}"
order: "{{ .Config.sort }}"
desc: "{{ .Config.type }}"
limit: 100
rows:

View File

@@ -9,13 +9,13 @@ type: public
encoding: UTF-8
links:
- https://bitsearch.to/
- https://solidtorrents.to/
- https://solidtorrents.eu/
legacylinks:
- https://bitsearch.nocensor.cloud/
- https://bitsearch.mrunblock.bond/
- https://solidtorrents.net/
- https://solidtorrents.nocensor.cloud/
- https://solidtorrents.eu/
- https://solidtorrents.to/
caps:
categories:

178
definitions/v11/c411.yml Normal file
View File

@@ -0,0 +1,178 @@
---
id: c411
name: C411
description: "C411 (Community 411) is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
language: fr-FR
type: private
encoding: UTF-8
links:
- https://staging-68d548c5bd4.c411.org/
caps:
categorymappings:
- {id: 1000, cat: Console, desc: "Emulation & Jeux Vidéo"}
- {id: 1030, cat: Console/Wii, desc: "Nintendo"}
- {id: 1040, cat: Console/XBox, desc: "Microsoft"}
- {id: 1080, cat: Console/PS4, desc: "Sony"}
- {id: 1090, cat: Console/Other, desc: "Autre & ROM/ISO"}
- {id: 2000, cat: Movies, desc: "Films & Vidéos"}
- {id: 2060, cat: Movies, desc: "Animation & Vidéo-clips"}
- {id: 2070, cat: Movies, desc: "Documentaire"}
- {id: 2090, cat: Movies/Other, desc: "Concert & Spectacle"}
- {id: 3000, cat: Audio, desc: "Audio"}
- {id: 3010, cat: Audio/MP3, desc: "Musique"}
- {id: 3030, cat: Audio/Audiobook, desc: "Audio"}
- {id: 3050, cat: Audio/Other, desc: "Karaoké & Podcast Radio & Samples"}
- {id: 4000, cat: PC/0day, desc: "Applications & Nulled * Windows"}
- {id: 4030, cat: PC, desc: "Linux & MacOS"}
- {id: 4040, cat: PC, desc: "Formation"}
- {id: 4050, cat: PC, desc: "Autre & Divers & Scripts PHP & CMS & PC/GAMES"}
- {id: 4060, cat: PC/Mobile-Android, desc: "Applications"}
- {id: 4070, cat: PC/Mobile-iOS, desc: "Smartphone & Tablette"}
- {id: 5000, cat: TV, desc: "Série TV"}
- {id: 5060, cat: TV/Sport, desc: "Sport"}
- {id: 5070, cat: TV/Anime, desc: "Animation Série"}
- {id: 5080, cat: TV/Documentary, desc: "Emission TV"}
- {id: 6000, cat: XXX, desc: "XXX"}
- {id: 6010, cat: XXX/DVD, desc: "Films"}
- {id: 6050, cat: XXX/Other, desc: "Ebooks"}
- {id: 6060, cat: XXX/ImageSet, desc: "Images"}
- {id: 6070, cat: XXX/Other, desc: "Hentai"}
- {id: 6080, cat: XXX/Other, desc: "Jeux"}
- {id: 7000, cat: Books, desc: "Ebook"}
- {id: 7010, cat: Books/Mags, desc: "Presse"}
- {id: 7020, cat: Books/EBook, desc: "Livres"}
- {id: 7030, cat: Books/Comics, desc: "BDs & Comics & Manga"}
- {id: 8010, cat: Other/Misc, desc: "Imprimante 3D"}
modes:
search: [q]
tv-search: [q, season, ep]
# movie-search: [q, imdbid] # c411 api caps shows imdbid is supported but it currently does not work
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: apikey
type: text
label: API Key
- name: info_key
type: info
label: About your API key
default: "You can find or generate a new API Key by accessing the <a href=\"https://staging-68d548c5bd4.c411.org/user/integrations\" target=\"_blank\">C411 Intégrations API</a> page."
- name: multilang
type: checkbox
label: Replace MULTi by another language in release name
default: false
- name: multilanguage
type: select
label: Replace MULTi by this language
default: FRENCH
options:
FRENCH: FRENCH
MULTi.FRENCH: MULTi.FRENCH
ENGLISH: ENGLISH
MULTi.ENGLISH: MULTi.ENGLISH
VOSTFR: VOSTFR
MULTi.VOSTFR: MULTi.VOSTFR
- name: vostfr
type: checkbox
label: Replace VOSTFR and SUBFRENCH with ENGLISH
default: false
- name: info_3x
type: info
label: Including 3X
default: "IF you want to see 3x torrents access your <a href=\"https://staging-68d548c5bd4.c411.org/user/settings\" target=\"_blank\">C411 Paramètres</a> page and tick the <b>Afficher le contenu XXX</b> checkbox."
login:
# returns "401 Unauthorized, check your credentials" if apikey is invalid
path: "api/torznab?apikey={{ .Config.apikey }}&t=caps"
method: get
search:
paths:
- path: api/torznab
response:
type: xml
inputs:
apikey: "{{ .Config.apikey }}"
# t: "{{ .Query.Type }}"
t: search
q: "{{ .Keywords }}"
# imdbid: "{{ .Query.IMDBID }}"
limit: 100
keywordsfilters:
# replace spaces between words with percent wildcard
- name: re_replace
args: ["\\W+", "%"]
rows:
selector: rss > channel > item
fields:
category:
selector: '[name="category"]'
attribute: value
title_phase1:
selector: title
title_vostfr:
text: "{{ .Result.title_phase1 }}"
filters:
- name: re_replace
args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"]
title_phase2:
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
title_multilang:
text: "{{ .Result.title_phase2 }}"
filters:
- name: re_replace
args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR|VF2|VFF|VFQ|VOQ|VFI|VOF)))\\b", "{{ .Config.multilanguage }}"]
title:
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
details:
selector: guid
filters:
- name: prepend
args: "{{ .Config.sitelink }}torrents/"
download:
selector: enclosure
attribute: url
poster:
selector: description
filters:
- name: regexp
args: src=\"(.+?)\"
date:
# Sat, 03 Jan 2026 01:27:58 GMT
selector: pubDate
filters:
- name: replace
args: ["GMT", "+00:00"]
- name: dateparse
args: "ddd, dd MMM yyyy HH:mm:ss zzz"
size:
selector: size
seeders:
selector: '[name="seeders"]'
attribute: value
leechers:
selector: '[name="peers"]'
attribute: value
grabs:
selector: '[name="grabs"]'
attribute: value
downloadvolumefactor:
selector: '[name="downloadvolumefactor"]'
attribute: value
uploadvolumefactor:
selector: '[name="uploadvolumefactor"]'
attribute: value
minimumratio:
text: 1.0
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# torznab xml

View File

@@ -173,4 +173,4 @@ search:
minimumseedtime:
# 2 day (as seconds = 2 x 24 x 60 x 60)
text: 172800
# json DBy v0.96
# json DBy v0.96 (based on UNIT3D 6.3.0?)

View File

@@ -0,0 +1,179 @@
---
id: exttorrents
name: EXT Torrents
description: "EXT Torrents is a Public torrent site for MOVIES / TV / GENERAL"
language: en-US
type: public
encoding: UTF-8
requestDelay: 5
links:
- https://ext.to/
- https://search.extto.com/
- https://extranet.torrentbay.st/
legacylinks:
- https://ext.unblockninja.com/
- https://t.extto.com/
- https://torrent.extto.com/
- https://site.extto.com/
- https://ext.torrentbay.to/
- https://extranet.torrentbay.to/
- https://extranet.torrentbay.net/
caps:
categorymappings:
- {id: "/anime/", cat: TV/Anime, desc: Anime}
- {id: "/anime//anime/audio-lossy/", cat: Audio, desc: Anime Audio Lossy}
- {id: "/anime//anime/audio-lossless/", cat: Audio/Lossless, desc: Anime Audio Lossless}
- {id: "/anime//anime/english-translated/", cat: TV/Anime, desc: Anime English Translated}
- {id: "/anime//anime/live-action-english/", cat: TV/Anime, desc: Anime Live Action English}
- {id: "/anime//anime/live-action-raw/", cat: TV/Anime, desc: Anime Live Action Raw}
- {id: "/anime//anime/raw/", cat: TV/Anime, desc: Anime Raw}
- {id: "/anime//anime/subs/", cat: TV/Anime, desc: Anime Subs}
- {id: "/anime//raw/", cat: TV/Anime, desc: Anime Raw}
- {id: "/applications/", cat: PC, desc: Apps}
- {id: "/applications//applications/android/", cat: PC/Mobile-Android, desc: Apps Android}
- {id: "/applications//applications/ios/", cat: PC/Mobile-iOS, desc: Apps iOS}
- {id: "/applications//applications/linux/", cat: PC, desc: Apps Linux}
- {id: "/applications//applications/mac/", cat: PC/Mac, desc: Apps Mac}
- {id: "/applications//applications/other-applications/", cat: PC/Mobile-Other, desc: Apps Other}
- {id: "/applications//applications/windows/", cat: PC/0day, desc: Apps Windows}
- {id: "/books/", cat: Books, desc: Books}
- {id: "/books//books/audio-books/", cat: Audio/Audiobook, desc: Books Audiobooks}
- {id: "/books//books/comics/", cat: Books/Comics, desc: Books Comics}
- {id: "/books//books/ebooks/", cat: Books/EBook, desc: Books Ebooks}
- {id: "/books//books/manga-english/", cat: Books/Comics, desc: Books Manga English}
- {id: "/books//books/manga-raw/", cat: Books/Comics, desc: Books Manga Raw}
- {id: "/games/", cat: PC/Games, desc: Games}
- {id: "/games//games/mac/", cat: PC/Mac, desc: Games Mac}
- {id: "/games//games/nds/", cat: Console/NDS, desc: Games NDS}
- {id: "/games//games/other-games/", cat: Console/Other, desc: Games Other}
- {id: "/games//games/pc-games/", cat: PC/Games, desc: Games PC}
- {id: "/games//games/ps3/", cat: Console/PS3, desc: Games PS3}
- {id: "/games//games/ps4/", cat: Console/PS4, desc: Games PS4}
- {id: "/games//games/psp/", cat: Console/PSP, desc: Games PSP}
- {id: "/games//games/switch/", cat: Console/Other, desc: Games Switch}
- {id: "/games//games/wii/", cat: Console/Wii, desc: Games Wii}
- {id: "/games//games/xbox360/", cat: Console/XBox 360, desc: Games Xbox360}
- {id: "/movies/", cat: Movies, desc: Movies}
- {id: "/movies//movies/3d-movies/", cat: Movies/3D, desc: Movies 3D}
- {id: "/movies//movies/bollywood/", cat: Movies, desc: Movies Bollywood}
- {id: "/movies//movies/documentary/", cat: Movies, desc: Movies Documentary}
- {id: "/movies//movies/dubbed-movies/", cat: Movies, desc: Movies Dubbed}
- {id: "/movies//movies/dvd/", cat: Movies/DVD, desc: Movies DVD}
- {id: "/movies//movies/highres-movies/", cat: Movies/HD, desc: Movies Highres}
- {id: "/movies//movies/movie-clips/", cat: Movies/Other, desc: Movies Movie clips}
- {id: "/movies//movies/mp4/", cat: Movies, desc: Movies MP4}
- {id: "/movies//movies/music-videos/", cat: Audio/Video, desc: Movies Music videos}
- {id: "/movies//movies/other-movies/", cat: Movies, desc: Movies Other Movies}
- {id: "/movies//movies/ultrahd/", cat: Movies/UHD, desc: Movies UltraHD}
- {id: "/music/", cat: Audio, desc: Music}
- {id: "/music//music/aac/", cat: Audio, desc: Music AAC}
- {id: "/music//music/lossless/", cat: Audio/Lossless, desc: Music Lossless}
- {id: "/music//music/mp3/", cat: Audio/MP3, desc: Music MP3}
- {id: "/music//music/other-music/", cat: Audio/Other, desc: Music Other}
- {id: "/music//music/radio-shows/", cat: Audio, desc: Music Radio Shows}
- {id: "/other/", cat: Other, desc: Other}
- {id: "/tv/", cat: TV, desc: TV}
- {id: "/tv//tv/episodes-hd/", cat: TV/HD, desc: TV Episodes HD}
- {id: "/tv//tv/episodes-sd/", cat: TV/SD, desc: TV Episodes SD}
- {id: "/tv//tv/episodes-4k-uhd/", cat: TV/UHD, desc: TV Episodes 4K}
- {id: "/tv//tv/big-season-packs/", cat: TV, desc: TV Big Season Packs}
- {id: "/tv//tv/season-packs/", cat: TV, desc: TV Season Packs}
- {id: "/tv//tv/sports/", cat: TV/Sport, desc: TV Sports}
- {id: "/video/", cat: XXX, desc: XXX Video}
- {id: "/xxx/", cat: XXX, desc: XXX}
- {id: "/xxx//xxx/games/", cat: XXX/Other, desc: XXX Games}
- {id: "/xxx//xxx/hentai/", cat: XXX/Other, desc: XXX Hentai}
- {id: "/xxx//xxx/magazines/", cat: XXX/Other, desc: XXX Magazines}
- {id: "/xxx//xxx/pictures/", cat: XXX/ImageSet, desc: XXX Pictures}
- {id: "/xxx//xxx/video/", cat: XXX, desc: XXX Video}
modes:
search: [q]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
music-search: [q]
book-search: [q]
settings:
- name: sort
type: select
label: Sort requested from site
default: age
options:
age: created
seed: seeders
size: size
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_flaresolverr
type: info_flaresolverr
search:
paths:
# https://ext.to/browse/?sort=age&order=desc&age=4&user_sort=1&with_adult=1
# https://ext.to/browse/?sort=age&order=desc&user_sort=1&q=wipeout&with_adult=1
# https://ext.to/browse/?imdb_id=tt2693776
- path: browse/
- path: browse/
inputs:
page: 2
followredirect: true
inputs:
q: "{{ .Keywords }}"
sort: "{{ .Config.sort }}"
order: "{{ .Config.type }}"
# 0=last 24 hours, 1=last 3 days, 2=last week, 3=last 2 weeks, 4=last month
age: "{{ if or .Keywords .Query.IMDBID }}{{ else }}0{{ end }}"
# familysafe 0=enabled, 1=disabled
with_adult: "{{ if .Query.IMDBID }}{{ else }}1{{ end }}"
imdb_id: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}"
user_sort: 1
rows:
selector: table.table-striped > tbody > tr
fields:
category_part1:
selector: td:nth-child(1) div div a:nth-child(2)
attribute: href
optional: true
category_part2:
selector: td:nth-child(1) div div a:nth-child(3)
attribute: href
optional: true
category_combined:
text: "{{ .Result.category_part1 }}{{ .Result.category_part2 }}"
optional: true
category:
text: "{{ if .Result.category_combined }}{{ .Result.category_combined }}{{ else }}/other/{{ end }}"
title:
selector: td:nth-child(1) div a
details:
selector: td:nth-child(1) div a
attribute: href
infohash:
selector: a.search-magnet-btn
attribute: data-hash
size:
selector: td:nth-child(2)
files:
selector: td:nth-child(3)
optional: true
default: 1
date:
selector: td:nth-child(4)
seeders:
selector: td:nth-child(5)
leechers:
selector: td:nth-child(6)
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a

View File

@@ -121,8 +121,6 @@ search:
selector: details_link
download:
selector: download_link
infohash:
selector: info_hash
seeders:
selector: seeders
leechers:
@@ -167,4 +165,4 @@ search:
minimumseedtime:
# 2 day (as seconds = 2 x 24 x 60 x 60)
text: 172800
# json UNIT3D 9.1.5 (custom)
# json UNIT3D 9.2.0 (custom)

View File

@@ -20,8 +20,9 @@ caps:
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
allowtvsearchimdb: true
settings:
- name: username
@@ -79,7 +80,7 @@ settings:
- name: info_radarr
type: info
label: About Radarr
default: The HD-F web site cannot find movies if you use the release year in a title search. When you define your Radarr v3 Indexer remember to tick the <i>Remove year from search string</i> checkbox.
default: The HD-F web site cannot find movies if you use the release year in a title search. When you define your Radarr Indexer remember to tick the <i>Remove year from search string</i> checkbox.
login:
path: login.php
@@ -107,7 +108,8 @@ search:
searchsubmit: 1
# 1 freeleech, 2 neutral, 3 both, 0 normal
freetorrent: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
# site does not support imdbid search or display imdb links in results
tmdbid: "{{ .Query.TMDBID }}"
imdbid: "{{ .Query.IMDBID }}"
rows:
selector: table#torrent_table > tbody > tr.torrent:has(a[href^="torrents.php?action=download&"])
@@ -145,10 +147,14 @@ search:
poster:
selector: div.group_image img
attribute: src
files:
selector: td:nth-child(3)
imdbid:
selector: a[href*="imdb.com/title/tt"]
attribute: href
tmdbid:
selector: a[href*="themoviedb.org/movie/"], a[href*="themoviedb.org/tv/"]
attribute: href
date:
selector: td:nth-child(4)
selector: span.time
filters:
- name: replace
args: ["Il y a ", ""]
@@ -182,114 +188,65 @@ search:
selector: td:nth-child(8)
downloadvolumefactor:
case:
"div.group_info:contains(\"/ Free\")": 0
"div.group_info:contains(\"↓75%\")": 0.75
"div.group_info:contains(\"↓50%\")": 0.50
"div.group_info:contains(\"↓25%\")": 0.25 # for this site this is the count ratio, which is 25% of the total torrent size. (I.E. it's 75% free)
"div.torrent_info .tl_free": 0
"div.torrent_info .tl_notice[title*=\"Freeleech\"]": 0 # Global freeleech enabled
"div.torrent_info .tl_notice[title=\"-75%\"]": 0.75
"div.torrent_info .tl_notice[title=\"-50%\"]": 0.50
"div.torrent_info .tl_notice[title=\"-25%\"]": 0.25 # for this site this is the count ratio, which is 25% of the total torrent size. (I.E. it's 75% free)
"*": 1
uploadvolumefactor:
text: 1
title_phase1:
selector: div.group_info
remove: span.team_name, span:has(a[href^="torrents.php?action=download"]), div.tags, div.vote_controls, div.stats-content, .add_bookmark, img
remove: span.team_name, span:has(a[href^="torrents.php?action=download"]), div.tags, div.vote_controls, div.stats-content, .add_bookmark, img, .tl_free, .tl_notice
filters:
- name: replace
args: ["\n", " "]
- name: re_replace
args: ["\\s+", " "]
args: ["\\[(?:Concert|Film|Film d'animation|Spectacle|Série|Série d'animation|Documentaire)\\]", ""]
- name: replace
args: ["Blu-Ray Original", "Complete.BluRay"]
args: ["Blu-ray Original", "Complete.BluRay"]
- name: replace
args: ["Blu-Ray Remux", "Remux"]
args: ["Blu-ray Remux", "Remux"]
- name: replace
args: ["Blu-Ray Rip", "BluRay.Rip"]
args: ["Blu-ray Rip", "BluRay.Rip"]
- name: replace
args: ["mHD", "mHD.BluRay.Rip"]
- name: replace
args: ["/ DC", "/ Directors.Cut"]
- name: replace
args: ["/ VL", "/ Extended"]
- name: replace
args: ["/ RM", "/ Remastered"]
- name: replace
args: ["/ UC", "/ Uncut"]
- name: replace
args: ["/ ES", "/ Special.Edition"]
- name: replace
args: [" / Cust_sub", ""]
- name: replace
args: [" / Cust", ""]
- name: replace
args: ["/ UN", "/ Unrated"]
- name: replace
args: [" / Crit", ""]
- name: replace
args: [" / WAC", ""]
- name: replace
args: [" / MoC", ""]
- name: replace
args: [" / BFI", ""]
- name: replace
args: [" / MUET", ""]
- name: replace
args: ["/ Exc NF", "/ NF"]
- name: replace
args: ["/ Exc AMZ", "/ AMZ"]
- name: replace
args: ["/ Exc YOU", "/ YT"]
- name: replace
args: [" / ↓25%", ""]
- name: replace
args: [" / ↓50%", ""]
- name: replace
args: [" / ↓75%", ""]
- name: replace
args: [" / Free", ""]
- name: replace
args: [" / Complété!", ""]
- name: replace
args: [" / ", "."]
- name: re_replace
args: ["(?:\\]|\\/\\s)DC", ".Directors.Cut"]
- name: re_replace
args: ["(?:\\]|\\/\\s)VL", ".Extended"]
- name: re_replace
args: ["(?:\\]|\\/\\s)RM", ".Remastered"]
- name: re_replace
args: ["(?:\\]|\\/\\s)UC", ".Uncut"]
- name: re_replace
args: ["(?:\\]|\\/\\s)UR", ".Unrated"]
- name: re_replace
args: ["(?:\\]|\\/\\s)ES", ".Special.Edition"]
- name: re_replace
args: ["(?:\\]|\\/\\s)Crit", ".Criterion"]
- name: re_replace
args: ["(?:\\/ )?(?:Remplaçable|Complété|Bonus|Note Modo|[2-9]+ème partie|\\b(?:Cust(?:_sub)?|WAC|BFI|MUET)\\b)(?: \\/)?", ""]
- name: trim
- name: replace
args: [".VFF.VFQ.StFr.MULTI", ".MULTI.VFF.VFQ"]
- name: replace
args: [".VFF.VFQ.VO.StFr.MULTI", ".MULTI.VFF.VFQ"]
- name: replace
args: [".VFF.VFQ.VO.StFr", ".MULTI.VFF.VFQ"]
- name: replace
args: [".VFQ.VO.StFr", ".MULTI.VFQ"]
- name: replace
args: [".VO.VFI.StFr", ".MULTI"]
- name: replace
args: [".VO.VF?.StFr", ".MULTI"]
- name: replace
args: [".VFF.VO.StFr", ".MULTI.VFF"]
- name: replace
args: [".VOF.StFr", ".FRENCH"]
- name: replace
args: [".VFQ.StFr", ".FRENCH"]
- name: replace
args: [".VFF.StFr.MULTI", ".MULTI.VFF"]
- name: replace
args: [".VFF.StFr", ".FRENCH"]
- name: replace
args: [".VFI.MULTI", ".MULTI"]
- name: replace
args: [".VO.StFr", ".VOSTFR"]
- name: replace
args: [".VFQ.VO", ".MULTI.VFQ"]
- name: replace
args: [".VFF.VO", ".MULTI.VFF"]
- name: replace
args: [".VO.VF?.StFr", ".MULTI"]
- name: replace
args: [".VFI.StFr", ".FRENCH"]
- name: replace
args: [".VOF.MULTI", ".MULTI.FRENCH"]
- name: replace
args: [".VOF", ".FRENCH"]
- name: replace
args: [".VFQ.MULTI", ".MULTI.VFQ"]
- name: re_replace
args: ["[\\[\\]\\/\\s?.,:'!]+", "."]
- name: trim
args: "."
- name: re_replace
args: ["(?i)\\.VFF\\.VFQ\\.(?:MULTI|StFR(?:\\.MULTI)?|VO(?:\\.StFR)?)", ".MULTI.VF2"]
- name: re_replace
args: ["(?i)\\.VFF\\.(?:MULTI|StFR(?:\\.MULTI)?|VO(?:\\.StFR)?)", ".MULTI.VFF"]
- name: re_replace
args: ["(?i)\\.VFQ\\.(?:MULTI|StFR(?:\\.MULTI)?|VO(?:\\.StFR)?)", ".MULTI.VFQ"]
- name: re_replace
args: ["(?i)\\.VOQ\\.(?:MULTI|StFR(?:\\.MULTI)?|VO(?:\\.StFR)?)", ".MULTI.VOQ"]
- name: re_replace
args: ["(?i)\\.VFI\\.(?:MULTI|StFR(?:\\.MULTI)?|VO(?:\\.StFR)?)", ".MULTI.VFI"]
- name: re_replace
args: ["(?i)\\.VOF\\.(?:MULTI|StFR(?:\\.MULTI)?|VO(?:\\.StFR)?)", ".MULTI.VOF"]
- name: re_replace
args: ["(?i)\\.(?:VO\\.)?StFR", ".VOSTFR"]
- name: append
args: "{{ if .Result._release_group }}-{{ .Result._release_group }}{{ else }}{{ end }}"
title_vostfr:
@@ -303,15 +260,20 @@ search:
text: "{{ .Result.title_phase2 }}"
filters:
- name: re_replace
args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"]
args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR|VF2|VFF|VFQ|VOQ|VFI|VOF)))\\b", "{{ .Config.multilanguage }}"]
title:
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
description:
selector: div.group_info
minimumratio:
filters:
- name: replace
args: ["\n", " "]
- name: re_replace
args: ["\\s+", " "]
# global MR is 0.6 but torrents must be seeded for 3 days regardless of ratio
# minimumratio:
# text: 0.6
# minimumseedtime:
minimumseedtime:
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
# Gazelle

View File

@@ -88,8 +88,8 @@ search:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"
episodeNumber: "{{ .Query.Ep }}"
# seasonNumber: "{{ .Query.Season }}" # not supported
# episodeNumber: "{{ .Query.Ep }}" # not supported
imdbId: "{{ .Query.IMDBIDShort }}"
tmdbId: "{{ .Query.TMDBID }}"
tvdbId: "{{ .Query.TVDBID }}"
@@ -163,4 +163,4 @@ search:
minimumseedtime:
# 4 days (as seconds = 4 x 24 x 60 x 60)
text: 345600
# json UNIT3D 6.0.4
# json UNIT3D 6.0.4 (custom)

View File

@@ -85,8 +85,8 @@ search:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"
episodeNumber: "{{ .Query.Ep }}"
# seasonNumber: "{{ .Query.Season }}" # not supported
# episodeNumber: "{{ .Query.Ep }}" # not supported
imdbId: "{{ .Query.IMDBIDShort }}"
tmdbId: "{{ .Query.TMDBID }}"
tvdbId: "{{ .Query.TVDBID }}"
@@ -156,4 +156,4 @@ search:
text: 1
minimumratio:
text: 0.4
# json UNIT3D 6.4.1 (Custom)
# json UNIT3D 6.4.1 (custom)

View File

@@ -118,7 +118,13 @@ search:
selector: enclosure
attribute: url
date:
# Sat, 03 Jan 2026 01:27:58 GMT
selector: pubDate
filters:
- name: replace
args: ["GMT", "+00:00"]
- name: dateparse
args: "ddd, dd MMM yyyy HH:mm:ss zzz"
category:
selector: '[name="category"]'
attribute: value

View File

@@ -200,9 +200,10 @@ search:
True: 2 # double
uploadvolumefactor:
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
minimumratio:
text: 1.0
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
# 7 days (as seconds = 7 x 24 x 60 x 60)
text: 604800
# json UNIT3D 8.3.6 (custom)

View File

@@ -115,8 +115,8 @@ search:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"
episodeNumber: "{{ .Query.Ep }}"
# seasonNumber: "{{ .Query.Season }}" # not supported
# episodeNumber: "{{ .Query.Ep }}" # not supported
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"

View File

@@ -57,6 +57,10 @@ settings:
type: checkbox
label: Search freeleech only
default: false
- name: tmdbidonly
type: checkbox
label: Disable IMDB and TVDB ID search (only support TMDB ID) to potentially improve Sonarr and Radarr results
default: true
- name: single_file_release_use_filename
type: checkbox
label: Use filename as title for single file releases
@@ -104,9 +108,9 @@ search:
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"
episodeNumber: "{{ .Query.Ep }}"
imdbId: "{{ .Query.IMDBIDShort }}"
imdbId: "{{ if .Config.tmdbidonly }}{{ else }}{{ .Query.IMDBIDShort }}{{ end }}"
tmdbId: "{{ .Query.TMDBID }}"
tvdbId: "{{ .Query.TVDBID }}"
tvdbId: "{{ if .Config.tmdbidonly }}{{ else }}{{ .Query.TVDBID }}{{ end }}"
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
@@ -212,4 +216,4 @@ search:
minimumseedtime:
# 10 days (as seconds = 10 x 24 x 60 x 60)
text: 864000
# json UNIT3D 9.1.5
# json UNIT3D 9.1.5 (custom)

View File

@@ -80,8 +80,8 @@ search:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"
episodeNumber: "{{ .Query.Ep }}"
# seasonNumber: "{{ .Query.Season }}" # not supported
# episodeNumber: "{{ .Query.Ep }}" # not supported
imdbId: "{{ .Query.IMDBIDShort }}"
tmdbId: "{{ .Query.TMDBID }}"
tvdbId: "{{ .Query.TVDBID }}"
@@ -179,4 +179,4 @@ search:
minimumseedtime:
# 4 days (as seconds = 4 x 24 x 60 x 60)
text: 345600
# json UNIT3D 7.2.5
# json UNIT3D 7.2.5 (custom)

View File

@@ -113,8 +113,8 @@ search:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"
episodeNumber: "{{ .Query.Ep }}"
# seasonNumber: "{{ .Query.Season }}" # not supported
# episodeNumber: "{{ .Query.Ep }}" # not supported
imdbId: "{{ if .Config.tmdbidonly }}{{ else }}{{ .Query.IMDBIDShort }}{{ end }}"
tmdbId: "{{ .Query.TMDBID }}"
tvdbId: "{{ if .Config.tmdbidonly }}{{ else }}{{ .Query.TVDBID }}{{ end }}"

View File

@@ -77,8 +77,8 @@ search:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"
episodeNumber: "{{ .Query.Ep }}"
# seasonNumber: "{{ .Query.Season }}" # not supported
# episodeNumber: "{{ .Query.Ep }}" # not supported
imdbId: "{{ .Query.IMDBIDShort }}"
tmdbId: "{{ .Query.TMDBID }}"
tvdbId: "{{ .Query.TVDBID }}"
@@ -185,4 +185,4 @@ search:
minimumseedtime:
# 14 day (as seconds = 14 x 24 x 60 x 60)
text: 1209600
# json UNIT3D 8.1.3
# json UNIT3D 8.1.3 (custom)