Skip to content

Instantly share code, notes, and snippets.

@Clemv95
Forked from LimeDrive/ygg-api.yml
Last active January 4, 2026 16:15
Show Gist options
  • Select an option

  • Save Clemv95/8bfded23ef23ec78f6678896f42a2b60 to your computer and use it in GitHub Desktop.

Select an option

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: 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"}
modes:
search: [q]
tv-search: [q, season, ep, tmdbid]
movie-search: [q, year, tmdbid]
music-search: [q]
book-search: [q]
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
inputs:
$raw: "{{ range .Categories }}&category_id={{.}}{{end}}"
q: "{{ .Keywords }}"
season: "{{ .Query.Season }}"
episode: "{{ .Query.Ep }}"
tmdb_id: "{{ .Query.TMDBID }}"
type: "{{ if eq .Query.Type \"tvsearch\" }}tv{{ else }}{{ end }}{{ if eq .Query.Type \"movie\" }}movie{{ else }}{{ end }}"
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 }}"]
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
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: 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"}
modes:
search: [q]
tv-search: [q, season, ep, tmdbid]
movie-search: [q, year, tmdbid]
music-search: [q]
book-search: [q]
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
inputs:
$raw: "{{ range .Categories }}&category_id={{.}}{{end}}"
q: "{{ .Keywords }}"
season: "{{ .Query.Season }}"
episode: "{{ .Query.Ep }}"
tmdb_id: "{{ .Query.TMDBID }}"
type: "{{ if eq .Query.Type \"tvsearch\" }}tv{{ else }}{{ end }}{{ if eq .Query.Type \"movie\" }}movie{{ else }}{{ end }}"
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 }}"]
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
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
@serveurplexminimaxtv
Copy link

serveurplexminimaxtv commented Dec 30, 2025

Hello tout le monde, c’est mon premier message ici. Déjà, merci à toute la communauté pour l’API et pour l’indexeur. J’ai l’impression que, pour le contenu uploadé sur YGG depuis le 23/24 décembre, ça ne fonctionne plus sur prowlarr: tout ce qui est antérieur marche nickel, mais le contenu qui a été upload depuis 4–5 jours j’ai des erreurs 410.

Mdr yannis était dans une grotte
Je t'invite a lire la discussion depuis plusieurs jours

@YannisFouzi
Copy link

Hello tout le monde, c’est mon premier message ici. Déjà, merci à toute la communauté pour l’API et pour l’indexeur. J’ai l’impression que, pour le contenu uploadé sur YGG depuis le 23/24 décembre, ça ne fonctionne plus sur prowlarr: tout ce qui est antérieur marche nickel, mais le contenu qui a été upload depuis 4–5 jours j’ai des erreurs 410.

Mdr yannis était dans une grotte Je t'invite a lire la discussion depuis plusieurs jours

Mdrr nan mais j’ai vu tout ce qu’il se passe avec ygg en ce moment. C’est juste que cette histoire d’erreur 410, je ne l’avais pas quand les derniers épisodes de Stranger Things sont sortis le 26 décembre. Mais oui, je viens de voir précisément que l'implémentation de la signature est apparu pile après…

@thegrunge36
Copy link

Hello tout le monde, c’est mon premier message ici. Déjà, merci à toute la communauté pour l’API et pour l’indexeur. J’ai l’impression que, pour le contenu uploadé sur YGG depuis le 23/24 décembre, ça ne fonctionne plus sur prowlarr: tout ce qui est antérieur marche nickel, mais le contenu qui a été upload depuis 4–5 jours j’ai des erreurs 410.

Mdr yannis était dans une grotte Je t'invite a lire la discussion depuis plusieurs jours

Mdrr nan mais j’ai vu tout ce qu’il se passe avec ygg en ce moment. C’est juste que cette histoire d’erreur 410, je ne l’avais pas quand les derniers épisodes de Stranger Things sont sortis le 26 décembre. Mais oui, je viens de voir précisément que l'implémentation de la signature est apparu pile après…

Remonte de 4 à 6 messages tu va comprendre....

@Zarcross-dev
Copy link

Putain YGG qui nous la met de plus en plus profond ca devient grave, ils font tout pour tirer le max de thunes possible avant de se barrer avec la caisse, c'est evident, franchement decu de ces gens, ca tournais a peu pres bien jusque la, mais ils prennent l'autoroute des pires decisions, vivement un successeur a YGG publique ou semi-private... En esperant que TheOldSchool ouvrent les vannes pour de bon

@PierreAlexx01
Copy link

Salut tout le monde
J’ai deux problèmes
Le premier c’est que quand je met le tracker connect.maxp2p impossible d’envoyer un torrent depuis prowlarr sur mon qbit
Et quand je met l’autre j’arrive à envoyer mais sur qbit c’est écrit Blocked by SSRF Mitigation

je pensais que c’était due au DNS
J’ai mis ceux de Cloudflare et malgré tout ça ne fonctionne pas
Une idée pour régler le problème s’il vous plaît ?

@tifo71
Copy link

