---
id: yggcookie
name: YGGcookie
description: "YGGTorrent is a FRENCH Semi-Private Torrent Tracker for 0DAY / GENERAL"
language: fr-FR
type: semi-private
encoding: UTF-8
followredirect: true
links:
  - https://www5.yggtorrent.la/
legacylinks:
  - https://yggtorrent.com/
  - https://ww1.yggtorrent.com/
  - https://yggtorrent.is/
  - https://www.yggtorrent.is/
  - https://ww1.yggtorrent.is/
  - https://ww2.yggtorrent.is/
  - https://ww3.yggtorrent.is/
  - https://ww4.yggtorrent.is/
  - https://yggtorrent.to/
  - https://www3.yggtorrent.to/
  - https://www6.yggtorrent.to/
  - https://www8.yggtorrent.to/
  - https://www9.yggtorrent.to/
  - https://ygg.to/
  - https://www.ygg.to/
  - https://ww3.yggtorrent.gg/
  - http://www2.yggtorrent.gg/
  - https://www.yggtorrent.gg/
  - https://www.yggtorrent.ch/
  - https://www.yggtorrent.pe/
  - https://www3.yggtorrent.pe/
  - https://www5.yggtorrent.pe/
  - https://yggtorrent.ws/
  - https://yggtorrent.se/
  - https://www.yggtorrent.si/
  - https://ww3.yggtorrent.si/
  - https://yggtorrent.si/
  - http://www2.yggtorrent.si/
  - https://www2.yggtorrent.si/
  - https://www.yggtorrent.li/
  - https://www4.yggtorrent.li/
  - https://www3.yggtorrent.nz/
  - https://www3.yggtorrent.re/
  - https://www3.yggtorrent.la/

caps:
  categorymappings:
    - {id: 2145, cat: TV, desc: "Film/Vidéo"}
    - {id: 2178, cat: Movies, desc: "Film/Vidéo : Animation"} # changed to movies, see #3553
    - {id: 2179, cat: TV/Anime, desc: "Film/Vidéo : Animation Série"}
    - {id: 2180, cat: TV, desc: "Film/Vidéo : Concert"}
    - {id: 2181, cat: TV, desc: "Film/Vidéo : Documentaire"}
    - {id: 2182, cat: TV, desc: "Film/Vidéo : Emission TV"}
    - {id: 2183, cat: Movies, desc: "Film/Vidéo : Film"}
    - {id: 2184, cat: TV, desc: "Film/Vidéo : Série TV"}
    - {id: 2185, cat: TV, desc: "Film/Vidéo : Spectacle"}
    - {id: 2186, cat: TV, desc: "Film/Vidéo : Sport"}
    - {id: 2187, cat: TV, desc: "Film/Vidéo : Vidéo-clips"}
    - {id: 2139, cat: Audio, desc: "Audio"}
    - {id: 2147, cat: Audio, desc: "Audio : Karaoké"}
    - {id: 2148, cat: Audio, desc: "Audio : Musique"}
    - {id: 2150, cat: Audio, desc: "Audio : Podcast Radio"}
    - {id: 2149, cat: Audio, desc: "Audio : Samples"}
    - {id: 2144, cat: PC, desc: "Application"}
    - {id: 2177, cat: PC, desc: "Application : Autre"}
    - {id: 2176, cat: PC, desc: "Application : Formation"}
    - {id: 2171, cat: PC, desc: "Application : Linux"}
    - {id: 2172, cat: PC, desc: "Application : MacOS"}
    - {id: 2174, cat: PC, desc: "Application : Smartphone"}
    - {id: 2175, cat: PC, desc: "Application : Tablette"}
    - {id: 2173, cat: PC, desc: "Application : Windows"}
    - {id: 2142, cat: PC/Games, desc: "Jeu vidéo"}
    - {id: 2167, cat: PC/Games, desc: "Jeu vidéo : Autre"}
    - {id: 2159, cat: PC/Games, desc: "Jeu vidéo : Linux"}
    - {id: 2160, cat: PC/Games, desc: "Jeu vidéo : MacOS"}
    - {id: 2162, cat: PC/Games, desc: "Jeu vidéo : Microsoft"}
    - {id: 2163, cat: PC/Games, desc: "Jeu vidéo : Nintendo"}
    - {id: 2165, cat: PC/Games, desc: "Jeu vidéo : Smartphone"}
    - {id: 2164, cat: PC/Games, desc: "Jeu vidéo : Sony"}
    - {id: 2166, cat: PC/Games, desc: "Jeu vidéo : Tablette"}
    - {id: 2161, cat: PC/Games, desc: "Jeu vidéo : Windows"}
    - {id: 2140, cat: Books, desc: "eBook"}
    - {id: 2151, cat: Books, desc: "eBook : Audio"}
    - {id: 2152, cat: Books, desc: "eBook : Bds"}
    - {id: 2153, cat: Books, desc: "eBook : Comics"}
    - {id: 2154, cat: Books, desc: "eBook : Livres"}
    - {id: 2155, cat: Books, desc: "eBook : Mangas"}
    - {id: 2156, cat: Books, desc: "eBook : Presse"}
    - {id: 2141, cat: Other, desc: "Emulation"}
    - {id: 2157, cat: Other, desc: "Emulation : Emulateurs"}
    - {id: 2158, cat: Other, desc: "Emulation : Roms"}
    - {id: 2143, cat: Other, desc: "GPS"}
    - {id: 2168, cat: Other, desc: "GPS : Applications"}
    - {id: 2169, cat: Other, desc: "GPS : Cartes"}
    - {id: 2170, cat: Other, desc: "GPS : Divers"}
    - {id: 2188, cat: XXX, desc: "XXX"}
    - {id: 2189, cat: XXX, desc: "XXX : Films"}
    - {id: 2190, cat: XXX, desc: "XXX : Hentai"}
    - {id: 2191, cat: XXX, desc: "XXX : Images"}

  modes:
    search: [q]
    tv-search: [q, season, ep]
    movie-search: [q]
    music-search: [q]
    book-search: [q]

