-
-
Save Clemv95/8bfded23ef23ec78f6678896f42a2b60 to your computer and use it in GitHub Desktop.
--- | |
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 | |
seed: 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 |
Un grand merci à Ygg-api et Clemv95 pour votre super boulot.
Si ça peut en intéresser certains, j'ai facilement rajouté les Émissions TV disponibles depuis hier via ygg-api en ajoutant simplement une ligne
- {id: 2182, cat: TV, desc: "Emissions TV"}
Un grand merci à Ygg-api et Clemv95 pour votre super boulot. Si ça peut en intéresser certains, j'ai facilement rajouté les Émissions TV disponibles depuis hier via ygg-api en ajoutant simplement une ligne
- {id: 2182, cat: TV, desc: "Emissions TV"}
Je vais mettre a jour le gist, il y a d'autres catégories de disponibles
Et voilà ;)
Bonjour ! Je join le thread pour mettre au courant d'un petit soucis, mais d'abord merci pour cette API, c'est tout juste dingue, GG pour le boulot abattu.
J'ai tout juste ajouté l'API via le .yml à Jackett et cela fonctionne très bien, sauf si je "sort by seeders"', je reçois cette erreur de la part de Jackett :
Exception (ygg-api): Error Parsing Json Response: Status=UnprocessableEntity Response={"detail":[{"type":"enum","loc":["query","order_by"],"msg":"Input should be 'uploaded_at', 'seeders' or 'downloads'","input":"seed","ctx":{"expected":"'uploaded_at', 'seeders' or 'downloads'"}}]}: Error Parsing Json Response: Status=UnprocessableEntity Response={"detail":[{"type":"enum","loc":["query","order_by"],"msg":"Input should be 'uploaded_at', 'seeders' or 'downloads'","input":"seed","ctx":{"expected":"'uploaded_at', 'seeders' or 'downloads'"}}]}
Est-ce un bug connu ou est-ce ma faute auquel cas j'en suis désolé. Bonne journée !
Perso, j'ai expérimenter la même chose. Je l'ai mit sur le github original (pas ce fork) aucune réponse pour lemoment, donc juste retire le sort by seeder et met l'original. Ça fonctionnera.
le goat