Skip to content

Instantly share code, notes, and snippets.

@Clemv95
Forked from LimeDrive/ygg-api.yml
Last active January 17, 2026 23:59
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
@El-Daron
Copy link

Pourquoi ?

C'est tracker.p2p-world.net qui est utilisé par défaut sur les nouveaux torrents

Cette fonctionnalité te permet de choisir quel tracker utiliser lors du téléchargement du torrent.

@wiwi95971
Copy link

Bonjour, je ne sais pas si je suis le seul à avoir le problème, mais depuis le crash de ygg hier, ygg-api ne fonctionne plus sur sonarr au niveau des catégorie Dans Jackett j'ai dans les logs

2025-06-03 09:20:35 | Warn | Some of the categories provided are unsupported in Ygg API: 2010,2030,2040,2045,2050,2060

Et sur radarr image et quand je clique sur la liste des catégories c'est vide. Vous avez une idée ?

j'ai pas exactement la même erreur que toi mais effectivement depuis hier YGG-API ne fonctionne plus sur Jackett :

System.Exception: Unknown indexer: ygg-api

[v0.22.1967.0] System.Exception: Unknown indexer: ygg-api
at Jackett.Common.Services.IndexerManagerService.GetWebIndexer(String name) in ./Jackett.Common/Services/IndexerManagerService.cs:line 306
at Jackett.Common.Services.IndexerManagerService.GetIndexer(String name) in ./Jackett.Common/Services/IndexerManagerService.cs:line 279
at Jackett.Server.Controllers.RequiresConfiguredIndexer.OnActionExecuting(ActionExecutingContext context) in ./Jackett.Server/Controllers/ResultsController.cs:line 85
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Jackett.Server.Middleware.CustomExceptionHandler.Invoke(HttpContext httpContext) in ./Jackett.Server/Middleware/CustomExceptionHandler.cs:line 26

@Clemv95
Copy link
Author

Clemv95 commented Jun 16, 2025

Bonjour, je ne sais pas si je suis le seul à avoir le problème, mais depuis le crash de ygg hier, ygg-api ne fonctionne plus sur sonarr au niveau des catégorie Dans Jackett j'ai dans les logs
2025-06-03 09:20:35 | Warn | Some of the categories provided are unsupported in Ygg API: 2010,2030,2040,2045,2050,2060
Et sur radarr image et quand je clique sur la liste des catégories c'est vide. Vous avez une idée ?

j'ai pas exactement la même erreur que toi mais effectivement depuis hier YGG-API ne fonctionne plus sur Jackett :

System.Exception: Unknown indexer: ygg-api

[v0.22.1967.0] System.Exception: Unknown indexer: ygg-api at Jackett.Common.Services.IndexerManagerService.GetWebIndexer(String name) in ./Jackett.Common/Services/IndexerManagerService.cs:line 306 at Jackett.Common.Services.IndexerManagerService.GetIndexer(String name) in ./Jackett.Common/Services/IndexerManagerService.cs:line 279 at Jackett.Server.Controllers.RequiresConfiguredIndexer.OnActionExecuting(ActionExecutingContext context) in ./Jackett.Server/Controllers/ResultsController.cs:line 85 at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope) at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) at Jackett.Server.Middleware.CustomExceptionHandler.Invoke(HttpContext httpContext) in ./Jackett.Server/Middleware/CustomExceptionHandler.cs:line 26

Le fichier est toujours bien monté dans un volume ?

@tifo71
Copy link

tifo71 commented Jun 17, 2025

Perso ça fonctionne nickel. Rien a modifier.

@wiwi95971
Copy link

Bonjour, je ne sais pas si je suis le seul à avoir le problème, mais depuis le crash de ygg hier, ygg-api ne fonctionne plus sur sonarr au niveau des catégorie Dans Jackett j'ai dans les logs
2025-06-03 09:20:35 | Warn | Some of the categories provided are unsupported in Ygg API: 2010,2030,2040,2045,2050,2060
Et sur radarr image et quand je clique sur la liste des catégories c'est vide. Vous avez une idée ?

