Skip to content

Instantly share code, notes, and snippets.

@Clemv95
Forked from LimeDrive/ygg-api.yml
Last active January 7, 2026 00:55
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
@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

PtitLegume commented Jan 4, 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.

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

@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 ?

@Snow59
Copy link

Snow59 commented Jan 4, 2026

En gros l'histoire du VPN c'est pour expliquer que les cookies que tu récup sur YGG doivent être générés avec la même IP publique que celle qui sort de Prowlarr.

Si Prowlarr est sous VPN → génère les cookies avec la même IP VPN
Si Prowlarr est pas sous VPN → génère les cookies avec ton IP publique normale

Attention : si t'es pas sous VPN, vérifie bien que t'es en IPv4 et pas en IPv6 sur ton PC quand tu génères les cookies.

@lonsdalien
Copy link

En gros l'histoire du VPN c'est pour expliquer que les cookies que tu récup sur YGG doivent être générés avec la même IP publique que celle qui sort de Prowlarr.

Si Prowlarr est sous VPN → génère les cookies avec la même IP VPN Si Prowlarr est pas sous VPN → génère les cookies avec ton IP publique normale

Attention : si t'es pas sous VPN, vérifie bien que t'es en IPv4 et pas en IPv6 sur ton PC quand tu génères les cookies.

Je n'ai ni vpn sur quoi que ce soit, ni ipv6 nul part.
Du coup balek ?

@Snow59
Copy link

Snow59 commented Jan 4, 2026

Test et dit moi , mais normalement c'est bon

@serveurplexminimaxtv
Copy link

Si t'as pas de vpn je t'invite vivement a souvent checker la boite mail de ta box pour pas avoir de mauvaises surprises avec l'arcom mdr

@methbkts
Copy link

methbkts 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 : github.com/Snow59/YGG-HYBRID

la conf sur prowlarr passe bien, merci je vais tester ca en attendant que le tracker du capitaine soit plus stable

@tifo71
Copy link

tifo71 commented Jan 4, 2026

@Snow59 Hello, les cookies expirent ou ca durent dans le temps. Car avec l'indexer yggcookie fallait actualiser a tout bout de champ. C'est pareil avec ton YGG Hybrid ?

@SyFizz
Copy link

SyFizz commented Jan 5, 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

Du coup, s'il faut la même IP des deux côtés, c'est pas utilisable sur une seedbox ?

@Leophir
Copy link

Leophir commented Jan 5, 2026

Marche nickel YGG-Hybrid: Snow59/YGG-HYBRID#2

@Snow59
Copy link

Snow59 commented Jan 5, 2026

@SyFizz Bah si pq ça marcherait pas ?

@Snow59
Copy link

Snow59 commented Jan 5, 2026

@tifo71 Je crois que tant que tu te reco pas sur le navig le cookie expire pas , perso ça fait 1 semaine il a pas expiré

@Snow59
Copy link

Snow59 commented Jan 5, 2026

@Leophir Derien tkt , normalement avec cette solution on est trql , du moins les utilisateurs avec turbo quoi

@aanze
Copy link

aanze commented Jan 5, 2026

"Ces restrictions sont vérifiées côté serveur, il n'y a pas de contournement possible."

Et pourtant ygégé propose un fix qui fonctionne 🤷🏼‍♂️

@serveurplexminimaxtv
Copy link

Pas de risque de se faire strike?

@Snow59
Copy link

Snow59 commented Jan 5, 2026

@serveurplexminimaxtv je sais pas après je spam pas les DL

@Snow59
Copy link

Snow59 commented Jan 5, 2026

Non justement, j'ai regardé le code source de ygege. Ils ne bypassent pas le Turbo :

if !config.turbo_enabled.unwrap_or(false) { sleep(Duration::from_secs(30)).await; }

Sans Turbo, ils attendent 30 secondes avant de télécharger. C'est pas un bypass, c'est juste une automatisation du timer.
T'as toujours les restrictions , 30 sec d'attente par torrent , 5 torrents max par jour

Pour Sonarr/Radarr qui grab plusieurs torrents d'un coup, c'est pas viable.

Renseigne toi la prochaine fois 🤷🏼‍♂️🤷🏼‍♂️🤷🏼‍♂️🤷🏼‍♂️🤷🏼‍♂️🤷🏼‍♂️ @aanze

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