Skip to content

Instantly share code, notes, and snippets.

@Clemv95
Forked from LimeDrive/ygg-api.yml
Last active June 6, 2025 07:09
Show Gist options
  • Save Clemv95/8bfded23ef23ec78f6678896f42a2b60 to your computer and use it in GitHub Desktop.
Save Clemv95/8bfded23ef23ec78f6678896f42a2b60 to your computer and use it in GitHub Desktop.
Indexeur ygg-api pour jackett / prowlarr
---
id: ygg-api
name: Ygg API
description: Indexeur non officiel pour ygg.re MOVIES / TV
language: fr-FR
type: private
encoding: UTF-8
testlinktorrent: false
links:
- https://yggapi.eu/
caps:
categorymappings:
- {id: 2178, cat: Movies/Other, desc: "Films d’animation"}
- {id: 2183, cat: Movies, desc: "Films"}
- {id: 2145, cat: TV, desc: "Film/Vidéo"}
- {id: 2179, cat: TV/Anime, desc: "Séries d’animation / Mangas"}
- {id: 2181, cat: TV/Documentary, desc: "Film/Vidéo : Documentaire"}
- {id: 2182, cat: TV, desc: "Film/Vidéo : Emission TV"}
- {id: 2184, cat: TV, desc: "Séries"}
- {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: 2149, cat: Audio/Other, desc: "Audio : Samples"}
- {id: 2150, cat: Audio, desc: "Audio : Podcast Radio"}
- {id: 2151, cat: Audio/Audiobook, desc: "eBook : Audio"}
- {id: 2180, cat: Audio/Video, desc: "Film/Vidéo : Concert"}
- {id: 2140, cat: Books, desc: "eBook"}
- {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]
movie-search: [q, year]
allowrawsearch: true
settings:
- 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.ygg.re/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: 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:
$raw: "{{ range .Categories }}&category_id={{.}}{{end}}"
q: "{{ .Keywords }}"
page: 1
per_page: 100
order_by: "{{ .Config.sort }}"
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:
text: "torrent/{{ .Result._id }}"
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: ygg-api
name: Ygg API
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: 2178, cat: Movies/Other, desc: "Films d’animation"}
- {id: 2183, cat: Movies, desc: "Films"}
- {id: 2145, cat: TV, desc: "Film/Vidéo"}
- {id: 2179, cat: TV/Anime, desc: "Séries d’animation / Mangas"}
- {id: 2181, cat: TV/Documentary, desc: "Film/Vidéo : Documentaire"}
- {id: 2182, cat: TV, desc: "Film/Vidéo : Emission TV"}
- {id: 2184, cat: TV, desc: "Séries"}
- {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: 2149, cat: Audio/Other, desc: "Audio : Samples"}
- {id: 2150, cat: Audio, desc: "Audio : Podcast Radio"}
- {id: 2151, cat: Audio/Audiobook, desc: "eBook : Audio"}
- {id: 2180, cat: Audio/Video, desc: "Film/Vidéo : Concert"}
- {id: 2140, cat: Books, desc: "eBook"}
- {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]
movie-search: [q, year]
music-search: [q]
book-search: [q]
allowrawsearch: true
settings:
- 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
- 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: 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 }}"]
search:
paths:
- path: torrents
response:
type: json
inputs:
$raw: "{{ range .Categories }}&category_id={{.}}{{end}}"
q: "{{ .Keywords }}"
page: 1
per_page: 100
order_by: "{{ .Config.sort }}"
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:
text: "torrent/{{ .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
@thenamelessthing
Copy link

Bonjour, avec yggapi mes téléchargements restent à 0% et ca indique error not found.

Des idées?

image

@Bastien42
Copy link

Bastien42 commented May 16, 2025

Alors j'ai expérimenté quelque-chose et il me semble que le problème viennent du faite que l'API envoie un lien magnet a qbitorrent ou autre par exemple ce Torrent

https://yggapi.eu/torrent/860900

Refuse de ce télécharger via l'API il reste bloqué en "downloading metadata" alors que si je vais manuellement chercher le fichier torrent sur le site et l'ajoute manuellement il se télécharge correctement il y a un paramètre dans l'indexer qui dans mon cas n'est pas coché "Prefer Magnet URL" peut-être que malgré tout le dl ce fait via les magnets

Je rajoute que ce problème n'arrive que sur les torrent avec peu de seed donc peut-être un problème de gestion des magnet par ygg aussi ou les requêtes de metadata ne sont pas bien géré.

@Clemv95
Copy link
Author

Clemv95 commented May 18, 2025

