Skip to content

Instantly share code, notes, and snippets.

@Clemv95
Forked from LimeDrive/ygg-api.yml
Last active April 1, 2025 21:45
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: 2179, cat: TV/Anime, desc: "Séries d’animation / Mangas"}
- {id: 2183, cat: Movies, desc: "Films"}
- {id: 2184, cat: TV, desc: "Séries"}
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: 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 }}"
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 Nov 13, 2024

Fix pour sonarr, et ajout de remplacement de MULTI par plusieurs choix
Installation :

Pour jackett : Directement trouvable dans la liste des indexeurs sur l'interface

$CONFIG_DIR = le dossier de configuration /config qui est map de docker sur votre system.

Récupérez bien avec un wget le fichier raw, pour éviter d'éventuelles erreurs de copier coller
Pour jackett :$CONFIG_DIR/Definitions/ygg-api.yml

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

Redémarrer le container et c'est bon !

Passkey à trouver sur son profil YGG !

@Oxechi
Copy link

Oxechi commented Nov 14, 2024

Marche parfaitement sur quelques films et séries !
Je ne sais pas si ça vient de moi mais impossible de trouver les épisodes de la séries d'ARCANE par contre alors qu'ils existent bien...
Merci pour le script !

@almottier
Copy link

Merci c'est niquel avec Prowlarr.
Pas de soucis pour moi pour Arcane (categorie TV/Anime) @Oxechi

@LucDeGit
Copy link

J'ai mis le fichier dans prowlarr et il n'apparait dans la liste c'est normal ? Merci :)

@Clemv95
Copy link
Author

Clemv95 commented Nov 16, 2024

J'ai mis le fichier dans prowlarr et il n'apparait dans la liste c'est normal ? Merci :)

A quel endroit l'a tu mis ?

@LucDeGit
Copy link

Alors je l'avais mis que dans Distribution mais pas avec le dossier Custom de créer, mtn ça marche haha

@0xNoNames
Copy link

Salut,

Juste une petit fix pour cette partie :

  - name: sort
    type: select
    label: Sort requested from site
    default: uploaded_at
    options:
      uploaded_at: publish_date
      seed: seeders

D'après la doc d'yggapi, order_by peut prendre les valeurs uploaded_at, seeders, downloads, j'ai donc fix seeders et ajouté downloads !

  - name: sort
    type: select
    label: Sort requested from site
    default: uploaded_at
    options:
      uploaded_at: publish_date
      seeders: seeders
      downloads: downloads

PS: il me semble pas qu'on puisse faire de PR sur les gist non ? 🤔

@Clemv95
Copy link
Author

Clemv95 commented Nov 17, 2024

Salut,

Juste une petit fix pour cette partie :

  - name: sort
    type: select
    label: Sort requested from site
    default: uploaded_at
    options:
      uploaded_at: publish_date
      seed: seeders

D'après la doc d'yggapi, order_by peut prendre les valeurs uploaded_at, seeders, downloads, j'ai donc fix seeders et ajouté downloads !

  - name: sort
    type: select
    label: Sort requested from site
    default: uploaded_at
    options:
      uploaded_at: publish_date
      seeders: seeders
      downloads: downloads

PS: il me semble pas qu'on puisse faire de PR sur les gist non ? 🤔

Merci pour le fix
J'ai edit le gist :)
Nope pas possible malheureusement de faire de PR

@lamplis
Copy link

lamplis commented Dec 9, 2024

Hello,
Pour Jackett, j'ai bien créé un dossier $CONFIG_DIR/Definitions/ygg-api.yml
Et après redémarrage je n'ai rien.
Par contre j'ai une dossier $CONFIG_DIR/Indexers/ avec des fichiers json dedans

