Skip to content

Instantly share code, notes, and snippets.

@Clemv95
Forked from LimeDrive/ygg-api.yml
Last active August 2, 2025 22:26
Show Gist options
  • Save Clemv95/8bfded23ef23ec78f6678896f42a2b60 to your computer and use it in GitHub Desktop.
Save Clemv95/8bfded23ef23ec78f6678896f42a2b60 to your computer and use it in GitHub Desktop.
Indexeur ygg-api pour jackett / prowlarr
---
id: yggapi
name: YggAPI
description: Indexeur non-officiel pour YggTorrent (YGG) - MOVIES / TV
language: fr-FR
type: private
encoding: UTF-8
testlinktorrent: false
links:
- https://yggapi.eu/
caps:
categorymappings:
- {id: 2178, cat: Movies/Other, desc: "Films d'animation"}
- {id: 2183, cat: Movies, desc: "Films"}
- {id: 2145, cat: TV, desc: "Film/Vidéo"}
- {id: 2179, cat: TV/Anime, desc: "Séries d'animation / Mangas"}
- {id: 2181, cat: TV/Documentary, desc: "Film/Vidéo : Documentaire"}
- {id: 2182, cat: TV, desc: "Film/Vidéo : Emission TV"}
- {id: 2184, cat: TV, desc: "Séries"}
- {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: 2149, cat: Audio/Other, desc: "Audio : Samples"}
- {id: 2150, cat: Audio, desc: "Audio : Podcast Radio"}
- {id: 2151, cat: Audio/Audiobook, desc: "eBook : Audio"}
- {id: 2180, cat: Audio/Video, desc: "Film/Vidéo : Concert"}
- {id: 2140, cat: Books, desc: "eBook"}
- {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"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q, year]
allowrawsearch: true
settings:
- name: website_domain
type: text
label: YGG website domain
default: www.yggtorrent.top
- name: passkey
type: password
label: Passkey
- name: info_key
type: info
label: About your passkey
default: "You will find your passkey on the <a href=\"https://www.yggtorrent.top/user/account\" target=\"_blank\">YGG</a> account page."
- name: sort
type: select
label: Sort requested from site
default: uploaded_at
options:
uploaded_at: publish_date
seeders: seeders
downloads: downloads
- 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: 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
type: select
label: Domaine du tracker à utiliser
default: tracker.p2p-world.net
options:
tracker.p2p-world.net: tracker.p2p-world.net
connect.maxp2p.org: connect.maxp2p.org
- name: info_downloads
type: info
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."
search:
paths:
- path: torrents
response:
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:
$raw: "{{ range .Categories }}&category_id={{.}}{{end}}"
q: "{{ .Keywords }}"
per_page: 100
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:
selector: $
missingAttributeEqualsNoResults: true
fields:
category:
selector: category_id
title_normal:
selector: title
title_multilang:
text: "{{ .Result.title_normal }}"
filters:
- name: re_replace
args: ["(?i)[\\.](MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))[\\.]", ".{{ .Config.multilanguage }}."]
title:
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_normal }}{{ end }}"
_id:
selector: id
_slug:
selector: slug
details:
selector: link
download:
text: "torrent/{{ .Result._id }}/download?passkey={{ .Config.passkey }}&tracker_domain={{ .Config.tracker_domain }}"
year:
selector: title
filters:
- name: regexp
args: (\b(19|20)\d{2}\b)
size:
selector: size
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: downloads
optional: true
default: 0
date:
# unix
selector: uploaded_at
downloadvolumefactor:
text: 1
uploadvolumefactor:
text: 1
# JSON 1.0.0
---
id: yggapi
name: YggAPI
description: Indexeur non-officiel pour YggTorrent (YGG) - MOVIES / TV
language: fr-FR
type: private
encoding: UTF-8
testlinktorrent: false
links:
- https://yggapi.eu/
caps:
categorymappings:
- {id: 2178, cat: Movies/Other, desc: "Films d'animation"}
- {id: 2183, cat: Movies, desc: "Films"}
- {id: 2145, cat: TV, desc: "Film/Vidéo"}
- {id: 2179, cat: TV/Anime, desc: "Séries d'animation / Mangas"}
- {id: 2181, cat: TV/Documentary, desc: "Film/Vidéo : Documentaire"}
- {id: 2182, cat: TV, desc: "Film/Vidéo : Emission TV"}
- {id: 2184, cat: TV, desc: "Séries"}
- {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: 2149, cat: Audio/Other, desc: "Audio : Samples"}
- {id: 2150, cat: Audio, desc: "Audio : Podcast Radio"}
- {id: 2151, cat: Audio/Audiobook, desc: "eBook : Audio"}
- {id: 2180, cat: Audio/Video, desc: "Film/Vidéo : Concert"}
- {id: 2140, cat: Books, desc: "eBook"}
- {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"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q, year]
allowrawsearch: true
settings:
- name: website_domain
type: text
label: YGG website domain
default: www.yggtorrent.top
- name: passkey
type: password
label: Passkey
- name: info_key
type: info
label: About your passkey
default: "You will find your passkey on the <a href=\"https://www.yggtorrent.top/user/account\" target=\"_blank\">YGG</a> account page."
- name: sort
type: select
label: Sort requested from site
default: uploaded_at
options:
uploaded_at: publish_date
seeders: seeders
downloads: downloads
- 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: 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
type: select
label: Domaine du tracker à utiliser
default: tracker.p2p-world.net
options:
tracker.p2p-world.net: tracker.p2p-world.net
connect.maxp2p.org: connect.maxp2p.org
- name: info_downloads
type: info
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."
download:
before:
path: "torrent/{{ .DownloadUri.Query.id }}/magnet?passkey=PASSKEY_TO_BE_REPLACED_BY_REG_EX"
method: get
selectors:
- selector: body
usebeforeresponse: true
filters:
- name: regexp
args: \"magnet\"\s*:\s*"(?<magnet>magnet:[^"]+)"
- name: replace
args: ["PASSKEY_TO_BE_REPLACED_BY_REG_EX", "{{ .Config.passkey }}"]
- name: replace
args: ["tracker.p2p-world.net", "{{ .Config.tracker_domain }}"]
search:
paths:
- path: torrents
response:
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:
$raw: "{{ range .Categories }}&category_id={{.}}{{end}}"
q: "{{ .Keywords }}"
per_page: 100
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:
selector: $
missingAttributeEqualsNoResults: true
fields:
category:
selector: category_id
title_normal:
selector: title
title_multilang:
text: "{{ .Result.title_normal }}"
filters:
- name: re_replace
args: ["(?i)[\\.](MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))[\\.]", ".{{ .Config.multilanguage }}."]
title:
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_normal }}{{ end }}"
_id:
selector: id
_slug:
selector: slug
details:
selector: link
download:
text: "torrent?id={{ .Result._id }}"
year:
selector: title
filters:
- name: regexp
args: (\b(19|20)\d{2}\b)
size:
selector: size
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: downloads
optional: true
default: 0
download:
text: torrent?id={{ .Result._id }}
date:
# unix
selector: uploaded_at
downloadvolumefactor:
text: 1
uploadvolumefactor:
text: 1
# JSON 1.0.0
@DoloresOmbrage
Copy link

t'a fais des profils de version dans sonarr ?

oui biensur comme je l'ai dit avant ca marcher sans soucis si j'en avais pas fait ca n'aurais jamais marcher je pense

@RudyLemoine
Copy link

RudyLemoine commented Jul 30, 2025

Bonjour,

J’ai déjà contacté Clem, qui m’a dit ne pas comprendre d’où cela pouvait venir. Nous avons regardé les logs, mais rien à signaler.

Je vous explique : depuis peu, plus rien ne se télécharge sur Sonarr. Sur Radarr, en revanche, aucun souci.

Par exemple, j’avais Chicago Med et Plus belle la vie configurés, et à chaque sortie d’un épisode, il était automatiquement téléchargé, car les séries sont bien surveillées.

Je n’avais aucun problème jusque-là, mais depuis environ une semaine, plus rien ne se télécharge côté séries. Je suis obligé de lancer manuellement une recherche interactive à chaque fois.

Si quelqu’un a une idée, je suis preneur.

Merci !

J'ai exactement le meme souci si quelqu'un a deja eu ce probleme je suis preneur aussi :)
Du coup j'ai du remettre YGGCookie pour sonarr uniquement mais si quelqu'un a une solution c'est top merci bcp pour le taf en tout cas c'est enorme !

