--- id: yggtorrent name: YGGtorrent description: "YGGTorrent is a FRENCH Semi-Private Torrent Tracker for 0DAY / GENERAL" language: fr-FR type: semi-private encoding: UTF-8 followredirect: true requestDelay: 2 links: - https://www3.yggtorrent.qa/ legacylinks: - 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/ - https://www5.yggtorrent.la/ - https://www5.yggtorrent.fi/ - https://yggtorrent.lol/ - https://www6.yggtorrent.lol/ - https://www3.yggtorrent.do/ - https://www3.yggtorrent.wtf/ caps: categorymappings: - {id: 2145, cat: TV, desc: "Film/Vidéo"} - {id: 2178, cat: Movies/Other, 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: Audio/Video, desc: "Film/Vidéo : Concert"} - {id: 2181, cat: TV/Documentary, 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/Sport, desc: "Film/Vidéo : Sport"} - {id: 2187, cat: TV/Other, 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/Other, desc: "Audio : Samples"} - {id: 2144, cat: PC, desc: "Application"} - {id: 2177, cat: PC/0day, desc: "Application : Autre"} - {id: 2176, cat: PC, desc: "Application : Formation"} - {id: 2171, cat: PC/ISO, desc: "Application : Linux"} - {id: 2172, cat: PC/Mac, desc: "Application : MacOS"} - {id: 2174, cat: PC/Mobile-Android, desc: "Application : Smartphone"} - {id: 2175, cat: PC/Mobile-Android, desc: "Application : Tablette"} - {id: 2173, cat: PC/0day, desc: "Application : Windows"} - {id: 2142, cat: PC/Games, desc: "Jeu vidéo"} - {id: 2167, cat: Console/Other, 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: Console/XBox One, desc: "Jeu vidéo : Microsoft"} - {id: 2163, cat: Console/Wii, desc: "Jeu vidéo : Nintendo"} - {id: 2165, cat: PC/Mobile-Android, desc: "Jeu vidéo : Smartphone"} - {id: 2164, cat: Console/PS4, desc: "Jeu vidéo : Sony"} - {id: 2166, cat: PC/Mobile-Android, desc: "Jeu vidéo : Tablette"} - {id: 2161, cat: PC/Games, desc: "Jeu vidéo : Windows"} - {id: 2140, cat: Books, desc: "eBook"} - {id: 2151, cat: Audio/Audiobook, desc: "eBook : Audio"} - {id: 2152, cat: Books/EBook, desc: "eBook : Bds"} - {id: 2153, cat: Books/Comics, desc: "eBook : Comics"} - {id: 2154, cat: Books/EBook, desc: "eBook : Livres"} - {id: 2155, cat: Books/Comics, desc: "eBook : Mangas"} - {id: 2156, cat: Books/Mags, desc: "eBook : Presse"} - {id: 2300, cat: Other, desc: "Nulled"} - {id: 2301, cat: Other, desc: "Nulled : Wordpress"} - {id: 2302, cat: Other, desc: "Nulled : Scripts PHP & CMS"} - {id: 2303, cat: Other, desc: "Nulled : Mobile"} - {id: 2304, cat: Other, desc: "Nulled : Divers"} - {id: 2200, cat: Other, desc: "Imprimante 3D"} - {id: 2201, cat: Other, desc: "Imprimante 3D : Objets"} - {id: 2202, cat: Other, desc: "Imprimante 3D : Personnages"} - {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: 2401, cat: XXX/Other, desc: "XXX : Ebooks"} - {id: 2189, cat: XXX, desc: "XXX : Films"} - {id: 2190, cat: XXX, desc: "XXX : Hentai"} - {id: 2191, cat: XXX/ImageSet, desc: "XXX : Images"} - {id: 2402, cat: XXX/Other, desc: "XXX : Jeux"} modes: search: [q] tv-search: [q, season, ep] movie-search: [q] music-search: [q] book-search: [q] allowrawsearch: true settings: - name: username type: text label: Username - name: password type: password label: Password - name: category type: select label: Category default: all options: all: "Tous" 2145: "Film/Vidéo" 2139: "Audio" 2144: "Application" 2142: "Jeu vidéo" 2140: "eBook" 2300: "Nulled" 2200: "Imprimante 3D" 2141: "Emulation" 2143: "GPS" 2188: "XXX" - name: subcategory type: select label: Sub-category default: all options: all: "Tous" 2178: "Film/Vidéo : Animation" 2179: "Film/Vidéo : Animation Série" 2180: "Film/Vidéo : Concert" 2181: "Film/Vidéo : Documentaire" 2182: "Film/Vidéo : Emission TV" 2183: "Film/Vidéo : Film" 2184: "Film/Vidéo : Série TV" 2185: "Film/Vidéo : Spectacle" 2186: "Film/Vidéo : Sport" 2187: "Film/Vidéo : Vidéo-clips" 2147: "Audio : Karaoké" 2148: "Audio : Musique" 2150: "Audio : Podcast Radio" 2149: "Audio : Samples" 2177: "Application : Autre" 2176: "Application : Formation" 2171: "Application : Linux" 2172: "Application : MacOS" 2174: "Application : Smartphone" 2175: "Application : Tablette" 2173: "Application : Windows" 2167: "Jeu vidéo : Autre" 2159: "Jeu vidéo : Linux" 2160: "Jeu vidéo : MacOS" 2162: "Jeu vidéo : Microsoft" 2163: "Jeu vidéo : Nintendo" 2165: "Jeu vidéo : Smartphone" 2164: "Jeu vidéo : Sony" 2166: "Jeu vidéo : Tablette" 2161: "Jeu vidéo : Windows" 2151: "eBook : Audio" 2152: "eBook : Bds" 2153: "eBook : Comics" 2154: "eBook : Livres" 2155: "eBook : Mangas" 2156: "eBook : Presse" 2301: "Nulled : Wordpress" 2302: "Nulled : Scripts PHP & CMS" 2303: "Nulled : Mobile" 2304: "Nulled : Divers" 2201: "Imprimante 3D : Objets" 2202: "Imprimante 3D : Personnages" 2157: "Emulation : Emulateurs" 2158: "Emulation : Roms" 2168: "GPS : Applications" 2169: "GPS : Cartes" 2170: "GPS : Divers" 2401: "XXX : Ebooks" 2189: "XXX : Films" 2190: "XXX : Hentai" 2191: "XXX : Images" 2402: "XXX : Jeux" - name: info_category type: info label: Category and Sub-category default: Only select a Category OR a Sub-category, leaving the other as Tous. - 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: filter_title type: checkbox label: Normalize release names by moving year after the title default: false - name: strip_season type: checkbox label: Strip season only (e.g. S01) from searches, as tracker does not support partial matches default: true - name: enhancedAnime type: checkbox label: Enhance Sonarr compatibility with anime by renaming episodes (xxx > Exxx). Can disturb movies search (e.g. Back To The Future 3 > Back To The Future E3). default: false - name: enhancedAnime4 type: checkbox label: Extend the Sonarr compatibility with anime up to 4 digits. This WILL break all searches and result titles which contain years. 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 Prowlarr may require FlareSolver added as a proxy in Prowlarr (Settings => Indexers) to access it. login: method: form path: / form: "#user-login" inputs: id: "{{ .Config.username }}" pass: "{{ .Config.password }}" ci_csrf_token: "" error: - selector: "#login_msg_pass[style=\"\"][style] > center" - selector: "#ban_msg_login[style=\"\"][style] > center" - selector: "#login_msg_mail[style=\"\"][style] > center" - selector: a[href$="/user/disabled"] message: # Compte Inactif selector: a[href$="/user/disabled"] strong filters: - name: append args: " - Dès que vous passez en dessous d'un ratio inférieur à 1, Votre compte devient inactif et le site vous coupe les téléchargements." test: path: / selector: div#top_panel:contains("Déconnexion") search: paths: - path: engine/search inputs: name: "{{ .Keywords }}" followredirect: true - path: engine/search inputs: $raw: "name={{ if .Keywords }}{{ re_replace .Keywords \"(?i)S0?(\\d{1,2})\" \"Saison $1\" }}{{ else }}&page=50{{ end }}" followredirect: true inputs: $raw: "{{ if eq .Config.subcategory \"all\" }}category={{ .Config.category }}{{ else }}sub_category={{ .Config.subcategory }}{{ end }}" do: search order: "{{ .Config.type }}" sort: "{{ .Config.sort }}" keywordsfilters: - name: re_replace # 1234 > E1234 args: ["\\b(\\d{4})\\b", "{{ if .Config.enhancedAnime4 }}E$1{{ else }}$1{{ end }}"] - name: re_replace # 123 > E123 args: ["\\b(\\d{2,3})\\b", "{{ if .Config.enhancedAnime }}E$1{{ else }}$1{{ end }}"] # fix date search and workaround for internal YGG issues - name: re_replace args: ["[\\\\\\-\\.\\/!\\s]+", " "] # strip season as site does not support partial matches - name: re_replace args: ["(?i)\\b(S\\d{1,3})\\b", "{{ if .Config.strip_season }}{{ else }}$1{{ end }}"] - name: trim # put each word in quotations to prevent exact phrase search - name: re_replace args: ["([^\\s]+)", "\"$1\""] 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: # Saison 1 Episode 2 > S01E02 - name: re_replace args: ["(?i)\\b(Saisons?[\\s\\.]*)(\\d{4}(?:[\\s\\.\\-aà]+\\d{4})?)([\\s\\.]*[EÉ]pisodes?[\\s\\.]*)(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)\\b", "{{ if .Config.enhancedAnime4 }}S$2E$4{{ else }}$1$2$3$4{{ end }}"] - name: re_replace args: ["(?i)\\bSaisons?[\\s\\.]*(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)[\\s\\.]*[EÉ]pisodes?[\\s\\.]*(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)\\b", "S$1E$2"] # Saison 1 > S01 - name: re_replace args: ["(?i)\\b(Saisons?[\\s\\.]*)(\\d{4}(?:[\\s\\.\\-aà]+\\d{4})?)\\b", "{{ if .Config.enhancedAnime4 }}S$2{{ else }}$1$2{{ end }}"] - name: re_replace args: ["(?i)\\bSaisons?[\\s\\.]*(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)\\b", "S$1"] # Episode 1 > E01 - name: re_replace args: ["(?i)\\b([EÉ]pisodes?[\\s\\.]*)(\\d{4}(?:[\\s\\.\\-aà]+\\d{4})?)\\b", "{{ if .Config.enhancedAnime4 }}S$2{{ else }}$1$2{{ end }}"] - name: re_replace args: ["(?i)\\b[EÉ]pisodes?[\\s\\.]*(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)\\b", "S$1"] # S1 à 2 > S1-2 - name: re_replace args: ["(?i)\\b(S?\\d*[SE])(\\d{4})([\\s\\.\\-aà]+)(\\d{4})\\b", "{{ if .Config.enhancedAnime4 }}$1$2-$4{{ else }}$1$2$3$4{{ end }}"] - name: re_replace args: ["(?i)\\b(S?\\d*[SE])(\\d{1,3})[\\s\\.\\-aà]+(\\d{1,3})\\b", "$1$2-$3"] # Replace French date dd-mm-yyyy to yyyy.mm.dd - name: re_replace args: ["\\b(\\d{2})[\\-_\\.](\\d{2})[\\-_\\.](\\d{4})\\b", "$3.$2.$1"] 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: trim - name: re_replace args: ["(?i)(.\\b(mkv|avi|divx|xvid|mp4)\\b)$", ""] - name: re_replace args: ["(\\s+)", " "] - name: trim title_phase1: text: "{{ if .Config.filter_title }}{{ .Result.title_filtered }}{{ else }}{{ .Result.title_normal }}{{ end }}" 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 }}" filters: - name: re_replace args: ["\\b(\\d{4})\\b", "{{ if .Config.enhancedAnime4 }}E$1{{ else }}$1{{ end }}"] - name: re_replace args: ["\\b(\\d{2,3})\\b", "{{ if .Config.enhancedAnime }}E$1{{ else }}$1{{ end }}"] details: selector: td:nth-child(2) > a attribute: href category: selector: td:nth-child(1) > div.hidden download: text: "/engine/download_torrent?id={{ .Result._id }}" date: # unix selector: td:nth-child(5) > div.hidden size: selector: td:nth-child(6) filters: - name: replace args: ["o", "B"] grabs: selector: td:nth-child(7) seeders: selector: td:nth-child(8) leechers: selector: td:nth-child(9) downloadvolumefactor: text: 1 uploadvolumefactor: text: 1 # engine n/a