cat torrent9.json
[
  {
    "id": "sitelink",
    "type": "inputstring",
    "name": "Site Link",
    "value": "https://ww1.torrent9.fm/"
  },
  {
    "id": "cookieheader",
    "type": "hiddendata",
    "name": "CookieHeader",
    "value": "PHPSESSID=3ma001iqd1uadsk54jrsl15690"
  },
  {
    "id": "lasterror",
    "type": "hiddendata",
    "name": "LastError",
    "value": null
  },
  {
    "id": "replacemultibyanotherlanguageinreleasename",
    "type": "inputbool",
    "name": "Replace MULTi by another language in release name",
    "value": false
  },
  {
    "id": "replacemultibythislanguage",
    "type": "inputselect",
    "name": "Replace MULTi by this language",
    "value": "FRENCH",
    "options": {
      "FRENCH": "FRENCH",
      "MULTi FRENCH": "MULTi FRENCH",
      "ENGLISH": "ENGLISH",
      "MULTi ENGLISH": "MULTi ENGLISH",
      "VOSTFR": "VOSTFR",
      "MULTi VOSTFR": "MULTi VOSTFR"
    }
  },
  {
    "id": "replacevostfrandsubfrenchwithenglish",
    "type": "inputbool",
    "name": "Replace VOSTFR and SUBFRENCH with ENGLISH",
    "value": false
  },
  {
    "id": "sortrequestedfromsite(onlyworksforsearcheswithkeywords)",
    "type": "inputselect",
    "name": "Sort requested from site (Only works for searches with Keywords)",
    "value": ".html",
    "options": {
      ".html": "best",
      ".html,trie-date-d": "created desc",
      ".html,trie-date-a": "created asc",
      ".html,trie-seeds-d": "seeders desc",
      ".html,trie-seeds-a": "seeders asc",
      ".html,trie-poid-d": "size desc",
      ".html,trie-poid-a": "size asc",
      ".html,trie-nom-d": "title desc",
      ".html,trie-nom-a": "title asc"
    }
  },
  {
    "id": "tags",
    "type": "inputtags",
    "name": "Tags",
    "value": ""
  }
]

J'ai loupé une manipulation à faire ?

@lamplis
Copy link

lamplis commented Dec 9, 2024

Successfully added custom Indexer to Jackett with docker :

docker exec -it jackett /bin/bash
cd /app/Jackett/Definitions/
wget https://gist.githubusercontent.com/Clemv95/8bfded23ef23ec78f6678896f42a2b60/raw/350af94aa453148e5a5f1811debfa1ae9e46cc9a/ygg-api.yml

ctrl+d

sudo docker-compose restart

@BK-STAR77
Copy link

BK-STAR77 commented Dec 9, 2024

Hello, Pour Jackett, j'ai bien créé un dossier $CONFIG_DIR/Definitions/ygg-api.yml Et après redémarrage je n'ai rien. Par contre j'ai une dossier $CONFIG_DIR/Indexers/ avec des fichiers json dedans

cat torrent9.json
[
  {
    "id": "sitelink",
    "type": "inputstring",
    "name": "Site Link",
    "value": "https://ww1.torrent9.fm/"
  },
  {
    "id": "cookieheader",
    "type": "hiddendata",
    "name": "CookieHeader",
    "value": "PHPSESSID=3ma001iqd1uadsk54jrsl15690"
  },
  {
    "id": "lasterror",
    "type": "hiddendata",
    "name": "LastError",
    "value": null
  },
  {
    "id": "replacemultibyanotherlanguageinreleasename",
    "type": "inputbool",
    "name": "Replace MULTi by another language in release name",
    "value": false
  },
  {
    "id": "replacemultibythislanguage",
    "type": "inputselect",
    "name": "Replace MULTi by this language",
    "value": "FRENCH",
    "options": {
      "FRENCH": "FRENCH",
      "MULTi FRENCH": "MULTi FRENCH",
      "ENGLISH": "ENGLISH",
      "MULTi ENGLISH": "MULTi ENGLISH",
      "VOSTFR": "VOSTFR",
      "MULTi VOSTFR": "MULTi VOSTFR"
    }
  },
  {
    "id": "replacevostfrandsubfrenchwithenglish",
    "type": "inputbool",
    "name": "Replace VOSTFR and SUBFRENCH with ENGLISH",
    "value": false
  },
  {
    "id": "sortrequestedfromsite(onlyworksforsearcheswithkeywords)",
    "type": "inputselect",
    "name": "Sort requested from site (Only works for searches with Keywords)",
    "value": ".html",
    "options": {
      ".html": "best",
      ".html,trie-date-d": "created desc",
      ".html,trie-date-a": "created asc",
      ".html,trie-seeds-d": "seeders desc",
      ".html,trie-seeds-a": "seeders asc",
      ".html,trie-poid-d": "size desc",
      ".html,trie-poid-a": "size asc",
      ".html,trie-nom-d": "title desc",
      ".html,trie-nom-a": "title asc"
    }
  },
  {
    "id": "tags",
    "type": "inputtags",
    "name": "Tags",
    "value": ""
  }
]