tifo71 commented Dec 30, 2025

Salut tout le monde J’ai deux problèmes Le premier c’est que quand je met le tracker connect.maxp2p impossible d’envoyer un torrent depuis prowlarr sur mon qbit Et quand je met l’autre j’arrive à envoyer mais sur qbit c’est écrit Blocked by SSRF Mitigation

je pensais que c’était due au DNS J’ai mis ceux de Cloudflare et malgré tout ça ne fonctionne pas Une idée pour régler le problème s’il vous plaît ?

Hello,

T'a pas vu l'actualité toi ? YGG a mis en place une signature individuelle donc pour l'instant l'automatisation avec YGG c'est mort. Il faut attendre l'api officielle yggtorrent.

image

@tifo71
Copy link

tifo71 commented Dec 30, 2025

Putain YGG qui nous la met de plus en plus profond ca devient grave, ils font tout pour tirer le max de thunes possible avant de se barrer avec la caisse, c'est evident, franchement decu de ces gens, ca tournais a peu pres bien jusque la, mais ils prennent l'autoroute des pires decisions, vivement un successeur a YGG publique ou semi-private... En esperant que TheOldSchool ouvrent les vannes pour de bon

pour l'instant le seul qui pourrais arriver a la hauteur d'YGG c'est Sharewood. Les inscriptions devrait ouvrir en ce week end et semaine pro d'après ce que j'ai lu a droite a gauche

@thegrunge36
Copy link

Putain YGG qui nous la met de plus en plus profond ca devient grave, ils font tout pour tirer le max de thunes possible avant de se barrer avec la caisse, c'est evident, franchement decu de ces gens, ca tournais a peu pres bien jusque la, mais ils prennent l'autoroute des pires decisions, vivement un successeur a YGG publique ou semi-private... En esperant que TheOldSchool ouvrent les vannes pour de bon

pour l'instant le seul qui pourrais arriver a la hauteur d'YGG c'est Sharewood. Les inscriptions devrait ouvrir en ce week end et semaine pro d'après ce que j'ai lu a droite a gauche

J'ai commencé à uploader des Disney pack sur sharewood, toute une mission les règles sont strict

@JeanCan988
Copy link

Bonjour tout le monde. A la recherche d'une invit sur Sh*** / Ab*** ou TOS :)
j'ai un truenas perso avec 24to utile et 200 torrents en partage.
j'aimerais juste retrouver une automatisation prowlarr pour radarr et sonarr.
Merci d'avance :)

@SebHeuze
Copy link

SebHeuze commented Jan 3, 2026

Sharewood et TOS sont fermés même aux invitations (TOS les invitations vont être réactivées mais que pour certains status de membres ça va être très limité)
@tifo71 t'as vu ou l'info pour Sharewhood ? sur IRC c'est pas facile d'avoir les infos et sur reddit j'ai pas vu l'info

@tifo71
Copy link

tifo71 commented Jan 3, 2026

Sharewood et TOS sont fermés même aux invitations (TOS les invitations vont être réactivées mais que pour certains status de membres ça va être très limité) @tifo71 t'as vu ou l'info pour Sharewhood ? sur IRC c'est pas facile d'avoir les infos et sur reddit j'ai pas vu l'info

pour sharewood j'ai pu poser la question dans le tchat du site. Mais les inscriptions vont bien réouvrir. Faut surveiller. et dans le discord y en a un qui avait indiquer que ça ouvrirais soit ce week ou la semaine pro

@JeanCan988
Copy link

J'ai réussi à trouver une place dans la-cale, mais ils galèrent à gérer l'afflux de membre je crois :/

@Leophir
Copy link

Leophir commented Jan 3, 2026

On est pas mal de teams à reprendre les uploads sur Sharewood et Gen free. Ça a commencé, Sharewood compte plus d'uploads émissions TV, Musique et documentaires que YGG cette semaine.

@PtitLegume
Copy link

On est pas mal de teams à reprendre les uploads sur Sharewood et Gen free. Ça a commencé, Sharewood compte plus d'uploads émissions TV, Musique et documentaires que YGG cette semaine.

possible d'avoir une place dans l'un d'entre eux ? :)

@Snow59
Copy link

Snow59 commented Jan 4, 2026

Yo les bg , j'ai dev un petit truc qui marche super bien !

j'ai fait un repo avec des explications : https://github.com/Snow59/YGG-HYBRID

@EricG66
Copy link

EricG66 commented Jan 4, 2026 via email

@Snow59
Copy link

Snow59 commented Jan 4, 2026

Oui sans problème normalement

@lonsdalien
Copy link

lonsdalien commented Jan 4, 2026

Yo les bg , j'ai dev un petit truc qui marche super bien !

j'ai fait un repo avec des explications : https://github.com/Snow59/YGG-HYBRID

Hello
Desole j'ai pas bien compris l'histoire du vpn..
J'ai une VM avec tout les *Arr et une autre VM qbitorrent, j'utilise pas de pc en mode automatique.

Pkoi utiliser un vpn ?

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