@tifo71
Copy link

tifo71 commented Jul 30, 2025

Dans les profils de version l'indexeur a appliquer le profil et bien sélectionner ?

@RudyLemoine
Copy link

RudyLemoine commented Jul 30, 2025

Bonjour à tous

Je viens de trouver le souci sur sonarr :

Il faut bien choisir "SERIES" dans l'indexeur YGG API (Prowlarr) dans catégories (voir photo jointe)

et le souci que j'avais sur les animés c'etait simplement le 2eme profil indexeur dans sonarr (YGG API (Series Animes) j'avais configuré uniquement la catégorie "ANIME" en dessous de celle normale et il fallait aussi mettre les catégories animés dans catégories normales (en haut) dans les paramètres de l'indexeur.

Peut être à faire remonter aux dev parce que c'est a mon avis un souci que tout le monde doit avoir)

Si vous faites comme moi ça marchera parfaitement :)
Tout fonctionne a merveille maintenant je vous mets des photos :)

En tout cas un grand merci pour le taf car je suis libéré du cookie et user agent alors un big merci franchement les dev sont incroyables!!

(ne faites pas attention à l'URL j'utilise docker sur mon synology en circuit fermé ce sera pas la même pour vous)

Capture d’écran 2025-07-30 à 19 22 44
Capture d’écran 2025-07-30 à 19 23 07
Capture d’écran 2025-07-30 à 19 23 22
Capture d’écran 2025-07-30 à 19 24 05

@tifo71
Copy link

tifo71 commented Jul 30, 2025

ah oui effectivement faut bien prendre la bonne catégorie serie et si tu as des animé la catégorie serie animé ou animation.