J'ai loupé une manipulation à faire ?

Idem pour moi j'ai essayé tous les dossiers possible ça marche pas sur Jackett

@Clemv95
Copy link
Author

Clemv95 commented Dec 9, 2024

Hello, Pour Jackett, j'ai bien créé un dossier $CONFIG_DIR/Definitions/ygg-api.yml Et après redémarrage je n'ai rien. Par contre j'ai une dossier $CONFIG_DIR/Indexers/ avec des fichiers json dedans

cat torrent9.json
[
  {
    "id": "sitelink",
    "type": "inputstring",
    "name": "Site Link",
    "value": "https://ww1.torrent9.fm/"
  },
  {
    "id": "cookieheader",
    "type": "hiddendata",
    "name": "CookieHeader",
    "value": "PHPSESSID=3ma001iqd1uadsk54jrsl15690"
  },
  {
    "id": "lasterror",
    "type": "hiddendata",
    "name": "LastError",
    "value": null
  },
  {
    "id": "replacemultibyanotherlanguageinreleasename",
    "type": "inputbool",
    "name": "Replace MULTi by another language in release name",
    "value": false
  },
  {
    "id": "replacemultibythislanguage",
    "type": "inputselect",
    "name": "Replace MULTi by this language",
    "value": "FRENCH",
    "options": {
      "FRENCH": "FRENCH",
      "MULTi FRENCH": "MULTi FRENCH",
      "ENGLISH": "ENGLISH",
      "MULTi ENGLISH": "MULTi ENGLISH",
      "VOSTFR": "VOSTFR",
      "MULTi VOSTFR": "MULTi VOSTFR"
    }
  },
  {
    "id": "replacevostfrandsubfrenchwithenglish",
    "type": "inputbool",
    "name": "Replace VOSTFR and SUBFRENCH with ENGLISH",
    "value": false
  },
  {
    "id": "sortrequestedfromsite(onlyworksforsearcheswithkeywords)",
    "type": "inputselect",
    "name": "Sort requested from site (Only works for searches with Keywords)",
    "value": ".html",
    "options": {
      ".html": "best",
      ".html,trie-date-d": "created desc",
      ".html,trie-date-a": "created asc",
      ".html,trie-seeds-d": "seeders desc",
      ".html,trie-seeds-a": "seeders asc",
      ".html,trie-poid-d": "size desc",
      ".html,trie-poid-a": "size asc",
      ".html,trie-nom-d": "title desc",
      ".html,trie-nom-a": "title asc"
    }
  },
  {
    "id": "tags",
    "type": "inputtags",
    "name": "Tags",
    "value": ""
  }
]

J'ai loupé une manipulation à faire ?

Idem pour moi j'ai essayé tous les dossiers possible ça marche pas

Essayez dans le dossier /app/Definitions comme volume

@BK-STAR77
Copy link

BK-STAR77 commented Dec 12, 2024

Hello, Pour Jackett, j'ai bien créé un dossier $CONFIG_DIR/Definitions/ygg-api.yml Et après redémarrage je n'ai rien. Par contre j'ai une dossier $CONFIG_DIR/Indexers/ avec des fichiers json dedans