Bonjour, avec yggapi mes téléchargements restent à 0% et ca indique error not found.

Des idées?

image

Mmh, tu as bien mis ta passkey ?

@Clemv95
Copy link
Author

Clemv95 commented May 18, 2025

Alors j'ai expérimenté quelque-chose et il me semble que le problème viennent du faite que l'API envoie un lien magnet a qbitorrent ou autre par exemple ce Torrent

https://yggapi.eu/torrent/860900

Refuse de ce télécharger via l'API il reste bloqué en "downloading metadata" alors que si je vais manuellement chercher le fichier torrent sur le site et l'ajoute manuellement il se télécharge correctement il y a un paramètre dans l'indexer qui dans mon cas n'est pas coché "Prefer Magnet URL" peut-être que malgré tout le dl ce fait via les magnets

Je rajoute que ce problème n'arrive que sur les torrent avec peu de seed donc peut-être un problème de gestion des magnet par ygg aussi ou les requêtes de metadata ne sont pas bien géré.

Yes la configuration actuelle envoit un lien magnet vers le client de torrent
Normalement la plupart des clients gères les magnet
Essayes avec l'option peut être

@thenamelessthing
Copy link

Bonjour, avec yggapi mes téléchargements restent à 0% et ca indique error not found.
Des idées?
image

Mmh, tu as bien mis ta passkey ?

Oui, après quelques recherches. Il semblerait que les quelques torrents problématique soient des torrents n'ayant aucun seed.. Donc ça expliquerais le problème.

@thenamelessthing
Copy link

thenamelessthing commented May 19, 2025

Dans le fichier yml, ca serait bien d'inclure un numéro de version. Ca faciliterais les choses lorsques vient le temps de vérifier si nous avons la verson la plus à jour du fichier non?

Merci

@almottier
Copy link

Salut @Clemv95 , je vois que la PR Jackett pour integration yggapi est fermée... On ne pourrait pas re-tenter ? Pour Prowlarr tu as essayé aussi ?

@DoloresOmbrage
Copy link

Alors j'ai expérimenté quelque-chose et il me semble que le problème viennent du faite que l'API envoie un lien magnet a qbitorrent ou autre par exemple ce Torrent

https://yggapi.eu/torrent/860900

Refuse de ce télécharger via l'API il reste bloqué en "downloading metadata" alors que si je vais manuellement chercher le fichier torrent sur le site et l'ajoute manuellement il se télécharge correctement il y a un paramètre dans l'indexer qui dans mon cas n'est pas coché "Prefer Magnet URL" peut-être que malgré tout le dl ce fait via les magnets

Je rajoute que ce problème n'arrive que sur les torrent avec peu de seed donc peut-être un problème de gestion des magnet par ygg aussi ou les requêtes de metadata ne sont pas bien géré.

salut perso j'utilise rutorrent et j'ai h24 des liens magnet également sauf que moi ils se télécharge pas sauf au bout de plusieurs heures alors as tu trouver une solution ? je t'ai entendu parler d'une option mais je ne l'ai pas trouver
merci

@thenamelessthing
Copy link

Bonjour, avec yggapi mes téléchargements restent à 0% et ca indique error not found.
Des idées?
image

Mmh, tu as bien mis ta passkey ?

Oui, après quelques recherches. Il semblerait que les quelques torrents problématique soient des torrents n'ayant aucun seed.. Donc ça expliquerais le problème.

Bon finalement, j'ai toujours le problème..

image

image

@almottier
Copy link

@thenamelessthing certainement car le domaine est bloqué en France, regarde ici ygg-api/ygg-api#5 (comment)

@idjul
Copy link

idjul commented May 24, 2025

J'ai un soucis de mon côté, quand j'essaie avec ce torrent: https://yggapi.eu/torrent/976337
J'ai un fichier .meta qui se crée dans RuTorrent , mais le téléchargement ne se lance pas. ça m'était déjà arrivé sur quelques autres torrents. Je n'arrive pas à comprendre pourquoi.

Capture d’écran 2025-05-24 202257

EDIT: je viens de remettre en place mon ancien yml qui ne contenait pas la partie ci-dessous et tout fonctionne parfaitement :

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 }}"]

@DoloresOmbrage
Copy link

DoloresOmbrage commented May 25, 2025

J'ai un soucis de mon côté, quand j'essaie avec ce torrent: https://yggapi.eu/torrent/976337 J'ai un fichier .meta qui se crée dans RuTorrent , mais le téléchargement ne se lance pas. ça m'était déjà arrivé sur quelques autres torrents. Je n'arrive pas à comprendre pourquoi.

Capture d’écran 2025-05-24 202257

