-
-
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 |
@ygg-api tu peut ajouté le rss en plus de l’api ? habituellement j’utilisais flaresolverr avec yggtorrent, tout allais bien (quand ça fonctionnais) depuis que j’utilise l’api les épisodes ne sont pas téléchargé seul, il faut que je lance une recherche d’épisode pour qu’il le télécharge, sans ça il ne recherche pas les épisode manquant de lui même
Je n'ai pas compris la question. Les flux RSS sont déjà disponibles, tu peux regarder ici : https://yggapi.eu/#rss
@ygg-api tu as déjà scrape tous les torrents video films et series ? comment tu gères les torrent qui sont MAJ par les uploader au cour du temps ? aussi quel espaces ca te prend ? tu host local ou cloud ? pour les nouveau torrent tu les capte avec ton RSS et tu les saves localement ? voila merci pour ton taff ca marche nickel. en terme de charge sur ton serveur tu es comment atm ?
@Bastien42 Beaucoup de questions ^^ Oui tout scrapé il y a quelques temps. Pas de mise à jour malheureusement, trop compliqué. Ça prend... pas mal de Go ^^ J'héberge sur un VPS. Oui pour les nouveaux torrents ça récupère comme ça. Et pour la charge, il y a de la marge :-)
Bonjour, je vous propose d'ouvrir des issues dans le projet GitHub du maintainer lorsque nous avons un souci. Ce sera plus simple pour le suivi.
J'en ai ouvert un sur le téléchargement de certain torrent récent qui est en erreur : ygg-api/ygg-api#2
Je remercie grandement le créateur de cet API !! Fonctionne à merveille, même si un peu galère quand on installe pour la première fois Prowlarr sur son serveur Ultra.cc
Je cite ce commentaire qui a tout débloqué pour ma part après 30 minutes de recherches :-)
Alors je l'avais mis que dans Distribution mais pas avec le dossier Custom de créer, mtn ça marche haha
Fonctionnel pour mes Séries et Animes, même avec la recherche avancée pour les anciens épisodes.
UPDATE :
En collaboration avec @ygg-api, nous avons modifié le fonctionnement afin que la passkey ne soit plus passée en requete à l'API, dans un soucis de confidentialité de celle ci
J'ai mis la version de l'indexeur modifiée en conséquence, n'hésitez pas si vous avez des retours ;)
UPDATE :
En collaboration avec @ygg-api, nous avons modifié le fonctionnement afin que la passkey ne soit plus passée en requete à l'API, dans un soucis de confidentialité de celle ci
J'ai mis la version de l'indexeur modifiée en conséquence, n'hésitez pas si vous avez des retours ;)
le goat
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 !
Ajoute ses FLUX RSS dans tes *arrs