cat torrent9.json
[
  {
    "id": "sitelink",
    "type": "inputstring",
    "name": "Site Link",
    "value": "https://ww1.torrent9.fm/"
  },
  {
    "id": "cookieheader",
    "type": "hiddendata",
    "name": "CookieHeader",
    "value": "PHPSESSID=3ma001iqd1uadsk54jrsl15690"
  },
  {
    "id": "lasterror",
    "type": "hiddendata",
    "name": "LastError",
    "value": null
  },
  {
    "id": "replacemultibyanotherlanguageinreleasename",
    "type": "inputbool",
    "name": "Replace MULTi by another language in release name",
    "value": false
  },
  {
    "id": "replacemultibythislanguage",
    "type": "inputselect",
    "name": "Replace MULTi by this language",
    "value": "FRENCH",
    "options": {
      "FRENCH": "FRENCH",
      "MULTi FRENCH": "MULTi FRENCH",
      "ENGLISH": "ENGLISH",
      "MULTi ENGLISH": "MULTi ENGLISH",
      "VOSTFR": "VOSTFR",
      "MULTi VOSTFR": "MULTi VOSTFR"
    }
  },
  {
    "id": "replacevostfrandsubfrenchwithenglish",
    "type": "inputbool",
    "name": "Replace VOSTFR and SUBFRENCH with ENGLISH",
    "value": false
  },
  {
    "id": "sortrequestedfromsite(onlyworksforsearcheswithkeywords)",
    "type": "inputselect",
    "name": "Sort requested from site (Only works for searches with Keywords)",
    "value": ".html",
    "options": {
      ".html": "best",
      ".html,trie-date-d": "created desc",
      ".html,trie-date-a": "created asc",
      ".html,trie-seeds-d": "seeders desc",
      ".html,trie-seeds-a": "seeders asc",
      ".html,trie-poid-d": "size desc",
      ".html,trie-poid-a": "size asc",
      ".html,trie-nom-d": "title desc",
      ".html,trie-nom-a": "title asc"
    }
  },
  {
    "id": "tags",
    "type": "inputtags",
    "name": "Tags",
    "value": ""
  }
]

J'ai loupé une manipulation à faire ?

Idem pour moi j'ai essayé tous les dossiers possible ça marche pas

Essayez dans le dossier /app/Definitions comme volume

En fait j'utilise le service ultra.cc comme seedbox et le répertoire se présente sous cette forme:

/home/user/.apps/jackett/Jackett/

j'ai créer les dossiers sous toutes les formes /cardigann/definitions/ , /cardigann/Definitions/ , /definitions , Definitions et ça marche pas mais néanmoins j'ai réussi à le faire fonctionner sur prowlarr mais j'aurai préféré le mettre sur Jackett

@maxtouf
Copy link

maxtouf commented Jan 21, 2025

Bonjour, bonsoir, merci pour ce script mais pour sonarr je n'arrive à trouver aucune séries, fonctionne nickel avec radarr

@depardeux
Copy link

Bonjour,

Est-il possible d'ajouter le support de la catégorie livres sur cette indexeurs ?

Merci d'avance

@Clemv95
Copy link
Author

Clemv95 commented Feb 7, 2025

Bonjour,

Est-il possible d'ajouter le support de la catégorie livres sur cette indexeurs ?

Merci d'avance

Hello
Malheureusement pour l'instant yggapi ne supporte que les films / séries, et je n'ai pas la main dessus

@Hepow
Copy link

Hepow commented Feb 18, 2025

Salut je voudrais savoir est ce qu'il serait possible de rajouter les documentaires ou alors ça pourrait posser probleme avec les films/series ? Car par exemple j'ai essayé de chercher la serie documentaire tiny world et en fait elle est pas trouvé car forcement il n'y a pas la catégorie :) !! voila voila ça seraitt gentil merci ou alors me proposer une petite solution si possible <3 !! Des bisous pour vous !!

@almottier
Copy link

Salut je voudrais savoir est ce qu'il serait possible de rajouter les documentaires ou alors ça pourrait posser probleme avec les films/series ? Car par exemple j'ai essayé de chercher la serie documentaire tiny world et en fait elle est pas trouvé car forcement il n'y a pas la catégorie :) !! voila voila ça seraitt gentil merci ou alors me proposer une petite solution si possible <3 !! Des bisous pour vous !!

Malheureusement, ce n'est pas possible au niveau de la configuration de l'indexeur. Le problème est que yggapi ne « scrape » pas encore les documentaires... et c'est bien dommage car il y a souvent des films/séries très intéressants tagués en documentaire. C'est d'ailleurs bien écrit sur leur site https://yggapi.eu/. Est-ce que quelqu'un a un contact avec l'équipe de https://yggapi.eu/ ? Ce serait avec plaisir que je les aiderais à maintenir/rajouter des catégories. Leur API est vraiment top 🙏

@behead974
Copy link

Fix pour sonarr, et ajout de remplacement de MULTI par plusieurs choix Installation :

