TRaSH Scoring¶
Stream Fusion Reborn intègre un moteur de scoring TRaSH (The Radarr & Sonarr Hardlinker) qui classe automatiquement les résultats de recherche selon la qualité réelle de chaque release. Le système repose sur deux concepts :
- Custom Formats (CF) : des règles de détection qui identifient des caractéristiques précises d'un torrent (résolution, source audio, groupe de release, HDR, etc.)
- Templates de scoring : des profils qui associent un poids entier à chaque CF matched, permettant de classer les résultats selon vos préférences
Comment ça marche¶
graph TD
A["Torrent brut<br/>(titre + metadata)"] --> B["Parsing RTN"]
B --> C["SpecContext"]
C --> D["Évaluation CFs"]
D --> E{"Match ?"}
E -->|Oui| F["Score += poids CF"]
E -->|Non| G["Score inchangé"]
F --> H["Somme des scores"]
G --> H
H --> I{"Score < ban_below ?"}
I -->|Non| J["Résultat classé<br/>en tête de liste"]
I -->|Oui| K["Résultat relégué<br/>en fin de liste"]
style A fill:#311b92,color:#fff
style D fill:#4a148c,color:#fff
style H fill:#1b5e20,color:#fff
style J fill:#1b5e20,color:#fff
style K fill:#bf360c,color:#fff
- Parsing : le titre du torrent est analysé par RTN (Release Title Normalizer) pour extraire résolution, codec, audio, groupe, HDR, etc.
- Évaluation : chaque CF actif teste si le torrent correspond à ses spécifications
- Scoring : les poids des CFs matched s'additionnent pour former un score total
- Classement : les résultats sont triés par score décroissant. Ceux sous
ban_belowrestent visibles mais en fin de liste
Workflow complet — De zéro au scoring actif¶
-
1. Synchroniser le miroir
Importe ~164 Custom Formats et les templates système depuis le dépôt communautaire streamfusion-trash-mirror
-
2. Choisir un template
Sélectionnez un template système (ex.
vff-vfi-hd) ou clonez-en un pour le personnaliser -
3. Activer le scoring
Activez
TRASH_SCORING_ENABLEDdans les paramètres TRaSH de l'admin — hot-reloadable sans redémarrage -
:material-sliders: 4. Choisir dans /configure
L'utilisateur final sélectionne son template dans la page de configuration du plugin Stremio. Les résultats sont alors classés par score CF
Templates système disponibles¶
| Slug | Nom | Cas d'usage |
|---|---|---|
vff-vfi-hd |
VFF/VFI HD (1080p Priorité) | Doublage français intégral en HD. Favorise x265 et groupes FR reconnus. Limite 30 Go |
vff-vfi-uhd |
VFF/VFI UHD (2160p Priorité) | Doublage français en 4K. Priorité HDR10+/Dolby Vision, encode x265. Taille illimitée |
vff-vfi-web |
VFF/VFI WEB Compact | WEB-DL 1080p VFF/VFI uniquement. Limite stricte 15 Go, idéal espace disque limité |
vff-vfi-uhd-web |
VFF/VFI UHD WEB (2160p Streaming) | 4K VFF/VFI depuis plateformes streaming (NF, AMZN, DSNP, HBO…). Taille illimitée |
multi-hd |
MULTi HD (1080p Bilingue) | Releases bilingues FR+VO en 1080p. MULTi prioritaire, limite 35 Go |
multi-uhd |
MULTi UHD (2160p HDR Bilingue) | 4K bilingue FR+VO avec HDR10+/DV. Audio lossless valorisé. Taille illimitée |
vostfr-hd |
VOSTFR HD (VO + Sous-titres FR) | VO avec sous-titres français. VOSTFR et Original+French valorisés. Limite 30 Go |
remux-cinephile |
Remux Cinéphile (Qualité Absolue) | Seul le meilleur compte. Remux Bluray des groupes top tiers. Aucune restriction de langue ni taille |
anime-vf |
Animé VF (VFF/VFI + VOSTFR) | Animé en français. VFF/VFI favorisés, VOSTFR en fallback. Limite 20 Go |
anime-multi |
Animé MULTi (FR+JP Bilingue) | Animé bilingue : MULTi et Dual Audio en priorité absolue. Limite 25 Go |
Templates en lecture seule
Les templates système sont protégés — ils sont mis à jour automatiquement par la sync TRaSH. Pour les modifier, utilisez le bouton Cloner dans l'admin pour créer une copie utilisateur.
Structure du système¶
Les Custom Formats et templates sont désormais stockés dans PostgreSQL (et non plus uniquement dans Redis). Le flux de synchronisation est :
- Git mirror →
trash_syncclone le dépôt miroir - PostgreSQL → les CFs et templates sont persistés dans les tables
custom_formatsetscoring_templates - Redis → un cache TTL 7j accélère les lectures au runtime
graph LR
subgraph Miroir["Dépôt miroir"]
CF["~164 CFs JSON<br/>radarr + sonarr"]
TPL["10 Templates JSON"]
end
subgraph DB["PostgreSQL"]
CFDB[(custom_formats)]
TPLDB[(scoring_templates)]
end
subgraph Cache["Redis"]
RC["cf:data:*<br/>cf:slug_index<br/>cf:metadata"]
RT["tmpl:data:*<br/>tmpl:default_id"]
end
subgraph Moteur["Requête Stremio"]
SE["ScoringEngine"]
end
CF -->|"Sync toutes les 6h<br/>Git → PG"| CFDB
TPL -->|"Sync toutes les 6h<br/>Git → PG"| TPLDB
CFDB -->|"Cache TTL 7j<br/>PG → Redis"| RC
TPLDB -->|"Cache TTL 7j<br/>PG → Redis"| RT
RC -->|"Charge CFs"| SE
RT -->|"Charge template"| SE
style Miroir fill:#311b92,color:#fff
style DB fill:#1b5e20,color:#fff
style Cache fill:#bf360c,color:#fff
style Moteur fill:#4a148c,color:#fff
Persistance PostgreSQL
La persistance dans PostgreSQL garantit que les CFs et templates survivent à un flush Redis. La sync trash_sync écrit directement dans PG, puis le cache Redis est peuplé depuis PG. Le cache Redis a un TTL de 7 jours — au-delà, il est re-peuplé automatiquement depuis PG.
Sections de la documentation TRaSH¶
-
Qu'est-ce qu'un CF, logique de matching, les 11 implementations de specs, et le catalogue complet des ~164 CFs avec leurs slugs
-
Structure JSON complète, les 10 templates système documentés, guide de création personnalisée, export et contribution
-
Synchronisation manuelle/auto, monitoring temps réel, testeur CF, purge DB/Redis, gestion des verrous
Référence rapide¶
| Variable d'environnement | Défaut | Description |
|---|---|---|
TRASH_SCORING_ENABLED |
False |
Master switch du scoring (hot-reloadable) |
TRASH_SYNC_ENABLED |
True |
Active la sync planifiée du miroir |
TRASH_SYNC_CRON |
0 */6 * * * |
Fréquence de sync (toutes les 6h) |
TRASH_MIRROR_REPO_URL |
https://github.com/LimeHubs/streamfusion-trash-mirror.git |
URL du dépôt miroir |
TRASH_MIRROR_BRANCH |
main |
Branche Git à utiliser |
TRASH_DEFAULT_TEMPLATE_SLUG |
balanced |
Slug du template par défaut. Utilisé si aucun template n'est marqué is_default=True dans la table scoring_templates. Priorité à la DB (via admin). |
Voir la page Variables d'environnement pour la liste complète.