Skip to content

Instantly share code, notes, and snippets.

@Clemv95
Forked from LimeDrive/ygg-api.yml
Last active December 1, 2025 19:19
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
@DoloresOmbrage
Copy link

@DoloresOmbrage Vérifies que l'url contenu dans la fiche infos de ton indexeur dans prowlarr colle avec l'url renseigné dans sonarr, j'ai mis à jour mon indexeur et ce paramètre à bouger Prowlarr > Indexers > YggAPI (ou le nom que tu lui as donné) > Détail et regarde ce paramètre Torznab Url http://adresse ip locale /9/api (c'est mon paramètre) Ensuite vérifie dans sonarr Sonarr > paramètre > indexeur > YggAPI (ou le nom que tu as mis dans prowlarr) >URL http://adresse ip locale/9/ et chemin de l'api /api

Mais j'avais des erreurs 404 dans radarr perso, si ca peut aider

je viens de voir que une personne que j'ai ajouter sur jellyfin a demander une serie your honor la saison 1 elle s'est download sans soucis je viens d'essayer une recherche interactive sur l'épisode 1 de la saison 2 j'ai eu des résultat j'ai l'impression que j'ai 0 résultat seulement sur plus belle la vie pourtant les épisodes y sont bien sur ygg

@Mrmel94
Copy link

Mrmel94 commented Nov 1, 2025

Bonjour, tout d'abord un grand merci à @Clemv95 pour le travail fourni pour yggapi.