Car par defaut il te mette la catégorie serie mais celle en haut qui n'est pas la bonne du coup.

Nickel

@DoloresOmbrage
Copy link

Bonjour à tous

Je viens de trouver le souci sur sonarr :

Il faut bien choisir "SERIES" dans l'indexeur YGG API (Prowlarr) dans catégories (voir photo jointe)

et le souci que j'avais sur les animés c'etait simplement le 2eme profil indexeur dans sonarr (YGG API (Series Animes) j'avais configuré uniquement la catégorie "ANIME" en dessous de celle normale et il fallait aussi mettre les catégories animés dans catégories normales (en haut) dans les paramètres de l'indexeur.

Peut être à faire remonter aux dev parce que c'est a mon avis un souci que tout le monde doit avoir)

Si vous faites comme moi ça marchera parfaitement :) Tout fonctionne a merveille maintenant je vous mets des photos :)

En tout cas un grand merci pour le taf car je suis libéré du cookie et user agent alors un big merci franchement les dev sont incroyables!!

(ne faites pas attention à l'URL j'utilise docker sur mon synology en circuit fermé ce sera pas la même pour vous)

Capture d’écran 2025-07-30 à 19 22 44 Capture d’écran 2025-07-30 à 19 23 07 Capture d’écran 2025-07-30 à 19 23 22 Capture d’écran 2025-07-30 à 19 24 05

moi je vois séries nul part je capte pas trop ou tu as été puis je pense que ca vienne de la car j'ai jamais eu de soucis avant donc c'est que mes paramètres été bon de base en principe

@RudyLemoine
Copy link

RudyLemoine commented Jul 30, 2025

Bonjour à tous
Je viens de trouver le souci sur sonarr :
Il faut bien choisir "SERIES" dans l'indexeur YGG API (Prowlarr) dans catégories (voir photo jointe)
et le souci que j'avais sur les animés c'etait simplement le 2eme profil indexeur dans sonarr (YGG API (Series Animes) j'avais configuré uniquement la catégorie "ANIME" en dessous de celle normale et il fallait aussi mettre les catégories animés dans catégories normales (en haut) dans les paramètres de l'indexeur.
Peut être à faire remonter aux dev parce que c'est a mon avis un souci que tout le monde doit avoir)
Si vous faites comme moi ça marchera parfaitement :) Tout fonctionne a merveille maintenant je vous mets des photos :)
En tout cas un grand merci pour le taf car je suis libéré du cookie et user agent alors un big merci franchement les dev sont incroyables!!
(ne faites pas attention à l'URL j'utilise docker sur mon synology en circuit fermé ce sera pas la même pour vous)
Capture d’écran 2025-07-30 à 19 22 44 Capture d’écran 2025-07-30 à 19 23 07 Capture d’écran 2025-07-30 à 19 23 22 Capture d’écran 2025-07-30 à 19 24 05

moi je vois séries nul part je capte pas trop ou tu as été puis je pense que ca vienne de la car j'ai jamais eu de soucis avant donc c'est que mes paramètres été bon de base en principe

Moi je suis dans sonarr la dolores :) pas dans prowlarr
Dans sonarr dans indexeur tu as l'indexeur qui s'est ajouté tout seul (merci au dev 😉) donc tu auras acces a categories à cet endroit

@DoloresOmbrage
Copy link

Bonjour à tous
Je viens de trouver le souci sur sonarr :
Il faut bien choisir "SERIES" dans l'indexeur YGG API (Prowlarr) dans catégories (voir photo jointe)
et le souci que j'avais sur les animés c'etait simplement le 2eme profil indexeur dans sonarr (YGG API (Series Animes) j'avais configuré uniquement la catégorie "ANIME" en dessous de celle normale et il fallait aussi mettre les catégories animés dans catégories normales (en haut) dans les paramètres de l'indexeur.
Peut être à faire remonter aux dev parce que c'est a mon avis un souci que tout le monde doit avoir)
Si vous faites comme moi ça marchera parfaitement :) Tout fonctionne a merveille maintenant je vous mets des photos :)
En tout cas un grand merci pour le taf car je suis libéré du cookie et user agent alors un big merci franchement les dev sont incroyables!!
(ne faites pas attention à l'URL j'utilise docker sur mon synology en circuit fermé ce sera pas la même pour vous)
Capture d’écran 2025-07-30 à 19 22 44 Capture d’écran 2025-07-30 à 19 23 07 Capture d’écran 2025-07-30 à 19 23 22 Capture d’écran 2025-07-30 à 19 24 05

moi je vois séries nul part je capte pas trop ou tu as été puis je pense que ca vienne de la car j'ai jamais eu de soucis avant donc c'est que mes paramètres été bon de base en principe

Moi je suis dans sonarr la dolores :) pas dans prowlarr Dans sonarr dans indexeur tu as l'indexeur qui s'est ajouté tout seul (merci au dev 😉) donc tu auras acces a categories à cet endroit

oui j'ai cocher série mais rien ne change j'ai été obliger de faire une recherche a la main pour un épisode qui est sortie par exemple y a deux heures sur ygg pour que ca le download ... donc perso moi ca ne change rien

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment