YggDiff

Created Diff never expires
13 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
143 lines
78 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
208 lines
---
---
id: ygg-api
id: yggapi
name: Ygg API
name: YggAPI
description: Indexeur non officiel pour ygg.re MOVIES / TV
description: Indexeur non-officiel pour YggTorrent (YGG) - MOVIES / TV
language: fr-FR
language: fr-FR
type: private
type: private
encoding: UTF-8
encoding: UTF-8
testlinktorrent: false
testlinktorrent: false
links:
links:
- https://yggapi.eu/
- https://yggapi.eu/

caps:
caps:
categorymappings:
categorymappings:
- {id: 2178, cat: Movies/Other, desc: "Films d’animation"}
- {id: 2178, cat: Movies/Other, desc: "Films d'animation"}
- {id: 2183, cat: Movies, desc: "Films"}
- {id: 2183, cat: Movies, desc: "Films"}
- {id: 2145, cat: TV, desc: "Film/Vidéo"}
- {id: 2145, cat: TV, desc: "Film/Vidéo"}
- {id: 2179, cat: TV/Anime, desc: "Séries d’animation / Mangas"}
- {id: 2179, cat: TV/Anime, desc: "Séries d'animation / Mangas"}
- {id: 2181, cat: TV/Documentary, desc: "Film/Vidéo : Documentaire"}
- {id: 2181, cat: TV/Documentary, desc: "Film/Vidéo : Documentaire"}
- {id: 2182, cat: TV, desc: "Film/Vidéo : Emission TV"}
- {id: 2182, cat: TV, desc: "Film/Vidéo : Emission TV"}
- {id: 2184, cat: TV, desc: "Séries"}
- {id: 2184, cat: TV, desc: "Séries"}
- {id: 2185, cat: TV, desc: "Film/Vidéo : Spectacle"}
- {id: 2185, cat: TV, desc: "Film/Vidéo : Spectacle"}
- {id: 2186, cat: TV/Sport, desc: "Film/Vidéo : Sport"}
- {id: 2186, cat: TV/Sport, desc: "Film/Vidéo : Sport"}
- {id: 2187, cat: TV/Other, desc: "Film/Vidéo : Vidéo-clips"}
- {id: 2187, cat: TV/Other, desc: "Film/Vidéo : Vidéo-clips"}
- {id: 2139, cat: Audio, desc: "Audio"}
- {id: 2139, cat: Audio, desc: "Audio"}
- {id: 2147, cat: Audio, desc: "Audio : Karaoké"}
- {id: 2147, cat: Audio, desc: "Audio : Karaoké"}
- {id: 2148, cat: Audio, desc: "Audio : Musique"}
- {id: 2148, cat: Audio, desc: "Audio : Musique"}
- {id: 2149, cat: Audio/Other, desc: "Audio : Samples"}
- {id: 2149, cat: Audio/Other, desc: "Audio : Samples"}
- {id: 2150, cat: Audio, desc: "Audio : Podcast Radio"}
- {id: 2150, cat: Audio, desc: "Audio : Podcast Radio"}
- {id: 2151, cat: Audio/Audiobook, desc: "eBook : Audio"}
- {id: 2151, cat: Audio/Audiobook, desc: "eBook : Audio"}
- {id: 2180, cat: Audio/Video, desc: "Film/Vidéo : Concert"}
- {id: 2180, cat: Audio/Video, desc: "Film/Vidéo : Concert"}
- {id: 2140, cat: Books, desc: "eBook"}
- {id: 2140, cat: Books, desc: "eBook"}
- {id: 2152, cat: Books/EBook, desc: "eBook : Bds"}
- {id: 2152, cat: Books/EBook, desc: "eBook : Bds"}
- {id: 2153, cat: Books/Comics, desc: "eBook : Comics"}
- {id: 2153, cat: Books/Comics, desc: "eBook : Comics"}
- {id: 2154, cat: Books/EBook, desc: "eBook : Livres"}
- {id: 2154, cat: Books/EBook, desc: "eBook : Livres"}
- {id: 2155, cat: Books/Comics, desc: "eBook : Mangas"}
- {id: 2155, cat: Books/Comics, desc: "eBook : Mangas"}
- {id: 2156, cat: Books/Mags, desc: "eBook : Presse"}
- {id: 2156, cat: Books/Mags, desc: "eBook : Presse"}

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