settings:
  - name: cookie
    type: text
    label: Cookie
  - name: info_cookie
    type: info
    label: How to get the Cookie
    default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
  - name: useragent
    type: text
    label: User-Agent
  - name: info_useragent
    type: info
    label: How to get the User-Agent
    default: "<ol><li>From the same place you fetched the cookie,<li>Find <b>'user-agent:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole user-agent string <i>(everything after 'user-agent: ')</i> and <b>Paste</b> here.</ol>"
  - name: category
    type: select
    label: Catégorie
    default: all
    options:
      all: Tous
      2145: Film/Vidéo
      2139: Audio
      2144: Application
      2142: Jeu vidéo
      2140: eBook
      2141: Emulation
      2143: GPS
      2188: XXX
  - name: filter_title
    type: checkbox
    label: Try to normalize releases names by moving year after the title
    default: false
  - 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: enhancedAnime
    type: checkbox
    label: Enhance sonarr compatibility with anime by renaming episode (xxx to exxx). Works only if episode is at the end of the query. Can disturb movies search. (back to the future 3 -> back to the future e3)
    default: false
  - name: sort
    type: select
    label: Sort requested from site
    default: publish_date
    options:
      publish_date: created
      seed: seeders
      size: size
      name: title
  - name: type
    type: select
    label: Order requested from site
    default: desc
    options:
      desc: desc
      asc: asc
  - name: flaresolverr
    type: info
    label: FlareSolverr
    default: This site may use Cloudflare DDoS Protection, therefore Jackett requires <a href="https://github.com/Jackett/Jackett#configuring-flaresolverr" target="_blank">FlareSolverr</a> to access it.

login:
  method: cookie
  inputs:
    cookie: "{{ .Config.cookie }}"

