---
id: zetorrents
name: zetorrents
description: "zetorrents is a FRENCH Public site for MOVIES / TV / GENERAL"
language: fr-FR
type: public
encoding: UTF-8
# to fetch current domain use https://www.protege-torrent.com/Zetorrents
links:
  - https://www.zetorrents.tw/
legacylinks:
  - https://www.protege-torrent.com/
  - https://vww.zetorrents.io/
  - https://wwv.zetorrents.io/
  - https://ww1.zetorrents.io/
  - https://www.zetorrents.org/
  - https://wvw.zetorrents.org/
  - https://www.zetorrents.cc/
  - https://www.zetorrents.tv/
  - https://www.zetorrents.bz/
  - https://www.zetorrents.nl/
  - https://www.zetorrents.biz/
  - https://www.zetorrents.ch/
  - https://zetorrents.mrunblock.bond/
  - https://zetorrents.nocensor.cloud/
  - https://www.zetorrents.pw/

caps:
  categories:
    Other: Other

  modes:
    search: [q]
    tv-search: [q, season, ep]
    movie-search: [q]
  allowrawsearch: true

settings:
  - name: info_category_8000
    type: info
    label: About zetorrents Categories
    default: zetorrents does not return categories in its search results. To sync to your apps, include 8000(Other) in your Apps' Sync Categories.
  - 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

download:
  infohash:
    hash:
      selector: a[href^="/get_torrent/"]
      attribute: href
      filters:
        - name: regexp
          args: ([A-F|a-f|0-9]{40})
    title:
      selector: div.tabs-title
      filters:
        - name: trim
        - name: validfilename

search:
  paths:
    - path: "{{ if .Keywords }}recherche/{{ .Keywords }}{{ else }}{{ end }}"
  keywordsfilters:
    # if searching for season packs swith 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"]

  rows:
    selector: table.table > tbody > tr:has(a[href^="/torrent/"])

  fields:
    category:
      text: Other
    title_phase1:
      selector: a[href^="/torrent/"]
      filters:
        - name: replace
          args: ["WEBRIP", "WEBDL"]
        - name: re_replace
          args: ["(?i)\\b(FRENCH|MULTI|TRUEFRENCH|VOSTFR|SUBFRENCH)\\b(.+?)(\\b(19|20\\d{2})\\b)$", "$3 $1$2"]
    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)))\\b", "{{ .Config.multilanguage }}"]
    title:
      text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
    details:
      selector: a[href^="/torrent/"]
      attribute: href
    download:
      selector: a[href^="/torrent/"]
      attribute: href
    date:
      text: now
    size:
      selector: td:nth-child(2)
    seeders:
      selector: td:nth-child(3)
    leechers:
      selector: td:nth-child(4)
    downloadvolumefactor:
      text: 0
    uploadvolumefactor:
      text: 1
# engine n/a
