-
Star
(153)
You must be signed in to star a gist -
Fork
(12)
You must be signed in to fork a gist
-
-
Save Clemv95/8bfded23ef23ec78f6678896f42a2b60 to your computer and use it in GitHub Desktop.
| --- | |
| 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 |
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 radarret 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 ?
Perso ça fonctionne nickel. Rien a modifier.
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 radarret 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 26Le fichier est toujours bien monté dans un volume ?
Oui il est toujours au même endroit mais Jackett ne me le propose plus
j'ai tester sur moi j'ai prowlarr aussi et aucun soucis categorie movie. Bizarre que tu ai ça toi
Ç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
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.
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}}]}
Tu as bien mis le fichier au bon endroit et ajouter l'indexeur YGGAPI ?
oui il faut juste mettre le fichier download yml pas le magnet
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.
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)
nickel merci beaucoup
@Laiteux
Version améliorée: https://haste.laiteux.dev/gyenbr
Merci pour le partage, ca fonctionne très bien!
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
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 :)
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
possible de le calculer comme ça
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 ?
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
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é
ah ok si c'est trop compliqué c'est pas grave. C'est juste que c'est pratique quoi.
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 🤞
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.
@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 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 !
ah mais trop biennnnn ça y ai ça pointe sur ygg merciiiiiiiiiiiiiiiiiiiii. Vous avez trouver la soluce
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.
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
sluget vu qu'il y a le lien, j'aimerai supprimer le champ slug par la suite.
ça fonctionne nickel. Après c'est vrai que la recherche est un peu moins rapide qu'avant mais du coup c'est due au link. Mais c'est super pratique d'allez direct sur la fiche du torrent.
Après si y a moyen d'optimiser la vitesse de recherche meme avec le link let's go.
En tout cas merci car punaise que ça fonctionne bien. vous êtes des GOAT les mecs. bravo



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