--- 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 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: username type: text label: Username - name: password type: password label: Password - 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 FlareSolverr 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: 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 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