EDIT: je viens de remettre en place mon ancien yml qui ne contenait pas la partie ci-dessous et tout fonctionne parfaitement :

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 }}"]

bonsoir a toi possible que tu m'envoie ton fichier yml en privee sur discord par exemple ? j'ai aussi le soucis des meta c'est insupportable

@idjul
Copy link

idjul commented May 26, 2025

J'ai un soucis de mon côté, quand j'essaie avec ce torrent: https://yggapi.eu/torrent/976337 J'ai un fichier .meta qui se crée dans RuTorrent , mais le téléchargement ne se lance pas. ça m'était déjà arrivé sur quelques autres torrents. Je n'arrive pas à comprendre pourquoi.
Capture d’écran 2025-05-24 202257
EDIT: je viens de remettre en place mon ancien yml qui ne contenait pas la partie ci-dessous et tout fonctionne parfaitement :

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 }}"]

bonsoir a toi possible que tu m'envoie ton fichier yml en privee sur discord par exemple ? j'ai aussi le soucis des meta c'est insupportable

Je l'ai mis ici : https://pastebin.com/jLK61m9H

@DoloresOmbrage
Copy link

J'ai un soucis de mon côté, quand j'essaie avec ce torrent: https://yggapi.eu/torrent/976337 J'ai un fichier .meta qui se crée dans RuTorrent , mais le téléchargement ne se lance pas. ça m'était déjà arrivé sur quelques autres torrents. Je n'arrive pas à comprendre pourquoi.
Capture d’écran 2025-05-24 202257
EDIT: je viens de remettre en place mon ancien yml qui ne contenait pas la partie ci-dessous et tout fonctionne parfaitement :

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 }}"]

bonsoir a toi possible que tu m'envoie ton fichier yml en privee sur discord par exemple ? j'ai aussi le soucis des meta c'est insupportable

Je l'ai mis ici : https://pastebin.com/jLK61m9H

je te remercie je vais tester cela

@CptBeer
Copy link

CptBeer commented May 27, 2025

J'ai un soucis de mon côté, quand j'essaie avec ce torrent: https://yggapi.eu/torrent/976337 J'ai un fichier .meta qui se crée dans RuTorrent , mais le téléchargement ne se lance pas. ça m'était déjà arrivé sur quelques autres torrents. Je n'arrive pas à comprendre pourquoi.
Capture d’écran 2025-05-24 202257
EDIT: je viens de remettre en place mon ancien yml qui ne contenait pas la partie ci-dessous et tout fonctionne parfaitement :

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 }}"]

bonsoir a toi possible que tu m'envoie ton fichier yml en privee sur discord par exemple ? j'ai aussi le soucis des meta c'est insupportable

Je l'ai mis ici : https://pastebin.com/jLK61m9H

Bonjour,

J'ai testé avec le nouveau contenu, mais malheureusement ça reste bloqué sur "Downloading metadata"

@idjul
Copy link

idjul commented May 27, 2025

J'ai un soucis de mon côté, quand j'essaie avec ce torrent: https://yggapi.eu/torrent/976337 J'ai un fichier .meta qui se crée dans RuTorrent , mais le téléchargement ne se lance pas. ça m'était déjà arrivé sur quelques autres torrents. Je n'arrive pas à comprendre pourquoi.
Capture d’écran 2025-05-24 202257
EDIT: je viens de remettre en place mon ancien yml qui ne contenait pas la partie ci-dessous et tout fonctionne parfaitement :

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 }}"]

bonsoir a toi possible que tu m'envoie ton fichier yml en privee sur discord par exemple ? j'ai aussi le soucis des meta c'est insupportable

Je l'ai mis ici : https://pastebin.com/jLK61m9H

Bonjour,

J'ai testé avec le nouveau contenu, mais malheureusement ça reste bloqué sur "Downloading metadata"

Tu es bien sur d'avoir supprimé l'ancien yaml puis redémarré prowlarr?
PS: pas très malin d'avoir mis un screen avec ta passkey, qui en plus contient un espace à la fin ... (qui je pense est le problème au final)

@CptBeer
Copy link

CptBeer commented May 27, 2025

Effectivement c'était bien un soucis de passkey... Merci !

@CptBeer
Copy link

CptBeer commented May 27, 2025

J'ai parlé trop vite : après seulement un téléchargement correct depuis radarr, ça re bloque sur "Downloading metadata" à 0% alors que le statut du tracker est sur "working" et que j'ai des Peers/Seeds... Après peut être qu'il vaut mieux que je fasse un post reddit ?

@idjul
Copy link

idjul commented May 27, 2025 via email