settings:
settings:
- name: passkey
- name: passkey
type: password
type: password
label: Passkey
label: Passkey
- name: info_key
- name: info_key
type: info
type: info
label: About your passkey
label: About your passkey
default: "You will find your passkey on the <a href=\"https://www.ygg.re/user/account\" target=\"_blank\">YGG</a> account page."
default: "You will find your passkey on the <a href=\"https://www.yggtorrent.top/user/account\" target=\"_blank\">YGG</a> account page."
- name: sort
- name: sort
type: select
type: select
label: Sort requested from site
label: Sort requested from site
default: uploaded_at
default: uploaded_at
options:
options:
uploaded_at: publish_date
uploaded_at: publish_date
seeders: seeders
seeders: seeders
downloads: downloads
downloads: downloads
- name: multilang
- name: multilang
type: checkbox
type: checkbox
label: Replace MULTi by another language in release name
label: Replace MULTi by another language in release name
default: false
default: false
- name: multilanguage
- name: multilanguage
type: select
type: select
label: Replace MULTi by this language
label: Replace MULTi by this language
default: FRENCH
default: FRENCH
options:
options:
FRENCH: FRENCH
FRENCH: FRENCH
MULTi.FRENCH: MULTi.FRENCH
MULTi.FRENCH: MULTi.FRENCH
ENGLISH: ENGLISH
ENGLISH: ENGLISH
MULTi.ENGLISH: MULTi.ENGLISH
MULTi.ENGLISH: MULTi.ENGLISH
VOSTFR: VOSTFR
VOSTFR: VOSTFR
MULTi.VOSTFR: MULTi.VOSTFR
MULTi.VOSTFR: MULTi.VOSTFR
- name: strip_season
type: checkbox
label: Strip season-only (e.g. S01) from searches, as tracker does not support partial matches
default: true
- name: tracker_domain
- name: tracker_domain
type: select
type: select
label: Domaine du tracker à utiliser
label: Domaine du tracker à utiliser
default: tracker.p2p-world.net
default: tracker.p2p-world.net
options:
options:
tracker.p2p-world.net: tracker.p2p-world.net
tracker.p2p-world.net: tracker.p2p-world.net
connect.maxp2p.org: connect.maxp2p.org
connect.maxp2p.org: connect.maxp2p.org
- name: info_downloads
- name: info_downloads
type: info
type: info
label: About missing Downloads
label: About missing Downloads
default: "If the torrent has no seeder and no leecher then the torrent file may be missing and download may fail."
default: "If the torrent has no seeder and no leecher then the torrent file may be missing and download may fail."

search:
search:
paths:
paths:
- path: torrents
- path: torrents
response:
response:
type: json
type: json
inputs:
page: 1
- path: torrents
response:
type: json
inputs:
page: 2
- path: torrents
response:
type: json
inputs:
page: 3
- path: torrents
response:
type: json
inputs:
page: 4
- path: torrents
response:
type: json
inputs:
page: 5
- path: torrents
response:
type: json
inputs:
page: 6
- path: torrents
response:
type: json
inputs:
page: 7
- path: torrents
response:
type: json
inputs:
page: 8
- path: torrents
response:
type: json
inputs:
page: 9
- path: torrents
response:
type: json
inputs:
page: 10
inputs:
inputs:
$raw: "{{ range .Categories }}&category_id={{.}}{{end}}"
$raw: "{{ range .Categories }}&category_id={{.}}{{end}}"
q: "{{ .Keywords }}"
q: "{{ .Keywords }}"
page: 1
per_page: 100
per_page: 100
order_by: "{{ .Config.sort }}"
order_by: "{{ .Config.sort }}"

# https://github.com/Prowlarr/Indexers/blob/953aa766ef67c782f5aab1b563ce180f49eb9ea5/definitions/v10/yggtorrent.yml#L277
keywordsfilters:
- name: trim
# fix date search and workaround for internal YGG issues
- name: re_replace
args: ["[\\\\\\-\\.\\/!\\s]+", " "]
# strip season-only as tracker does not support partial matches
- name: re_replace
args: ["(?i)\\b(S\\d{1,3})\\b", "{{ if .Config.strip_season }}{{ else }}$1{{ end }}"]
# put each word in quotations to prevent exact phrase search
- name: re_replace
args: ["([^\\s]+)", "\"$1\""]

rows:
rows:
selector: $
selector: $
missingAttributeEqualsNoResults: true
missingAttributeEqualsNoResults: true

fields:
fields:
category:
category:
selector: category_id
selector: category_id
title_normal:
title_normal:
selector: title
selector: title
title_multilang:
title_multilang:
text: "{{ .Result.title_normal }}"
text: "{{ .Result.title_normal }}"
filters:
filters:
- name: re_replace
- name: re_replace
args: ["(?i)[\\.](MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))[\\.]", ".{{ .Config.multilanguage }}."]
args: ["(?i)[\\.](MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))[\\.]", ".{{ .Config.multilanguage }}."]
title:
title:
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_normal }}{{ end }}"
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_normal }}{{ end }}"
_id:
_id:
selector: id
selector: id
details:
details:
text: "torrent/{{ .Result._id }}"
text: "torrent/{{ .Result._id }}"
download:
download:
text: "torrent/{{ .Result._id }}/download?passkey={{ .Config.passkey }}&tracker_domain={{ .Config.tracker_domain }}"
text: "torrent/{{ .Result._id }}/download?passkey={{ .Config.passkey }}&tracker_domain={{ .Config.tracker_domain }}"
year:
year:
selector: title
selector: title
filters:
filters:
- name: regexp
- name: regexp
args: (\b(19|20)\d{2}\b)
args: (\b(19|20)\d{2}\b)
size:
size:
selector: size
selector: size
seeders:
seeders:
selector: seeders
selector: seeders
leechers:
leechers:
selector: leechers
selector: leechers
grabs:
grabs:
selector: downloads
selector: downloads
optional: true
optional: true
default: 0
default: 0
date:
date:
# unix
# unix
selector: uploaded_at
selector: uploaded_at
downloadvolumefactor:
downloadvolumefactor:
text: 1
text: 1
uploadvolumefactor:
uploadvolumefactor:
text: 1
text: 1

# JSON 1.0.0
# JSON 1.0.0