Rosub trouve des sous-titres roumains pour votre bibliothèque Jellyfin sur subs.ro et choisit, parmi les archives qu’il télécharge, le fichier conçu pour votre release, pour que le calage soit correct.
Ce qu’il fait
- À l’arrivée : quelques minutes après que Jellyfin identifie un nouveau film ou épisode, Rosub cherche sur subs.ro (par identifiant IMDb/TMDb) et enregistre le sous-titre à côté de la vidéo sous le nom
Name.ro.srt. - Chaque jour (tâche planifiée à 04:00) : réessaie tout ce qui n’a pas de sous-titre roumain, les plus récents d’abord ; les éléments non trouvés sont réessayés après quelques jours, car les sous-titres apparaissent souvent des jours après une release.
- Correspondance de release : le nom du fichier est décomposé en titre, année, saison/épisode, résolution, source (WEB-DL, BluRay, HDTV), service, codec et groupe de release, puis comparé à chaque sous-titre ; le mode strict n’accepte que les sous-titres conçus pour la même release, le même groupe ou la même source de streaming.
- Contrôle de calage : quand la vidéo a un sous-titre intégré, le calage du candidat est comparé au sien ; un décalage constant est corrigé, un sous-titre désynchronisé est rejeté.
- Roumain correct : UTF-8, avec ș et ț (virgule souscrite) au lieu des anciennes formes avec cédille.
- OpenSubtitles.com en repli (facultatif, votre propre clé d’API) quand subs.ro n’a rien d’acceptable.
- Recherche manuelle : Rosub apparaît comme fournisseur dans la recherche de sous-titres de Jellyfin.
- Respect du quota : subs.ro autorise 300 requêtes par jour et par clé ; Rosub utilise au maximum le budget que vous avez fixé et garde une réserve pour les éléments nouvellement ajoutés.
Prérequis
- Jellyfin Server 12.2 ou plus récent.
- Une clé d’API subs.ro gratuite (My account → API) ; facultativement, une clé d’API OpenSubtitles.com.
- Le ffprobe du serveur, pour le contrôle de calage.
Questions fréquentes
Comment obtenir automatiquement des sous-titres roumains dans Jellyfin ? Installez Rosub et saisissez votre clé d’API subs.ro dans Tableau de bord → Rosub. Les nouveaux films et épisodes reçoivent un sous-titre roumain correspondant quelques minutes après leur ajout, et la tâche quotidienne complète le reste de la bibliothèque. Voir le guide.
Pourquoi « correspond exactement à la release » ? Un sous-titre conçu pour une release différente (autre groupe, autre source ou autre version) est souvent désynchronisé. Rosub choisit le fichier conçu pour votre release et vérifie le calage avant de l’enregistrer.
Ce qu’il envoie et où
- subs.ro (
api.subs.ro) — uniquement avec votre propre clé d’API (aucune n’est fournie) : uniquement l’identifiant IMDb ou TMDb du film/de la série (pour les épisodes, l’identifiant de la série) et la langue ; puis le téléchargement du sous-titre choisi et une requête de quota. Aucun titre, nom de fichier, nom de release ou hachage n’est envoyé. - OpenSubtitles (
api.opensubtitles.com) — facultatif, uniquement avec votre propre clé : langues, identifiant IMDb/TMDb (ou identifiant de série + saison/épisode) et le hachage OpenSubtitles du fichier (calculé localement à partir de la taille et des 64 premiers/derniers Ko ; le contenu n’est pas envoyé) ; connexion facultative avec votre compte OpenSubtitles (nom d’utilisateur + mot de passe → jeton) ; téléchargement depuis le CDN OpenSubtitles. - Quand : ~2 min après l’ajout d’un titre, chaque jour à 04:00 (titres sans sous-titres), lors d’une recherche manuelle sur le serveur ; avec des budgets quotidiens (250 pour subs.ro, 5 requêtes pour OpenSubtitles par défaut).
- Le contrôle de calage et la correspondance de release sont effectués localement (ffprobe). Les notifications vont au journal d’activité local.
- Plus le client de licence, le même dans chaque plugin : voir Licences et confidentialité dans nos plugins.
Stocké localement : la clé d’API subs.ro, la clé d’API OpenSubtitles et le mot de passe du compte OpenSubtitles, chiffrés au repos dans secrets.enc.json dans le dossier de données du plugin (AES-256-GCM, clé aléatoire de secrets.key liée à l’identifiant du serveur, les deux fichiers en mode 600) et jamais envoyés au navigateur (la page n’affiche que « set ✓ ») ; le nom d’utilisateur OpenSubtitles reste dans la configuration du plugin (à partir de la version 1.1.3 ; les versions antérieures conservent les clés et le mot de passe en clair dans la configuration) ; state/state.json (titres, chemins, statut, journal de 1000 entrées maximum, quotas, jeton de session OpenSubtitles) ; cache de recherche (12 h) et archives (30 jours) ; sous-titres sous forme de <video>.ro.srt à côté du fichier.
Compatibilité avec les clients
- Les sous-titres deviennent de simples fichiers
.srtexternes : 🟢 ils s’affichent dans tout client qui affiche les sous-titres externes (✅ Jellyfin : vraie recherche + téléchargement sur subs.ro). Applications natives individuelles : ❔ non testé. - Page d’administration : Jellyfin Web (✅ ordinateur + téléphone).
- Fonctionne avec AISub (il ne génère qu’après « searched, not found »).
Légende : ✅ vérifié (test de bout en bout ou sur l’appareil) · 🟢 côté serveur, fonctionne avec tout client (par conception, sans test propre à un client) · ➖ non applicable · ❔ non testé.
Licence
Le plugin est open source (GPL-3.0). Les versions compilées prêtes à installer sont publiques, comme le code source. Ce que vous achetez, c’est l’abonnement : la licence d’utilisation du plugin sur un serveur Jellyfin, les mises à jour comprises dans votre formule et le support : chaque mise à jour pendant que l’abonnement est actif, via votre dépôt de plugins privé, et de l’aide quand quelque chose ne fonctionne pas. Le plugin vérifie la clé d’abonnement une fois par jour ; sans abonnement valide, il s’arrête jusqu’au renouvellement (rien n’est supprimé). Mensuel, annuel ou à vie (la licence à vie comprend un an de mises à jour), ou inclus dans le pack Jellyfin. Essai gratuit de 30 jours.
Code source. Pour chaque version, le code source complet correspondant est public, à côté de la version compilée, dans l’historique des versions, et aussi dans votre compte (Compte → Licences, Code source) ; chaque archive contient le texte intégral de la GPL-3.0 (LICENSE). Si vous avez besoin du code source d’une version que vous ne pouvez plus télécharger, écrivez-nous et nous vous l’envoyons. Voir la section 10 de la Licence (CLUF).