Pour jackett : Directement trouvable dans la liste des indexeurs sur l'interface

$CONFIG_DIR = le dossier de configuration /config qui est map de docker sur votre system.

Récupérez bien avec un wget le fichier raw, pour éviter d'éventuelles erreurs de copier coller Pour jackett :$CONFIG_DIR/Definitions/ygg-api.yml

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

Redémarrer le container et c'est bon !

Passkey à trouver sur son profil YGG !

j'ai pas réussi, le passkey dois etre mis ou ?
dans le fichier ? si oui a quel endroit
dans prowlarr ?

@Clemv95
Copy link
Author

Clemv95 commented Feb 24, 2025

Fix pour sonarr, et ajout de remplacement de MULTI par plusieurs choix Installation :
Pour jackett : Directement trouvable dans la liste des indexeurs sur l'interface
$CONFIG_DIR = le dossier de configuration /config qui est map de docker sur votre system.
Récupérez bien avec un wget le fichier raw, pour éviter d'éventuelles erreurs de copier coller Pour jackett :$CONFIG_DIR/Definitions/ygg-api.yml
Pour Prowlarr : $CONFIG_DIR/Definitions/Custom/ygg-api.yml
Redémarrer le container et c'est bon !
Passkey à trouver sur son profil YGG !

j'ai pas réussi, le passkey dois etre mis ou ? dans le fichier ? si oui a quel endroit dans prowlarr ?

Normalement la passkey va etre demandée sur prowlarr lorsque tu ajouteras l'indexeur

@Laiteux
Copy link

Laiteux commented Mar 20, 2025

Hey,

Il est possible de remplacer:

_id:
  selector: id
details:
  text: "torrent/{{ .Result._id }}"

Par un lien direct:

_id:
  selector: id
_slug:
  selector: slug
_category_name:
  selector: category_id
  case:
    2178: "animation"
    2179: "animation-série"
    2183: "film"
    2184: "série-tv"
details:
  text: "https://www.yggtorrent.top/torrent/filmvidéo/{{ .Result._category_name }}/{{ .Result._id }}-{{ .Result._slug }}"

Edit: ygg.re est maintenant yggtorrent.top

(:

@PrevotYann
Copy link

Merci pour le gros taff !

Petite question, est il possible d'ajouter l'option comme dans le Ygg classique de ne pas mettre les années lorsqu'on recherche un film ? :)

@almottier
Copy link

@Laiteux c'est niquel, merci

@flobafff
Copy link

Bonjour à tous,
Depuis le changement du nom de domaine ygg, l'api ygg ne retourne que les résultats datant d'avant le changement de domaine.
Suis-je le seul ?
Testé depuis Jackett pour information.
Merci pour vos réponses.

@Clemv95
Copy link
Author

Clemv95 commented Mar 24, 2025

Bonjour à tous, Depuis le changement du nom de domaine ygg, l'api ygg ne retourne que les résultats datant d'avant le changement de domaine. Suis-je le seul ? Testé depuis Jackett pour information. Merci pour vos réponses.

Hello, idem les derniers torrents datent d'avant changement de domaine
Il faut attendre que ce soit mit a jour :/

@flobafff
Copy link

Hello, toujours KO de mon coté quand je test directement depuis l'api j'ai toujours en dernier résultat les films / series datant d'avant le changement de domaine.
Y'a t'il moyen de contacter yygapi ?
Merci d'avance pour vos réponses.

@Clemv95
Copy link
Author

Clemv95 commented Mar 27, 2025

Hello, toujours KO de mon coté quand je test directement depuis l'api j'ai toujours en dernier résultat les films / series datant d'avant le changement de domaine. Y'a t'il moyen de contacter yygapi ? Merci d'avance pour vos réponses.

Idem de mon côté :/
Je n'ai aucun moyen de les contacter, si quelqu'un le peux je suis preneur d'un retour

@Clemv95
Copy link
Author

Clemv95 commented Apr 1, 2025

A priori c'est de retour !
l'API contient de nouveaux des résultats à jour

@flobafff
Copy link

flobafff commented Apr 1, 2025

Je confirme ! Parfait ! Merci à tous !

@LucDeGit
Copy link

LucDeGit commented Apr 1, 2025

Perso il marche toujours pas, tu as update l'api ?

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