@DoloresOmbrage
Copy link

J'ai parlé trop vite : après seulement un téléchargement correct depuis radarr, ça re bloque sur "Downloading metadata" à 0% alors que le statut du tracker est sur "working" et que j'ai des Peers/Seeds... Après peut être qu'il vaut mieux que je fasse un post reddit ?

j'ai pas encore essayer mais ta tester le yml de idjul ? a priori il a plu de soucis depuis

@ygg-api
Copy link

ygg-api commented May 27, 2025

@Clemv95 Je crois qu'il est possible d'ajouter plusieurs fichiers sur un gist. Vu qu'il y a certaines personnes qui ne trouvent pas comment ajouter le fichier dans prowlarr ou jackett (c'est décrit dans ton premier commentaire mais pas visible par défaut), ça peut être intéressant d'ajouter un fichier .md avec l'info non ?

@Clemv95
Copy link
Author

Clemv95 commented May 28, 2025

@Clemv95 Je crois qu'il est possible d'ajouter plusieurs fichiers sur un gist. Vu qu'il y a certaines personnes qui ne trouvent pas comment ajouter le fichier dans prowlarr ou jackett (c'est décrit dans ton premier commentaire mais pas visible par défaut), ça peut être intéressant d'ajouter un fichier .md avec l'info non ?

Désolé à tous j'avais plus les notifs des messages :/

J'ai mis à jour le gist avec deux version, une version magnet, et la version download, qui est l'ancienne, j'invite tous ceux ayant des soucis avec la magnet, soit à changer de client de dl (avec deluge j'ai aucun soucis), soit passer sur la version download

@Bastien42
Copy link

@Clemv95 Je crois qu'il est possible d'ajouter plusieurs fichiers sur un gist. Vu qu'il y a certaines personnes qui ne trouvent pas comment ajouter le fichier dans prowlarr ou jackett (c'est décrit dans ton premier commentaire mais pas visible par défaut), ça peut être intéressant d'ajouter un fichier .md avec l'info non ?

Désolé à tous j'avais plus les notifs des messages :/

J'ai mis à jour le gist avec deux version, une version magnet, et la version download, qui est l'ancienne, j'invite tous ceux ayant des soucis avec la magnet, soit à changer de client de dl (avec deluge j'ai aucun soucis), soit passer sur la version download

Merci la version download fonctionne parfaitement sur les torrent qui précédemment n'arrivait pas dl les metadata depuis le magnet sur les torrent a peut de seed

@TEALC82
Copy link

TEALC82 commented May 28, 2025

@Clemv95 Je crois qu'il est possible d'ajouter plusieurs fichiers sur un gist. Vu qu'il y a certaines personnes qui ne trouvent pas comment ajouter le fichier dans prowlarr ou jackett (c'est décrit dans ton premier commentaire mais pas visible par défaut), ça peut être intéressant d'ajouter un fichier .md avec l'info non ?

Désolé à tous j'avais plus les notifs des messages :/
J'ai mis à jour le gist avec deux version, une version magnet, et la version download, qui est l'ancienne, j'invite tous ceux ayant des soucis avec la magnet, soit à changer de client de dl (avec deluge j'ai aucun soucis), soit passer sur la version download

Merci la version download fonctionne parfaitement sur les torrent qui précédemment n'arrivait pas dl les metadata depuis le magnet sur les torrent a peut de seed

Bonsoir, ce n'est pas du tout un problème de seed ! Un magnet ne contient que très peu d'infos par rapport à un .torrent. Donc si personne n'a ajouté le .torrent sur le debrideur, ton magnet ne fonctionnera jamais car il ne reconnais pas le #hash.

@Bastien42
Copy link

@Clemv95 Je crois qu'il est possible d'ajouter plusieurs fichiers sur un gist. Vu qu'il y a certaines personnes qui ne trouvent pas comment ajouter le fichier dans prowlarr ou jackett (c'est décrit dans ton premier commentaire mais pas visible par défaut), ça peut être intéressant d'ajouter un fichier .md avec l'info non ?

Désolé à tous j'avais plus les notifs des messages :/
J'ai mis à jour le gist avec deux version, une version magnet, et la version download, qui est l'ancienne, j'invite tous ceux ayant des soucis avec la magnet, soit à changer de client de dl (avec deluge j'ai aucun soucis), soit passer sur la version download

Merci la version download fonctionne parfaitement sur les torrent qui précédemment n'arrivait pas dl les metadata depuis le magnet sur les torrent a peut de seed