Par contre j'ai un probleme avec la recherche de nouveaux épisodes sur sonarr ou meme les nouvelles sorties sur radarr. Exemple un episode de mon manga est sorti ce matin, et a 16h il ne m'a toujours rien récupéré. Quand je vais sur l'épisode et que je fais une recherche automatique, il me le trouve bien par contre. Quand je regarde manuellement je vois 4 ou 5 fichiers qu'il aurait pu me telecharger entre la sortie et maintenant (avec aucune restriction car pas de point d'exclamation rouge)

Donc j'en ai déduit que c'est le flux RSS qui ne fonctionne pas bien chez moi. Je suis passé en debug et lancé une recherche de flux rss sur sonarr et en effet je ne vois rien qui ne corresponds a mon épisode dans les logs. J'ai essayé de jouer avec les catégories aussi mais je ne pense pas que ca soit le probleme car la recherche auto / manuelle fonctionne bien.

Si quelqu'un sait d'ou peut venir le probleme je suis preneur !

Merci

Edit : Evidemment 3h que je cherche et que je ne trouve pas mais 10min apres avoir posté je trouve le probleme, bien mettre sort requested from site : publish_date

@DoloresOmbrage
Copy link

Bonjour, tout d'abord un grand merci à @Clemv95 pour le travail fourni pour yggapi.

Par contre j'ai un probleme avec la recherche de nouveaux épisodes sur sonarr ou meme les nouvelles sorties sur radarr. Exemple un episode de mon manga est sorti ce matin, et a 16h il ne m'a toujours rien récupéré. Quand je vais sur l'épisode et que je fais une recherche automatique, il me le trouve bien par contre. Quand je regarde manuellement je vois 4 ou 5 fichiers qu'il aurait pu me telecharger entre la sortie et maintenant (avec aucune restriction car pas de point d'exclamation rouge)

Donc j'en ai déduit que c'est le flux RSS qui ne fonctionne pas bien chez moi. Je suis passé en debug et lancé une recherche de flux rss sur sonarr et en effet je ne vois rien qui ne corresponds a mon épisode dans les logs. J'ai essayé de jouer avec les catégories aussi mais je ne pense pas que ca soit le probleme car la recherche auto / manuelle fonctionne bien.

Si quelqu'un sait d'ou peut venir le probleme je suis preneur !

Merci

Edit : Evidemment 3h que je cherche et que je ne trouve pas mais 10min apres avoir posté je trouve le probleme, bien mettre sort requested from site : publish_date

coucou j'ai lu tout ton message mais je n'ai pas compris ou tu vois sort requested from site : publish_date merci

@serveurplexminimaxtv
Copy link

Bonjour, tout d'abord un grand merci à @Clemv95 pour le travail fourni pour yggapi.
Par contre j'ai un probleme avec la recherche de nouveaux épisodes sur sonarr ou meme les nouvelles sorties sur radarr. Exemple un episode de mon manga est sorti ce matin, et a 16h il ne m'a toujours rien récupéré. Quand je vais sur l'épisode et que je fais une recherche automatique, il me le trouve bien par contre. Quand je regarde manuellement je vois 4 ou 5 fichiers qu'il aurait pu me telecharger entre la sortie et maintenant (avec aucune restriction car pas de point d'exclamation rouge)
Donc j'en ai déduit que c'est le flux RSS qui ne fonctionne pas bien chez moi. Je suis passé en debug et lancé une recherche de flux rss sur sonarr et en effet je ne vois rien qui ne corresponds a mon épisode dans les logs. J'ai essayé de jouer avec les catégories aussi mais je ne pense pas que ca soit le probleme car la recherche auto / manuelle fonctionne bien.
Si quelqu'un sait d'ou peut venir le probleme je suis preneur !
Merci
Edit : Evidemment 3h que je cherche et que je ne trouve pas mais 10min apres avoir posté je trouve le probleme, bien mettre sort requested from site : publish_date

coucou j'ai lu tout ton message mais je n'ai pas compris ou tu vois sort requested from site : publish_date merci

Sur prowlar dans la partie où tu configures l'indexer yggapi

@DoloresOmbrage
Copy link

Bonjour, tout d'abord un grand merci à @Clemv95 pour le travail fourni pour yggapi.
Par contre j'ai un probleme avec la recherche de nouveaux épisodes sur sonarr ou meme les nouvelles sorties sur radarr. Exemple un episode de mon manga est sorti ce matin, et a 16h il ne m'a toujours rien récupéré. Quand je vais sur l'épisode et que je fais une recherche automatique, il me le trouve bien par contre. Quand je regarde manuellement je vois 4 ou 5 fichiers qu'il aurait pu me telecharger entre la sortie et maintenant (avec aucune restriction car pas de point d'exclamation rouge)
Donc j'en ai déduit que c'est le flux RSS qui ne fonctionne pas bien chez moi. Je suis passé en debug et lancé une recherche de flux rss sur sonarr et en effet je ne vois rien qui ne corresponds a mon épisode dans les logs. J'ai essayé de jouer avec les catégories aussi mais je ne pense pas que ca soit le probleme car la recherche auto / manuelle fonctionne bien.
Si quelqu'un sait d'ou peut venir le probleme je suis preneur !
Merci
Edit : Evidemment 3h que je cherche et que je ne trouve pas mais 10min apres avoir posté je trouve le probleme, bien mettre sort requested from site : publish_date

coucou j'ai lu tout ton message mais je n'ai pas compris ou tu vois sort requested from site : publish_date merci

Sur prowlar dans la partie où tu configures l'indexer yggapi

Bonjour, tout d'abord un grand merci à @Clemv95 pour le travail fourni pour yggapi.

Par contre j'ai un probleme avec la recherche de nouveaux épisodes sur sonarr ou meme les nouvelles sorties sur radarr. Exemple un episode de mon manga est sorti ce matin, et a 16h il ne m'a toujours rien récupéré. Quand je vais sur l'épisode et que je fais une recherche automatique, il me le trouve bien par contre. Quand je regarde manuellement je vois 4 ou 5 fichiers qu'il aurait pu me telecharger entre la sortie et maintenant (avec aucune restriction car pas de point d'exclamation rouge)

Donc j'en ai déduit que c'est le flux RSS qui ne fonctionne pas bien chez moi. Je suis passé en debug et lancé une recherche de flux rss sur sonarr et en effet je ne vois rien qui ne corresponds a mon épisode dans les logs. J'ai essayé de jouer avec les catégories aussi mais je ne pense pas que ca soit le probleme car la recherche auto / manuelle fonctionne bien.

Si quelqu'un sait d'ou peut venir le probleme je suis preneur !

Merci

Edit : Evidemment 3h que je cherche et que je ne trouve pas mais 10min apres avoir posté je trouve le probleme, bien mettre sort requested from site : publish_date

merci les gars ca ma grave aider

@floriannoel1994
Copy link

Bonjour,
Quand j'essaie de grab un release je reste bloqué sur "Downloading metadata" sur qbitorrent.
image

J'ai essayé les 2 yaml (download et magnet) même constat. Alors que je n'ai pas le probleme avec YGGtorrent cookie.

J'ai également souvent une erreur 429 too many request sur Sonaarr, pas de probleme sur radarr.
Particulièrement avec des anime (qui existe bien sur YGG), lorsque je fais une interactive search j'ai une erreur
image

@nat80
Copy link

nat80 commented Nov 2, 2025

J'ai fait une mise à jour du fichier pour permettre la recherche par id tmdb ajouté récemment sur l'api si ça vous intéresse :
https://gist.github.com/nat80/3a216a840802409115ce03d173366ca6

@Clemv95
Copy link
Author

Clemv95 commented Nov 2, 2025

J'ai fait une mise à jour du fichier pour permettre la recherche par id tmdb ajouté récemment sur l'api si ça vous intéresse : https://gist.github.com/nat80/3a216a840802409115ce03d173366ca6

Merci j'ai mis à jour le gist avec tes ajouts

@HanaO00
Copy link

HanaO00 commented Nov 3, 2025

Salut, pour la recherche par id tmdb comment vous faites, c'est directement dans prowlarr avec tmdb:xxx ?

@superbunny54
Copy link

Hello,
J'ai des soucis avec le tracker, Qbittorrent récupere bien l'url mais avec un espace avant /announce (http://connect.maxp2p.org:8080/ announce) ce qui cause le torrent de rester en "Downloading metadata" si j'édit l'URL dans qbit pour enlever l'espace tout fonctionne correctement.
pour info:
prowarr: 2.1.5.5216-ls246 by linuxserver.io
qbit: qBittorrent v5.1.2
j'utilise la version magnet, je n'ai pas tester l'autre pour le moment.

@Clemv95
Copy link
Author

Clemv95 commented Nov 5, 2025

C'est etonnant pourtant dans la conf il n'y a aucun espace

@superbunny54
Copy link

C'est etonnant pourtant dans la conf il n'y a aucun espace

Effectivement, j'ai fait un peu d'investigation et testé avec la version download. Quand je téléchargeais un torrent, j'ai eu un message d'erreur qui me disait que ma passkey ne faisait pas 32 caractères comme prévu. Ça m'a mis la puce à l'oreille et je me suis rendu compte que j'avais collé ma passkey avec un espace à la fin (ma passkey faisait donc 33 caractères). Ça explique le phénomène que j'ai eu avec l'espace dans l'URL du tracker.

Par défaut, en tout cas sur Firefox, si je double-clique sur la passkey pour la copier sur le site, il ajoute un espace à la fin. Je ne sais pas à quel point ça a du sens ou si c'est faisable de faire une regex pour enlever les espaces en fin de passkey s'il y en a, mais voilà.

Si quelqu'un a le même souci, regardez bien la taille de votre passkey (même avec l'espace, Prowlarr teste le tracker comme valide !!!).

@methbkts
Copy link

methbkts commented Nov 6, 2025

C'est etonnant pourtant dans la conf il n'y a aucun espace

Effectivement, j'ai fait un peu d'investigation et testé avec la version download. Quand je téléchargeais un torrent, j'ai eu un message d'erreur qui me disait que ma passkey ne faisait pas 32 caractères comme prévu. Ça m'a mis la puce à l'oreille et je me suis rendu compte que j'avais collé ma passkey avec un espace à la fin (ma passkey faisait donc 33 caractères). Ça explique le phénomène que j'ai eu avec l'espace dans l'URL du tracker.

Par défaut, en tout cas sur Firefox, si je double-clique sur la passkey pour la copier sur le site, il ajoute un espace à la fin. Je ne sais pas à quel point ça a du sens ou si c'est faisable de faire une regex pour enlever les espaces en fin de passkey s'il y en a, mais voilà.

Si quelqu'un a le même souci, regardez bien la taille de votre passkey (même avec l'espace, Prowlarr teste le tracker comme valide !!!).

Pas forcément une regex mais un trim pourquoi pas

@lonsdalien
Copy link

Hello,
Question con, mais y'a pas un readme avec un tuto quelque part ?

@Clemv95
Copy link
Author

Clemv95 commented Nov 13, 2025

Hello, Question con, mais y'a pas un readme avec un tuto quelque part ?

Dans les premiers commentaires du gist, ça remonte un peu ahah

@lonsdalien
Copy link

Hello, Question con, mais y'a pas un readme avec un tuto quelque part ?

Dans les premiers commentaires du gist, ça remonte un peu ahah

Ok merci, donc :

Pour Prowlarr : $CONFIG_DIR/Definitions/Custom/ygg-api.yml

Je met ma clé
Ensuite je redémarre ma VM

Thanks

@Clemv95
Copy link
Author

Clemv95 commented Nov 13, 2025

Hello, Question con, mais y'a pas un readme avec un tuto quelque part ?

Dans les premiers commentaires du gist, ça remonte un peu ahah

Ok merci, donc :

Pour Prowlarr : $CONFIG_DIR/Definitions/Custom/ygg-api.yml

Je met ma clé Ensuite je redémarre ma VM

Thanks

Yes c'est ça !

@lonsdalien
Copy link

Hello, Question con, mais y'a pas un readme avec un tuto quelque part ?

Dans les premiers commentaires du gist, ça remonte un peu ahah

Ok merci, donc :
Pour Prowlarr : $CONFIG_DIR/Definitions/Custom/ygg-api.yml
Je met ma clé Ensuite je redémarre ma VM
Thanks

Yes c'est ça !

Je n'ai pas le dossier custom sur ma VM. Pas grave, je le crée, ce sera détecté ?

@Clemv95
Copy link
Author

Clemv95 commented Nov 13, 2025

Hello, Question con, mais y'a pas un readme avec un tuto quelque part ?

Dans les premiers commentaires du gist, ça remonte un peu ahah

Ok merci, donc :
Pour Prowlarr : $CONFIG_DIR/Definitions/Custom/ygg-api.yml
Je met ma clé Ensuite je redémarre ma VM
Thanks

Yes c'est ça !

Je n'ai pas le dossier custom sur ma VM. Pas grave, je le crée, ce sera détecté ?

Il faut que tu fasses un volume pour mettre ton fichier .yml dans le dossier custom

@lonsdalien
Copy link

Hello, Question con, mais y'a pas un readme avec un tuto quelque part ?

Dans les premiers commentaires du gist, ça remonte un peu ahah

Ok merci, donc :
Pour Prowlarr : $CONFIG_DIR/Definitions/Custom/ygg-api.yml
Je met ma clé Ensuite je redémarre ma VM
Thanks

Yes c'est ça !

Je n'ai pas le dossier custom sur ma VM. Pas grave, je le crée, ce sera détecté ?

Il faut que tu fasses un volume pour mettre ton fichier .yml dans le dossier custom

Tout fonctionne, Merci !

@PtitBreton3531
Copy link

PtitBreton3531 commented Nov 16, 2025

J'ai finalement réussis de mon coté avec mon NAS Synology, voici la procédure et le script qui télécharge les .yml automatiquement avec IDs différents si besoin, et redémarre prowlarr ou télécharge les fichiers seulement s'ils ont changés.

Installation automatique sur Synology NAS

Contexte : Prowlarr en Docker, utilisateur dockerlimited (exemple : UID 1000, GID 65000)

1. Préparation (si nécessaire- via SSH ou autre)

sudo rm -rf /volume1/docker/prowlarr/Definitions/Custom*
sudo mkdir -p /volume1/docker/prowlarr/Definitions/Custom
sudo chown 1027:65536 /volume1/docker/prowlarr/Definitions/Custom
sudo chmod 755 /volume1/docker/prowlarr/Definitions/Custom

2. Tâche planifiée DSM

Panneau de configurationPlanificateurCréerScript défini par l'utilisateur

  • Utilisateur : root
  • Planification : Quotidien

Script :

#!/bin/bash
GIST_ID="8bfded23ef23ec78f6678896f42a2b60"
DEFINITIONS_DIR="/volume1/docker/prowlarr/Definitions/Custom"
PUID=1000
PGID=65000

echo "=== Vérification YGG-API ==="

lastCommit=$(curl -s "https://api.github.com/gists/$GIST_ID/commits" | jq -r '.[0].committed_at')
echo "Dernier commit: $lastCommit"

files=$(curl -s "https://api.github.com/gists/$GIST_ID" | jq -r '.files | keys[] | select(endswith(".yml"))')

NEED_RESTART=false

for file in $files; do
    filepath="$DEFINITIONS_DIR/$file"
    filebase="${file%.yml}"
    variant=$(echo "$filebase" | sed 's/ygg-api-//' | sed 's/.*/\u&/')
    
    if [ -f "$filepath" ]; then
        lastWrite=$(date -r "$filepath" +"%Y-%m-%dT%H:%M:%SZ" -u)
        
        if [[ "$lastCommit" > "$lastWrite" ]]; then
            echo "$file - Mise à jour"
            wget -qO "$filepath.tmp" "https://gist.githubusercontent.com/Clemv95/$GIST_ID/raw/$file"
            sed -i "s/^id: yggapi$/id: $filebase/" "$filepath.tmp"
            sed -i "s/^name: YggAPI$/name: YggAPI $variant/" "$filepath.tmp"
            mv "$filepath.tmp" "$filepath"
            chown "$PUID:$PGID" "$filepath"
            chmod 644 "$filepath"
            NEED_RESTART=true
        else
            echo "$file - Déjà à jour"
        fi
    else
        echo "$file - Nouveau fichier"
        wget -qO "$filepath.tmp" "https://gist.githubusercontent.com/Clemv95/$GIST_ID/raw/$file"
        sed -i "s/^id: yggapi$/id: $filebase/" "$filepath.tmp"
        sed -i "s/^name: YggAPI$/name: YggAPI $variant/" "$filepath.tmp"
        mv "$filepath.tmp" "$filepath"
        chown "$PUID:$PGID" "$filepath"
        chmod 644 "$filepath"
        NEED_RESTART=true
    fi
done

if [ "$NEED_RESTART" = true ]; then
    docker restart prowlarr
    echo "Prowlarr redémarré"
fi

Logs :

=== Vérification YGG-API ===
Dernier commit: 2025-11-02T16:04:40Z
ygg-api-download.yml - Nouveau fichier
ygg-api-magnet.yml - Nouveau fichier
prowlarr
Prowlarr redémarré
=== Vérification YGG-API ===
Dernier commit: 2025-11-02T16:04:40Z
ygg-api-download.yml - Déjà à jour
ygg-api-magnet.yml - Déjà à jour
image

Avantages :

  • ✅ Détecte automatiquement tous les fichiers .yml du gist
  • ✅ Renomme les IDs/noms pour éviter les doublons dans Prowlarr (ygg-api-download / ygg-api-magnet)
  • ✅ Ne redémarre que si changements détectés
  • ✅ Future-proof (nouveaux fichiers = auto-détectés)

PS : Je confirme certains commentaires sur les configurations de définitions actuelles, les documentaires ne fonctionne (poutant c'est bien le bon ID de catégorie).

@BLKKKBVSIK
Copy link

J'ai finalement réussis de mon coté avec mon NAS Synology, voici la procédure et le script qui télécharge les .yml automatiquement avec IDs différents si besoin, et redémarre prowlarr ou télécharge les fichiers seulement s'ils ont changés.

Installation automatique sur Synology NAS

Contexte : Prowlarr en Docker, utilisateur dockerlimited (exemple : UID 1000, GID 65000)

1. Préparation (si nécessaire- via SSH ou autre)

sudo rm -rf /volume1/docker/prowlarr/Definitions/Custom*
sudo mkdir -p /volume1/docker/prowlarr/Definitions/Custom
sudo chown 1027:65536 /volume1/docker/prowlarr/Definitions/Custom
sudo chmod 755 /volume1/docker/prowlarr/Definitions/Custom

2. Tâche planifiée DSM

Panneau de configurationPlanificateurCréerScript défini par l'utilisateur

  • Utilisateur : root
  • Planification : Quotidien

Script :

#!/bin/bash
GIST_ID="8bfded23ef23ec78f6678896f42a2b60"
DEFINITIONS_DIR="/volume1/docker/prowlarr/Definitions/Custom"
PUID=1000
PGID=65000

echo "=== Vérification YGG-API ==="

lastCommit=$(curl -s "https://api.github.com/gists/$GIST_ID/commits" | jq -r '.[0].committed_at')
echo "Dernier commit: $lastCommit"

files=$(curl -s "https://api.github.com/gists/$GIST_ID" | jq -r '.files | keys[] | select(endswith(".yml"))')

NEED_RESTART=false

for file in $files; do
    filepath="$DEFINITIONS_DIR/$file"
    filebase="${file%.yml}"
    variant=$(echo "$filebase" | sed 's/ygg-api-//' | sed 's/.*/\u&/')
    
    if [ -f "$filepath" ]; then
        lastWrite=$(date -r "$filepath" +"%Y-%m-%dT%H:%M:%SZ" -u)
        
        if [[ "$lastCommit" > "$lastWrite" ]]; then
            echo "$file - Mise à jour"
            wget -qO "$filepath.tmp" "https://gist.githubusercontent.com/Clemv95/$GIST_ID/raw/$file"
            sed -i "s/^id: yggapi$/id: $filebase/" "$filepath.tmp"
            sed -i "s/^name: YggAPI$/name: YggAPI $variant/" "$filepath.tmp"
            mv "$filepath.tmp" "$filepath"
            chown "$PUID:$PGID" "$filepath"
            chmod 644 "$filepath"
            NEED_RESTART=true
        else
            echo "$file - Déjà à jour"
        fi
    else
        echo "$file - Nouveau fichier"
        wget -qO "$filepath.tmp" "https://gist.githubusercontent.com/Clemv95/$GIST_ID/raw/$file"
        sed -i "s/^id: yggapi$/id: $filebase/" "$filepath.tmp"
        sed -i "s/^name: YggAPI$/name: YggAPI $variant/" "$filepath.tmp"
        mv "$filepath.tmp" "$filepath"
        chown "$PUID:$PGID" "$filepath"
        chmod 644 "$filepath"
        NEED_RESTART=true
    fi
done

if [ "$NEED_RESTART" = true ]; then
    docker restart prowlarr
    echo "Prowlarr redémarré"
fi

Logs :

=== Vérification YGG-API ===
Dernier commit: 2025-11-02T16:04:40Z
ygg-api-download.yml - Nouveau fichier
ygg-api-magnet.yml - Nouveau fichier
prowlarr
Prowlarr redémarré
=== Vérification YGG-API ===
Dernier commit: 2025-11-02T16:04:40Z
ygg-api-download.yml - Déjà à jour
ygg-api-magnet.yml - Déjà à jour
image **Avantages :**
  • ✅ Détecte automatiquement tous les fichiers .yml du gist
  • ✅ Renomme les IDs/noms pour éviter les doublons dans Prowlarr (ygg-api-download / ygg-api-magnet)
  • ✅ Ne redémarre que si changements détectés
  • ✅ Future-proof (nouveaux fichiers = auto-détectés)

PS : Je confirme certains commentaires sur les configurations de définitions actuelles, les documentaires ne fonctionne (poutant c'est bien le bon ID de catégorie).

Incroyable.
Une idée de comment avoir un système similaire sur Unraid ?

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