search:
  keywordsfilters:
    # Hack For anime Search ! example : replace sonarr search of
    # One Punch Man S2 10 OR One Punch Man S2 2
    # BY
    # One Punch Man S02E10 OR One Punch Man S02E02
    - name: re_replace # S 1-9 & EP >= 10
      args: ["(?i)(.*)s([1-9])\\s(\\d{2,3})$", "$1 S0$2E$3"]
    - name: re_replace # S 1-9 & EP 1-9
      args: ["(?i)(.*)s([1-9])\\s(\\d{1})$", "$1 S0$2E0$3"]
    - name: re_replace # S >= 10 & EP >= 10
      args: ["(?i)(.*)s([1-9][0-9])\\s(\\d{2,3})$", "$1 S0$2E$3"]
    - name: re_replace # S >= 10 & EP 1-9
      args: ["(?i)(.*)s([1-9][0-9])\\s(\\d{1})$", "$1 S0$2E0$3"]
    - name: re_replace # Full season S 1-9
      args: ["(?i)(.*)s([1-9])$", "$1 S0$2"]
    - name: re_replace # Full season S >= 10
      args: ["(?i)(.*)s([1-9][0-9])$", "$1 S$2"]
    - name: re_replace # episode number at the end "123" to "E123"
      args: ["(.*)(\\.|\\s|\\-)(\\d{2,3})(\\.|\\s|\\-*)(.*)", "{{ if .Config.enhancedAnime }}$1 E$3 $5{{ else }}$1$2$3$4$5{{ end }}"]
    # END ANIME HACK
    - name: replace
      args: ["\"", ""]
    - name: replace
      args: ["  ", " "]
    - name: trim
    # put each word in quotations to prevent exact phrase search
    - name: re_replace
      args: ["(\\w+)", "\"$1\""]
  paths:
    - path: "engine/search?category={{ .Config.category }}&name={{ .Keywords }}&description=&file=&uploader=&sub_category=&do=search&order={{ .Config.type }}&sort={{ .Config.sort }}"
      followredirect: true
    # Saison Word
    - path: "engine/search?category={{ .Config.category }}&name={{ if .Keywords }}{{ re_replace .Keywords \"[sS]0(\\d{1,2})\"  \"Saison.$1\"}}{{ else }}&page=50{{ end }}&description=&file=&uploader=&sub_category=&do=search&order={{ .Config.type }}&sort={{ .Config.sort }}"
      followredirect: true

  headers:
    User-Agent: ["{{ .Config.useragent }}"]

  rows:
    selector: table.table > tbody > tr

  fields:
    _id:
      selector: td:nth-child(2) > a
      attribute: href
      filters:
        - name: regexp
          args: "/(\\d+)-"
    title_normal:
      selector: td:nth-child(2) > a
      filters:
        - name: re_replace # S 1-9 & EP >= 10
          args: ["(?i)(.*)s([1-9])\\s(\\d{2,3})$", "$1 S0$2E$3"]
        - name: re_replace # S 1-9 & EP 1-9
          args: ["(?i)(.*)s([1-9])\\s(\\d{1})$", "$1 S0$2E0$3"]
        - name: re_replace # S >= 10 & EP >= 10
          args: ["(?i)(.*)s([1-9][0-9])\\s(\\d{2,3})$", "$1 S0$2E$3"]
        - name: re_replace # S >= 10 & EP 1-9
          args: ["(?i)(.*)s([1-9][0-9])\\s(\\d{1})$", "$1 S0$2E0$3"]
        - name: re_replace # Full season S 1-9
          args: ["(?i)(.*)s([1-9])$", "$1 S0$2"]
        - name: re_replace # Full season S >= 10
          args: ["(?i)(.*)s([1-9][0-9])$", "$1 S$2"]
        - name: re_replace
          args: ["(?i)(multi)", "MULTi"]
        # Replace French Saison by Season
        - name: re_replace
          args: ["(?i)(saison|saison )([1-9])", "S0$2"]
        - name: re_replace
          args: ["(?i)(saison|saison )(\\d{1,4})", "S$2"]
    title_filtered:
      text: "{{ .Result.title_normal }}"
      filters:
        - name: re_replace
          args: ["(?i)^(?:(.+?)((?:[\\.\\-\\s_\\[]+(?:imax|(?:dvd|bd|tv)(?:rip|scr)|bluray(?:\\-?rip)?|720\\s*p?|1080\\s*p?|vof?|vost(?:fr)?|multi|vf(?:f|q)?[1-3]?|(?:true)?french|eng?)[\\.\\-\\s_\\]]*)*)([\\(\\[]?(?:20|1[7-9])\\d{2}[\\)\\]]?)(.*)$|(.*))$", "$1 $3 $2 $4 $5"]
        - name: replace
          args: [".", " "]
        - name: trim
        - name: re_replace
          args: ["(?i)\\s(mkv|avi|divx|xvid|mp4)$", ""]
        - name: re_replace
          args: ["(\\s{2,5})", " "]
        - name: trim
    title_phase1:
      text: "{{ if .Config.filter_title }}{{ .Result.title_filtered }}{{ else }}{{ .Result.title_normal }}{{ end }}"
    title_multilang:
      text: "{{ .Result.title_phase1 }}"
      filters:
        - name: re_replace
          args: ["(?i)[\\.\\s\\[\\-]multi[\\.\\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)[\\.\\s\\[\\-]vostfr[\\.\\s\\]\\-]", ".ENGLISH."]
        - name: re_replace
          args: ["(?i)[\\.\\s\\[\\-]subfrench[\\.\\s\\]\\-]", ".ENGLISH."]
    title_phase3:
      text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
    title_anime:
      text: "{{ .Result.title_phase3 }}"
      filters:
        # Sonarr need E in front of 3 digit number or else it thinks it is episode
        # S01E10 for number 110 for example ==> enhancedAnime
        - name: re_replace
          args: ["(.*)(\\.|\\s|\\-)(\\d{2,3})(\\.|\\s|\\-)(.*)", "$1 E$3 $5"]
    title:
      text: "{{ if .Config.enhancedAnime }}{{ .Result.title_anime }}{{ else }}{{ .Result.title_phase3 }}{{ end }}"
    details:
      selector: td:nth-child(2) > a
      attribute: href
    category:
      # changed the catid into and hidden div as of last tracker problem
      selector: ":nth-child(1) > div.hidden"
    download:
      text: "{{ .Config.sitelink }}engine/download_torrent?id={{ .Result._id }}"
    date:
      selector: td:nth-child(5)
      filters:
        - name: replace
          args: ["il y a ", ""]
        - name: replace
          args: [" jours", " days"]
        - name: replace
          args: [" jour", " day"]
        - name: replace
          args: [" heures", " hours"]
        - name: replace
          args: [" heure", " hour"]
        - name: replace
          args: [" semaines", " weeks"]
        - name: replace
          args: [" semaine", " week"]
        - name: replace
          args: [" mois", " month"]
        - name: replace
          args: [" ans", " years"]
        - name: replace
          args: [" an", " year"]
        - name: append
          args: " ago"
    size:
      selector: td:nth-child(6)
      filters:
        - name: replace
          args: ["o", "B"]
    grabs:
      selector: td:nth-child(7)
    seeders_optional:
      selector: td:nth-child(8)
      optional: true
    seeders:
      text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
    leechers_optional:
      selector: td:nth-child(9)
      optional: true
    leechers:
      text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
    downloadvolumefactor:
      text: 1
    uploadvolumefactor:
      text: 1
# engine n/a