j'ai pas exactement la même erreur que toi mais effectivement depuis hier YGG-API ne fonctionne plus sur Jackett :
System.Exception: Unknown indexer: ygg-api
[v0.22.1967.0] System.Exception: Unknown indexer: ygg-api at Jackett.Common.Services.IndexerManagerService.GetWebIndexer(String name) in ./Jackett.Common/Services/IndexerManagerService.cs:line 306 at Jackett.Common.Services.IndexerManagerService.GetIndexer(String name) in ./Jackett.Common/Services/IndexerManagerService.cs:line 279 at Jackett.Server.Controllers.RequiresConfiguredIndexer.OnActionExecuting(ActionExecutingContext context) in ./Jackett.Server/Controllers/ResultsController.cs:line 85 at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope) at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) at Jackett.Server.Middleware.CustomExceptionHandler.Invoke(HttpContext httpContext) in ./Jackett.Server/Middleware/CustomExceptionHandler.cs:line 26

Le fichier est toujours bien monté dans un volume ?

Oui il est toujours au même endroit mais Jackett ne me le propose plus

@HanaO00
Copy link

HanaO00 commented Jun 19, 2025

C'est normal qu'un WEB-DL 4K soit dans la catégorie HDTV 2160p ? Ou c'est un problème de prowlarr

Screenshot-2025-06-19_11-40-43
Screenshot-2025-06-19_11-41-05

@tifo71
Copy link

tifo71 commented Jun 19, 2025

j'ai tester sur moi j'ai prowlarr aussi et aucun soucis categorie movie. Bizarre que tu ai ça toi

@HanaO00
Copy link

HanaO00 commented Jun 19, 2025

Ça doit être mon instance qui déconne même le yml ne voulait pas se rajouter, je vais essayer de repartir de zéro

@tifo71
Copy link

tifo71 commented Jun 19, 2025

il faut bien mettre le fichier download pas magnet.yml donc dans le dossier appdata/prowlarr/definitions tu crée un dossier custom et tu le met dedans.

@thenamelessthing
Copy link

avec ygg-download.

Je ne suis pas en mesure de télécharger quoi que ce soit. Des idées?

