---
id: torrent9
name: Torrent9
description: "Torrent9 is a FRENCH Public site for TV / MOVIES / GENERAL"
language: fr-FR
type: public
encoding: UTF-8
followredirect: true
links:
- https://torrent9.to/
- https://www.torrent9.gg/
- https://torrent9.unblockninja.com/
legacylinks:
- http://www.torrent9.ec/
- http://www.torrent9.red/
- http://www.torrent9.bz/
- http://www.torrents9.pe/
- http://www.torrent9.cc/
- http://www.torrent9.pe/
- http://www.torrent9.blue/
- https://www.torrent9.blue/
- https://ww2.torrent9.blue/
- https://www.torrent9.rip/
- https://www.torrent9.ph/
- https://ww1.torrent9.ph/
- https://torrent9.ga/
- https://www.torrent9.uno/
- https://wvw.torrent9.uno/
- https://ww1.torrent9.uno/
- https://wvw.t9.pe/
- https://www4.torrent9.to/
- https://www.torrent9.cat/
- https://www.torrent09.uno/
- https://www.torrent9.pl/ # this is a proxy for torrent9clone
- https://torrent9.black-mirror.xyz/ # this is a proxy for torrent9clone
- https://torrent9.unblocked.casa/ # this is a proxy for torrent9clone
- https://torrent9.proxyportal.fun/ # this is a proxy for torrent9clone
- https://torrent9.uk-unblock.xyz/ # this is a proxy for torrent9clone
- https://torrent9.ind-unblock.xyz/ # this is a proxy for torrent9clone
- https://ww1.torrent9.is/
- https://ww1.torrent9.to/
- https://www.torrent9.is/
- https://torrent9.li/ # not a proxy for torrent9 or torrent9clone
- https://www.oxtorrent.me/ # http 522 Connection timed out
caps:
# dont forget to update the search fields category case block
categorymappings:
- {id: films, cat: Movies, desc: "Movies"}
- {id: series, cat: TV, desc: "TV"}
- {id: musique, cat: Audio, desc: "Music"}
- {id: ebook, cat: Books, desc: "Books"}
- {id: logiciels, cat: PC, desc: "Software"}
- {id: jeux-pc, cat: PC/Games, desc: "PC Games"}
- {id: jeux-consoles, cat: Console/XBox 360, desc: "Console Games"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- 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 with ENGLISH
default: false
- name: sort
type: select
label: Sort requested from site (Only works for searches with Keywords)
default: ".html"
options:
".html": best
".html,trie-date-d": created desc
".html,trie-date-a": created asc
".html,trie-seeds-d": seeders desc
".html,trie-seeds-a": seeders asc
".html,trie-poid-d": size desc
".html,trie-poid-a": size asc
".html,trie-nom-d": title desc
".html,trie-nom-a": title asc
- name: info_131681
type: info
label: About Torrent9 Categories
default: Torrent9 only returns category Movies in its Keywordless search results page.To pass your apps' indexer TEST you will need to include the 131681(Movies) category.
download:
selectors:
- selector: a[href^="magnet:?"]
attribute: href
search:
paths:
- path: "{{ if .Keywords }}/search_torrent/{{ .Keywords }}{{ .Config.sort }}{{ else }}/top_torrent.html{{ end }}"
keywordsfilters:
# if searching for season packs with S01 to saison 1 #9712
- name: re_replace
args: ["(?i)(S0)(\\d{1,2})$", "saison $2"]
- name: re_replace
args: ["(?i)(S)(\\d{1,3})$", "saison $2"]
- name: replace
args: [" ", "-"]
rows:
selector: table.table-striped > tbody > tr
filters:
- name: andmatch
fields:
category:
selector: td:nth-child(1) i
case:
i[class="fa fa-video-camera"]: films
i[class="fa fa-desktop"]: series
i[class="fa fa-tv"]: series
i[class="fa fa-music"]: musique
i[class="fa fa-gamepad"]: jeux-pc
i[class="fa fa-laptop"]: logiciels
i[class="fa fa-book"]: ebook
site_date:
selector: td:nth-child(1) a
filters:
# year is at the end of the title, so we get it and name it site_date
- name: regexp
args: "(19|20\\d{2})$"
title_phase1:
selector: td:nth-child(1) a
filters:
# now we put the date at the right place according scene naming rules using .Result.site_date
- name: re_replace
args: ["(?i)( FRENCH)", " {{ .Result.site_date }} FRENCH"]
- name: re_replace
args: ["(?i)( MULTI)", " {{ .Result.site_date }} MULTI"]
- name: re_replace
args: ["(?i)( TRUEFRENCH)", " {{ .Result.site_date }} TRUEFRENCH"]
- name: re_replace
args: ["(?i)( VOSTFR)", " {{ .Result.site_date }} VOSTFR"]
- name: re_replace
args: ["(?i)( SUBFRENCH)", " {{ .Result.site_date }} SUBFRENCH"]
# and we delete it at the end
- name: re_replace
args: ["(19|20\\d{2})$", ""]
title_multilang:
text: "{{ .Result.title_phase1 }}"
filters:
- name: re_replace
args: ["(?i)(\\smulti\\s)", " {{ .Config.multilanguage }} "]
title_phase2:
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
title_vostfr:
text: "{{ .Result.title_phase2 }}"
filters:
- name: re_replace
args: ["(?i)(\\svostfr\\s)", " ENGLISH "]
- name: re_replace
args: ["(?i)(\\ssubfrench\\s)", " ENGLISH "]
title:
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
details:
selector: td:nth-child(1) a
attribute: href
download:
selector: td:nth-child(1) a
attribute: href
date:
text: now
size:
selector: td:nth-child(2)
filters:
- name: replace
args: ["Ko", "KB"]
- name: replace
args: ["Mo", "MB"]
- name: replace
args: ["Go", "GB"]
- name: replace
args: ["To", "TB"]
seeders_optional:
selector: td:nth-child(3)
optional: true
seeders:
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
leechers_optional:
selector: td:nth-child(4)
optional: true
leechers:
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a