Bonsoir, ce n'est pas du tout un problème de seed ! Un magnet ne contient que très peu d'infos par rapport à un .torrent. Donc si personne n'a ajouté le .torrent sur le debrideur, ton magnet ne fonctionnera jamais car il ne reconnais pas le #hash.

Oh ok je prends l'info je me doutais que c'était quelque chose comme ça merci

@loonsies
Copy link

petit fichier bash pour mettre a jour automatiquement :

curl -o /mnt/user/appdata/prowlarr/Definitions/Custom/ygg-api.yml https://gist.githubusercontent.com/Clemv95/8bfded23ef23ec78f6678896f42a2b60/raw

@idjul
Copy link

idjul commented May 29, 2025

Hello,

J'ai adapté le yml pour prendre en compte le tracker à utiliser lors de la configuration :

ygg-api-download.yml :

---
id: ygg-api
name: Ygg API
description: Indexeur non officiel pour ygg.re MOVIES / TV
language: fr-FR
type: private
encoding: UTF-8
testlinktorrent: false
links:
  - https://yggapi.eu/
 
caps:
  categorymappings:
    - {id: 2178, cat: Movies/Other, desc: "Films d’animation"}
    - {id: 2183, cat: Movies, desc: "Films"}
    - {id: 2145, cat: TV, desc: "Film/Vidéo"}
    - {id: 2179, cat: TV/Anime, desc: "Séries d’animation / Mangas"}
    - {id: 2181, cat: TV/Documentary, desc: "Film/Vidéo : Documentaire"}
    - {id: 2182, cat: TV, desc: "Film/Vidéo : Emission TV"}
    - {id: 2184, cat: TV, desc: "Séries"}
    - {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: 2149, cat: Audio/Other, desc: "Audio : Samples"}
    - {id: 2150, cat: Audio, desc: "Audio : Podcast Radio"}
    - {id: 2151, cat: Audio/Audiobook, desc: "eBook : Audio"}
    - {id: 2180, cat: Audio/Video, desc: "Film/Vidéo : Concert"}
    - {id: 2140, cat: Books, desc: "eBook"}
    - {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]
    movie-search: [q, year]
  allowrawsearch: true
 
settings:
  - 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.ygg.re/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: 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:
    $raw: "{{ range .Categories }}&category_id={{.}}{{end}}"
    q: "{{ .Keywords }}"
    page: 1
    per_page: 100
    order_by: "{{ .Config.sort }}"
 
  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:
      text: "torrent/{{ .Result._id }}"
    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

@Clemv95
Copy link
Author

Clemv95 commented May 29, 2025

Hello,

J'ai adapté le yml pour prendre en compte le tracker à utiliser lors de la configuration :

ygg-api-download.yml :

---
id: ygg-api
name: Ygg API
description: Indexeur non officiel pour ygg.re MOVIES / TV
language: fr-FR
type: private
encoding: UTF-8
testlinktorrent: false
links:
  - https://yggapi.eu/
 
caps:
  categorymappings:
    - {id: 2178, cat: Movies/Other, desc: "Films d’animation"}
    - {id: 2183, cat: Movies, desc: "Films"}
    - {id: 2145, cat: TV, desc: "Film/Vidéo"}
    - {id: 2179, cat: TV/Anime, desc: "Séries d’animation / Mangas"}
    - {id: 2181, cat: TV/Documentary, desc: "Film/Vidéo : Documentaire"}
    - {id: 2182, cat: TV, desc: "Film/Vidéo : Emission TV"}
    - {id: 2184, cat: TV, desc: "Séries"}
    - {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: 2149, cat: Audio/Other, desc: "Audio : Samples"}
    - {id: 2150, cat: Audio, desc: "Audio : Podcast Radio"}
    - {id: 2151, cat: Audio/Audiobook, desc: "eBook : Audio"}
    - {id: 2180, cat: Audio/Video, desc: "Film/Vidéo : Concert"}
    - {id: 2140, cat: Books, desc: "eBook"}
    - {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]
    movie-search: [q, year]
  allowrawsearch: true
 
settings:
  - 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.ygg.re/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: 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:
    $raw: "{{ range .Categories }}&category_id={{.}}{{end}}"
    q: "{{ .Keywords }}"
    page: 1
    per_page: 100
    order_by: "{{ .Config.sort }}"
 
  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:
      text: "torrent/{{ .Result._id }}"
    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

Merci pour la contribution, je vais update le gist

@Okiod
Copy link

Okiod commented Jun 3, 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 ?

@ygg-api
Copy link

ygg-api commented Jun 6, 2025

Bonjour
Il doit y avoir un souci quelque part car il y a des catégories qui n'existent pas dans celles listées (2010, 2020 et 2030) :-)

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