Downloading for release failed (https://yggapi.eu/torrent/1197863/download?passkey=(removed)&tracker_domain=tracker.p2p-world.net): HTTP request failed: [422:UnprocessableEntity] [GET] at [https://yggapi.eu/torrent/1197863/download?passkey=(removed)&tracker_domain=tracker.p2p-world.net]

NzbDrone.Common.Http.HttpException: HTTP request failed: [422:UnprocessableEntity] [GET] at [https://yggapi.eu/torrent/1197863/download?passkey=(removed)&tracker_domain=tracker.p2p-world.net]
   at NzbDrone.Common.Http.HttpClient.ExecuteAsync(HttpRequest request) in ./Prowlarr.Common/Http/HttpClient.cs:line 128
   at NzbDrone.Core.Indexers.IndexerHttpClient.ExecuteProxiedAsync(HttpRequest request, ProviderDefinition definition) in ./Prowlarr.Core/Indexers/IndexerHttpClient.cs:line 43
   at NzbDrone.Core.Indexers.HttpIndexerBase`1.Download(Uri link) in ./Prowlarr.Core/Indexers/HttpIndexerBase.cs:line 251
{"detail":[{"type":"string_too_long","loc":["query","passkey"],"msg":"String should have at most 32 characters","input":"AelA9088BIGeo3Ivo9ZyaUVZsEbfS20j ","ctx":{"max_length":32}}]}

@tifo71
Copy link

tifo71 commented Jun 24, 2025

Tu as bien mis le fichier au bon endroit et ajouter l'indexeur YGGAPI ?

@tifo71
Copy link

tifo71 commented Jun 24, 2025

oui il faut juste mettre le fichier download yml pas le magnet

@tifo71
Copy link

tifo71 commented Jun 25, 2025

perso y a rien a touché. Moi j'ai dl le fichier, je l'ai mis dans le repertoire Appdata/prowlar/definitions/Custom. Et ajouter l'indexeur YGGAPI et c'est tout. et ça fonctionne parfaitement bien.

@Laiteux
Copy link

Laiteux commented Jun 30, 2025

Version améliorée: https://haste.laiteux.dev/gyenbr

changelog:

  • cleanup lightly
  • update ygg url
  • fix date search and workaround for internal YGG issues:
  • put each word in quotations to prevent exact phrase search
  • strip season-only as tracker does not support partial matches (allows searching for episodes / non season packs)
  • search up to 10 pages

(diff: https://diffchecker.com/bD0LoKX7)

@tifo71
Copy link

tifo71 commented Jun 30, 2025

nickel merci beaucoup

@romaiinb
Copy link

romaiinb commented Jul 5, 2025

@Laiteux
Version améliorée: https://haste.laiteux.dev/gyenbr

Merci pour le partage, ca fonctionne très bien!

@tifo71
Copy link

tifo71 commented Jul 13, 2025

quand on fait une recherche via prowlarr quand on clic sur le lien ca emmene sur yggapi mais y aurai moyen que ça emmene sur la fiche du torrent de ygg ? ou c'est pas possible

@Clemv95
Copy link
Author

Clemv95 commented Jul 14, 2025

Version améliorée: https://haste.laiteux.dev/gyenbr

changelog:

  • cleanup lightly
  • update ygg url
  • fix date search and workaround for internal YGG issues:
  • put each word in quotations to prevent exact phrase search
  • strip season-only as tracker does not support partial matches (allows searching for episodes / non season packs)
  • search up to 10 pages

(diff: https://diffchecker.com/bD0LoKX7)

Merci pour la contrib, j'ai merge dans le gist :)

@Clemv95
Copy link
Author

Clemv95 commented Jul 14, 2025

quand on fait une recherche via prowlarr quand on clic sur le lien ca emmene sur yggapi mais y aurai moyen que ça emmene sur la fiche du torrent de ygg ? ou c'est pas possible

C'est possible, le plus simple serait que @ygg-api rajoute le lien dans les objets retournés par le /torrents

@Laiteux
Copy link

Laiteux commented Jul 14, 2025

possible de le calculer comme ça

@tifo71
Copy link

tifo71 commented Jul 14, 2025

possible de le calculer comme ça

ok nickel merci il faut rajouter ces ligne dans une partie spécifique ou il est complet le yml ?

@tifo71
Copy link

tifo71 commented Jul 14, 2025

quand on fait une recherche via prowlarr quand on clic sur le lien ca emmene sur yggapi mais y aurai moyen que ça emmene sur la fiche du torrent de ygg ? ou c'est pas possible

C'est possible, le plus simple serait que @ygg-api rajoute le lien dans les objets retournés par le /torrents

ok super merci

@Clemv95
Copy link
Author

Clemv95 commented Jul 14, 2025

possible de le calculer comme ça

Yes, mais via les definitions des indexeurs, c'est assez compliqué, j'ai regardé comment construire le lien avec le slug et la catégorie, mais la recup de la catégorie pour le bon chemin est compliqué

@tifo71
Copy link

tifo71 commented Jul 14, 2025

ah ok si c'est trop compliqué c'est pas grave. C'est juste que c'est pratique quoi.

@FlorianLaunay
Copy link

quand on fait une recherche via prowlarr quand on clic sur le lien ca emmene sur yggapi mais y aurai moyen que ça emmene sur la fiche du torrent de ygg ? ou c'est pas possible

C'est possible, le plus simple serait que @ygg-api rajoute le lien dans les objets retournés par le /torrents

J'ai ouvert une issue pour demander cette modif : ygg-api/ygg-api#12 🤞

@tifo71
Copy link

tifo71 commented Jul 16, 2025

quand on fait une recherche via prowlarr quand on clic sur le lien ca emmene sur yggapi mais y aurai moyen que ça emmene sur la fiche du torrent de ygg ? ou c'est pas possible

C'est possible, le plus simple serait que @ygg-api rajoute le lien dans les objets retournés par le /torrents

J'ai ouvert une issue pour demander cette modif : ygg-api/ygg-api#12 🤞

Ah super merci.

@FlorianLaunay
Copy link

@Clemv95 en attendant que mon issue soit traitée (et en admettant qu'elle soit acceptée après le commentaire de @ygg-api dans ygg-api/ygg-api#3), serait-il possible de modifier le gist pour générer un lien direct côté indexeur ?

--- a/ygg-api-download.yml
+++ b/ygg-api-download.yml
@@ -42,6 +42,10 @@
   allowrawsearch: true
 
 settings:
+  - name: website_domain
+    type: text
+    label: YGG website domain
+    default: www.yggtorrent.top
   - name: passkey
     type: password
     label: Passkey
@@ -177,8 +181,33 @@
       text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_normal }}{{ end }}"
     _id:
       selector: id
+    _slug:
+      selector: slug
+    _category_name:
+      selector: category_id
+      case:
+        2147: "audio/karaoké"
+        2148: "audio/musique"
+        2149: "audio/samples"
+        2150: "audio/podcast-radio"
+        2151: "ebook/audio"
+        2152: "ebook/bds"
+        2153: "ebook/comics"
+        2154: "ebook/livres"
+        2155: "ebook/mangas"
+        2156: "ebook/presse"
+        2178: "filmvidéo/animation"
+        2179: "filmvidéo/animation-série"
+        2180: "filmvidéo/concert"
+        2181: "filmvidéo/documentaire"
+        2182: "filmvidéo/émission-tv"
+        2183: "filmvidéo/film"
+        2184: "filmvidéo/série-tv"
+        2185: "filmvidéo/spectacle"
+        2186: "filmvidéo/sport"
+        2187: "filmvidéo/vidéo-clips"
     details:
-      text: "torrent/{{ .Result._id }}"
+      text: "https://{{ .Config.website_domain }}/torrent/{{ .Result._category_name }}/{{ .Result._id }}-{{ .Result._slug }}"
     download:
       text: "torrent/{{ .Result._id }}/download?passkey={{ .Config.passkey }}&tracker_domain={{ .Config.tracker_domain }}"
     year:

Merci @Laiteux pour ton exemple 🙏

@Clemv95
Copy link
Author

Clemv95 commented Jul 16, 2025

@Clemv95 en attendant que mon issue soit traitée (et en admettant qu'elle soit acceptée après le commentaire de @ygg-api dans ygg-api/ygg-api#3), serait-il possible de modifier le gist pour générer un lien direct côté indexeur ?

--- a/ygg-api-download.yml
+++ b/ygg-api-download.yml
@@ -42,6 +42,10 @@
   allowrawsearch: true
 
 settings:
+  - name: website_domain
+    type: text
+    label: YGG website domain
+    default: www.yggtorrent.top
   - name: passkey
     type: password
     label: Passkey
@@ -177,8 +181,33 @@
       text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_normal }}{{ end }}"
     _id:
       selector: id
+    _slug:
+      selector: slug
+    _category_name:
+      selector: category_id
+      case:
+        2147: "audio/karaoké"
+        2148: "audio/musique"
+        2149: "audio/samples"
+        2150: "audio/podcast-radio"
+        2151: "ebook/audio"
+        2152: "ebook/bds"
+        2153: "ebook/comics"
+        2154: "ebook/livres"
+        2155: "ebook/mangas"
+        2156: "ebook/presse"
+        2178: "filmvidéo/animation"
+        2179: "filmvidéo/animation-série"
+        2180: "filmvidéo/concert"
+        2181: "filmvidéo/documentaire"
+        2182: "filmvidéo/émission-tv"
+        2183: "filmvidéo/film"
+        2184: "filmvidéo/série-tv"
+        2185: "filmvidéo/spectacle"
+        2186: "filmvidéo/sport"
+        2187: "filmvidéo/vidéo-clips"
     details:
-      text: "torrent/{{ .Result._id }}"
+      text: "https://{{ .Config.website_domain }}/torrent/{{ .Result._category_name }}/{{ .Result._id }}-{{ .Result._slug }}"
     download:
       text: "torrent/{{ .Result._id }}/download?passkey={{ .Config.passkey }}&tracker_domain={{ .Config.tracker_domain }}"
     year:

Merci @Laiteux pour ton exemple 🙏

Je vais integrer ça alors !

@tifo71
Copy link

tifo71 commented Jul 16, 2025

ah mais trop biennnnn ça y ai ça pointe sur ygg merciiiiiiiiiiiiiiiiiiiii. Vous avez trouver la soluce

@ygg-api
Copy link

ygg-api commented Jul 22, 2025

J'arrive après la bataille et effectivement je voulais pas ajouter le link dans les résultats pour des raisons de perf mais finalement c'est bon :-)

La différence avec la méthode dans le fichier actuelle c'est que le lien généré par yggapi fonctionne avec toutes les catégories (même si ygg affiche le torrent même si la catégorie est pas bonne).

@Clemv95 Tu pourras updater les configs s'il te plaît ?
@Laiteux Est-ce que tu pourras modifier ton moteur de recherche qbitorrent s'il te plaît pour utiliser le nouveau champ ? C'est à ma connaissance le seul projet qui utilise le champ slug et vu qu'il y a le lien, j'aimerai supprimer le champ slug par la suite.

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