J’avais complètement zappé de présenter le fabuleux SugestArr il y a quelques mois, remédions à ça de suite !
On ajoute tous les contenus découverts sur le Web, sur IMDB, TMDB, Trakt, par des connaissances, via des forums, via Overseerr ou Jellyseerr…
Cet outil de guiseppe99barchetta devrait vous ravir puisqu’il permet d’avoir des recommandations personnalisées et est, je trouve, relativement complet :
Prise en charge multi-médias : compatible avec Jellyfin, Plex et Emby pour récupérer le contenu.
Intégration TMDb : recherche de films et séries similaires via TMDb.
Requêtes automatisées : envoie des demandes de téléchargement pour les contenus recommandés vers Jellyseer ou Overseerr.
Interface web : interface conviviale pour la configuration et la gestion.
Journaux en temps réel : visualiser et filtrer les logs en direct (ex. INFO, ERROR, DEBUG).
Sélection des utilisateurs : possibilité de choisir quels utilisateurs peuvent initier des requêtes, avec gestion et validation des contenus demandés automatiquement.
Gestion des tâches cron : modification du planning des cron jobs directement depuis l’interface web.
Pré-validation de configuration : vérifie automatiquement les clés API et les URLs lors de l’installation.
Filtrage de contenu : exclut les demandes de contenus déjà disponibles sur les plateformes de streaming dans votre pays.
Support de bases de données externes : possibilité d’utiliser PostgreSQL ou MySQL en plus de SQLite pour plus de performance et d’évolutivité.
Y’a pas d’application AndroidTV/smarthone mais c’est responsive et on peut automatiser les ajouts.
Pour l’utiliser il faut une clé API TMDB et évidemment une ou des instances Plex/Emby/Jellyfin et Oberseerr/Jellyseerr.
Une fois lancé, on se connecte avec notre lecteur favori, on ajoute une clé TMDB
Dans le cas de Plex, ça liste les serveurs disponibles (pour faire simple j’ai sélectionné un local) et ça en détaille les librairies et utilisateurs. On peut aussi mettre une URL directement
On enchaine avec Overseerr ou Jellyseerr
Je reste sur du SQLite. Si vous voulez une BDD robuste à part, il faut revoir le docker-compose pour l’ajouter
Configuration rapide :
Note minimale sur TMDB et nombre minimum d’avis,
Je n’inclus pas le contenu sans note J’exclus le contenu déjà téléchargé et/ou vu
Je n’exclus aucun genre ni aucun service (Disney+, Netflix, Youtube, Canal+…)
Je sélectionne English pour la langue originale des contenus que je veux en recommandation. Je ne suis absolument pas fan de Plus belle la vie et autres trucs français. Je préfère les séries US notamment. Précision : ça ne limite pas aux contenus produits en langue anglais mais ça la priorise
Et je souhaite des recommandations de contenus produits à partir des années 90
Pour chaque film en historique de lecture je veux 8 suggestions, 5 pour chaque série,
Suggestarr me fera des recommandations par rapport aux 5 derniers contenus lus,
Le Search Size définissant combien de suggestions en tout je demande (si j’ai bien pigé ?) Et le cron, pour l’exécution. J’ai changé après la capture, j’ai mis toutes les 6h (0 */6 * * *)
Et la récap de fin avant le 1er lancement
Et ça ajoute les recommandations dans Overseerr ou Jellyseerr selon votre configuration. Attention du coup si, comme moi, tout est automatiquement validé, ça peut vite accroître les bibliothèques ! Mon setup étant tout récent je n’ai hélas pas de screen à vous montrer mais vous pouvez voir ce que ça donne avec la fin de cette vidéo YouTube avec UNRAiD.
J’aime bien avoir une idée des notes IMDB/TMDB des contenus répertoriés par Plex. Kometa, un script Python empaqueté dans un Docker pour plus de simplicité, permet de m’auditer les jaquettes des contenus indexés et créer celles de collections et playlists. On peut presque faire la même chose sur Emby/Jellyfin, avec Posterizarr qui fonctionne aussi pour Plex)
On peut y mettre les infos qu’on souhaite, à l’endroit qu’on veut et créer/afficher ou non les listes par diffuseur etc. Tout est configurable, pour peu qu’on prenne le temps de lire la documentation.
Je partage ma configuration actuelle, qu’il faudrait encore peaufiner, et vous pouvez en trouver d’autres ici ou là.
Voici un Docker qui fonctionne très bien. Au besoin, pour UNRAiD, Synology, QNAP, Kubernetes, la doc est complète.
Et voici mon config.yml Il faut le domaine Plex + token, les clés API TMDB, FanART et MDBlist. Je voulais tester les playlists, pas encore pris le temps…
Attention, dans la partie « libraries » les noms des librairies doivent être ceux de Plex, ici Films et Séries TV
Je continue mon tour d’horizon des solutions de streaming à la carte, légales ou non selon les pays, et qui permet de se créer et maintenir une bibliothèque multimédia sans stockage local.
Je n’aborderai pas publiquement les solutions de streaming depuis des .nzb directement.
Je vais détailler ici l’installation manuelle de Decypharr, Prowlarr et Radarr/Sonarr/Plex mais tout est notamment inclus dans le script SSDv2 (avec une grosse et belle nouveauté à venir).
J’en profite pour remercier Laster13 et Teal-C pour leurs réponses à mes questions.
La dernière mouture de Decypharr embarque rClone et sa configuration sera automatisée. Mes tests sont réalisés avec Prowlarr et des indexeurs FR publics dont YGG via « api.eu », le débrideur AllDebrid ; et je ne « tape » que dans le contenu en cache chez AD (donc aucun téléchargement). Verdict : RàS pour les films, quelques saisons de séries manquantes uniquement dans le cache, OK avec le téléchargement.
Le plus important est de bien comprendre que si on demande aux *arrs d’organiser les bibliothèques dans /mnt/Bibliothèques, ils ne vont y mettre que des symlinks vers le montage rClone d’AllDebrid (/mnt/decypharr). Les *arrs, pour traiter les fichiers, tout comme Plex (ou autre) pour leur lecture, doivent avoir accès à ce montage rClone. C’est pourquoi il est impératif de monter ce dossier en volume pour chaque Docker devant y avoir accès.
Bibliothèques : dossier racine pour les *arrs Data/rCloneCache : j’avais déjà le dossier pour autre chose, j’utilise le même
decypharr/alldebrid : montage de mon compte AD decypharr/qbit : dossier de téléchargement (simulé) des fichiers. Les sous-dossiers radarr/sonarr seront ajoutés automatiquement lors de la configuration de Decypharr (tags)
Il faut installer et lancer Decypharr avant le reste vu que tout dépend ensuite du montage du débrideur et des symlinks. Idem s’il faut relancer le Docker Decypharr, il faut relancer les autres ensuite.
/mnt/decypharr/qbit:/mnt/decypharr/qbit étant le montage qui sera commun aux *arrs et Plex.
La configuration n’est pas vraiment expliquée dans la doc, la mienne n’est peut-être pas optimale mais fonctionne.
Je n’ai rien modifié dans l’onglet général. J’ai testé les notifications Discord (attention on voit la passkey des trackers utilisés) mais y’a vraiment pas d’intérêt si on ne fait qu’utilise le cache du débrideur (pas de téléchargement).
Pour la partie débrideur, on fait notre choix, on colle une clé API (ou plusieurs) et j’ai configuré le montage dans
/mnt/decypharr/alldebrid/__all__
On peut ajouter plusieurs débrideurs. On pourra les attribuer à un *arr lié à Decypharr et même les sélectionner lors de l’ajout manuel d’un .torrent
J’utilise le WebDav et je NE COCHE PAS la case Download Uncached pour qu’il ne télécharge aucun fichier (sur AD) mais n’utilise que son cache. Je fais ça parce que je voulais tester le cache d’AD et ne voulais pas télécharger des fichiers sans les partager. On peut tout à fait faire les 2 mais attention, il n’y aura pas de seed (donc ratio 0). A ne pas faire chez les Tier 1 sous peine de voir son compte banni ! Certains ont créé des scripts qui captent les .torrent utilisés pour les mettre en seed depuis un client local ou sur un serveur. Dans ce cas, Decypharr est utilisable sans crainte sur les trackers privés.
Configuration du client qBittorrent émulé. Je met le chemin qui correspond au volume local dont je parlais au début
/mnt/decypharr/qbit
On peut ajouter les *arrs soit depuis Decypharr soit depuis les *arrs eux-mêmes. Je n’ai qu’AD en débrideur j’ai donc laissé la sélection auto mais on peut choisir. Par exemple Radarr sur AD et Sonarr sur RD ou Sonarr4K sur TB etc. Selon les goût de chacun. Ce qui est certain, c’est que le cache de contenu MULTi/FRENCH est évidemment plus important sur AD et RD que sur TB, principalement utilisé par les anglophones pour Stremio.
Le Repair est le contrôle et la réparation des symlinks. Qui peuvent être cassés si le contenu lié est effacé du débrideur. Dans ce cas, selon la config, ça peut soit rechercher sur le débrideur (si le fichier a été renommé, vu que ça fonctionne avec le hash et non le nom) soit ça ira chercher un autre .torrent via les *arrs. Pour l’instant je laisse l’option par défaut à savoir « per torrent » mais il est peut-être préférable d’utiliser « per file ». Dans le cas d’un .torrent de saison complètement, que ça ne recherche que l’épisode manquant (du cache) plutôt que de tout relancer. Je l’ai mis en autotmatique, toutes les 24h.
Et enfin la partie rClone. Le monte globalement dans /mnt/decypharr et souhaite utiliser un cache (100Go) dans un dossier (et disque) qui me sert déjà à ça : /mnt/Data/rCloneCache On peut sans doute améliorer cette configuration mais Plex lit un fichier de 94Go sans broncher…
Avec le mode de téléchargement activé, voici le rendu. PausedUP signifie que le .torrent est complété (et de fait plus en seed).
Je ne montre que l’exemple de configuration de Radarr. Pour Sonarr c’est la même logique. Chez moi c’est derrière un VPN pour des interrogations de sources hors Prowlarr et NZBHydra, il n’y a donc pas de port de publié. Je retire tous les volumes par défaut pour ne monter que /mnt/decypharr/qbit:/mnt/decypharr/qbit et /mnt:/mnt
Configuration du dossier racine : /mnt/Bibliothèques/Films
Configuration du client de téléchargement si on n’a pas ajouté Radarr depuis Decypharr. Il faut sélectionner qBittorrent
Et dans l’adresse il faut mettre l’URL (ou l’IP) de Decypharr et le port (et SSL si vous utilisez une URL et un reverse proxy). Le nom d’utilisateur et le mot de passe sont l’URL de Radarr et sa clé API. La catégorie : radarr (et donc sonarr pour Sonarr ofc!)
Ne surtout pas cocher la case Sequential Order (sinon ça DL localement)
Et comme le même chemin/volume est monté dans chaque Docker, il n’y a aucun Remote Path Mapping à mettre
Lors de l’ajout d’un film, la complétion est quasi instantanée pour peu que le fichier cherché soit déjà dans le cache d’AllDebrid. Si vous activez le téléchargement des fichiers non encore en cache, ça peut prendre quelques minutes.
En regardant de plus près, on voit bien que c’est un symlink vers le cache d’AllDebrid
aerya@StreamBox:/mnt/Bibliothèques/Films$ ls -l Alien\ -\ Romulus\ \(2024\)/
total 4
lrwxrwxrwx 1 root root 208 Aug 25 18:55 Alien.Romulus.2024.MULTi.VFF.2160p.UHD.BluRay.REMUX.DV.HDR.HEVC.TrueHD.7.1.Atmos-ONLY.mkv -> /mnt/decypharr/alldebrid/__all__/Alien.Romulus.2024.MULTi.VFF.2160p.UHD.BluRay.REMUX.DV.HDR.HEVC.TrueHD.7.1.Atmos-ONLY/Alien.Romulus.2024.MULTi.VFF.2160p.UHD.BluRay.REMUX.DV.HDR.HEVC.TrueHD.7.1.Atmos-ONLY.mkv
ncdu 1.19 ~ Use the arrow keys to navigate, press ? for help
--- /mnt/Bibliothèques/Films/Alien - Romulus (2024)- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
@ 4.0 KiB [###################################################] Alien.Romulus.2024.MULTi.VFF.2160p.UHD.BluRay.REMUX.DV.HDR.HEVC.TrueHD.7.1.Atmos-ONLY.mkv
Plus globalement, tous les fichiers sont bien chez AllDebrid, monté via WebDav/rClone et je n’ai localement que des symlinks qui ne prennent aucune place. En théorie, on pourrait se faire cette installation sur une Carte MicroSD de quelques Go
ncdu 1.19 ~ Use the arrow keys to navigate, press ? for help
--- /mnt ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
15.9 TiB [###################################################] /decypharr
4.0 MiB [ ] /Bibliothèques
Pour terminer, la configuration de Plex. Toujours avec /mnt:/mnt de monté pour garantir l’accès aux symlinks.
Il y a quelques années, j’utilisais un plugin pour Plex pour synchroniser les visionnages. L’intérêt étant surtout de pouvoir ajouter/retirer des contenus, voire réinstaller un serveur Plex, tout en ne perdant pas le chemin parcouru
On peut synchroniser de Plex vers Trakt et/ou Trakt vers Plex, par bibliothèque et utilisateur.
Voici un exemple d’installation et de configuration, sans prise en compte de Watchlists (que je n’ai pas vu qu’ici on passe par Overseerr uniquement). Il faut une application Trakt.tv vérifiée (gratuit) pour récupérer ses clés d’accès. Et si vous voulez les notifications Discord, l’OS hôte (mon script est externe) doit avoir curl et jq.
Installation du Docker. Ofelia étant un cron qui permet de lancer la synchronisation selon nos préférences, je le lance toutes les 6h (0 */6 * * *). Pour paramétrer, aidez-vous de Cron Guru au besoin.
En suivant le ReadMe, lancer le Docker la 1ère fois créera le fichier de configuration config.yml. Mais on peut aussi l’éditer à la main, tout comme servers.yml. Pour sélectionner le serveur, utiliser les flèches du clavier.
Je me suis trompé de serveur, j’ai édité la conf à la main ensuite, du coup il cherchait à valider un SSL alors que j’avais mis un serveur en IP locale. Il faut lui laisser un peu le temps mais ensuite c’est bon.
Si ce n’est pas déjà fait, il explique la marche à suivre pour se faire une application Trakt.tv
Quand je vois SickGear dans mes applications… ça rappelle de sacrés souvenirs !
Il convient tout de même d’éditer un peu la configuration à la main, notamment si on veut exclure des bibliothèques ou watchlists. Ici c’est basique, je n’ai qu’un utilisateur et synchronise tout mais pour aller plus dans le détail je vous recommande de suivre son ReadMe. C’est config.yml dans /home/aerya/docker/plextraktsync/config
cache:
path: $PTS_CACHE_DIR/trakt_cache
# You may want to use per server libraries config instead:
# - https://github.com/Taxel/PlexTraktSync#libraries
excluded-libraries:
- Private
config:
dotenv_override: true
plex:
timeout: 30
logging:
append: true
# Whether to show timestamps in console messages
console_time: false
debug: false
filename: plextraktsync.log
# Additional logger names to apply filtering
filter_loggers:
# - plexapi
# - requests_cache.backends
# - requests_cache.backends.base
# - requests_cache.backends.sqlite
# - requests_cache.policy.actions
# - requests_cache.session
# - trakt.core
# - urllib3.connectionpool
filter:
# # Filter out all messages with level WARNING
# - level: WARNING
# # Filter out message with level WARNING and containing a text
# - level: WARNING
# message: "not found on Trakt"
# - message: "because provider local has no external Id"
# - message: "because provider none has no external Id"
# - message: "Retry using search for specific Plex Episode"
# # Filter out messages by requests_cache
# - name: requests_cache.backends
# - name: requests_cache.backends.base
# - name: requests_cache.backends.sqlite
# - name: requests_cache.policy.actions
# - name: requests_cache.session
# settings for 'sync' command
sync:
# Setting for whether ratings from one platform should have priority.
# Valid values are trakt, plex or none. (default: plex)
# none - No rating priority. Existing ratings are not overwritten.
# trakt - Trakt ratings have priority. Existing Plex ratings are overwritten.
# plex - Plex ratings have priority. Existing Trakt ratings are overwritten.
rating_priority: plex
plex_to_trakt:
collection: false
# Clear collected state of items not present in Plex
clear_collected: false
ratings: true
watched_status: true
# If plex_to_trakt watchlist=false and trakt_to_plex watchlist=true
# the Plex watchlist will be overwritten by Trakt watchlist
watchlist: false
trakt_to_plex:
liked_lists: true
ratings: true
watched_status: true
# If trakt_to_plex watchlist=false and plex_to_trakt watchlist=true
# the Trakt watchlist will be overwritten by Plex watchlist
watchlist: false
# If you prefer to fetch trakt watchlist as a playlist instead of
# plex watchlist, toggle this to true (is read only if watchlist=true)
watchlist_as_playlist: false
# Sync Play Progress from Trakt to Plex
playback_status: false
# Configuration for liked lists
liked_lists:
# Whether to keep watched items in the list
keep_watched: true
# Configuration override for specific lists
#liked_list:
# "Saw Collection":
# keep_watched: true
# settings for 'watch' command
watch:
add_collection: false
remove_collection: false
# what video watched percentage (0 to 100) triggers the watched status
scrobble_threshold: 80
# true to scrobble only what's watched by you, false for all your PMS users
username_filter: true
# Show the progress bar of played media in terminal
media_progressbar: true
# Clients to ignore when listening Play events
ignore_clients: ~
xbmc-providers:
movies: imdb
shows: tvdb
De même, on peut venir éditer le fichier du ou des serveurs Plex à synchroniser : servers.yml
Et donc, toutes les 6h, le Docker se lance et synchronise Plex et Trakt.tv pour mettre à jour les films et séries lus/non lus. La 1ère fois peut prendre un peu de temps selon le nombre de fichiers.
Je voulais les notifications sur Discord, j’ai donc créé un script qui lance le Docker et envoie la récap en notification :
Nécessite curl et jq. Pour l’icône, ici comme pour Heimdall, j’utilise dashboardicons.com Et il faut retirer Ofelia et les labels inhérents du compose plus haut puisque c’est maintenant l’hôte, via crontab par exemple, qui va exécuter le script qui va lui-même lancer le Docker de plextraktsync.