- Port par défaut 3001 → 9898 - Volume /app/data → /config (entrypoint, docker-compose, README) - Normalisation titres Kaï/Kai dans index.ts (catalogue + déduplication + serie detail) - Fix pagination GitLab NFO (per_page=100 → loop multi-pages) - Fix _is_bonus_filename avec word boundaries (\b) — évite faux positifs "national"→"ona" - Fix dossier Bonus/Specials exclus : récupère flottants (7,5/19,5) et S00Exx → saison 0 - _EP_FLOAT_PATTERN supporte virgules (7,5) en plus des points (7.5) - Ajout strict_season dans find_episode/resolve_ep — évite collision ep1 S1 vs ep1 S2 (JoJo Parties) - Ajout SEASON_EP_OFFSET pour Hokuto No Ken (saison 02 torrent → +16 offset API) - Fallback non-strict si strict_season échoue (Hokuto ep 5-16 S1) - Fix collect_covered_episodes : fallback torrent.serie_id si absent dans resolved_episodes - Fix s6_verify : get_all_specials + compteur S00 séparé, déduplication Kaï/Kai, format OK/TOTAL - Ajout MANUAL_TORRENTS dans s4 (MHA Film 4 You're Next URL Nyaa) - Injection torrents locaux manquants dans pipeline (Reborn! Kaï via fichier local) - Fix s5 : résolution directe torrents manuels season_number=0 - Fix s2 : pack_saga_slash et pack_partie_slash → pack_integrale, lookahead (?<!/) sur episode_num_tiret_apres - Fix s5 skip condition : re-résoudre si resolved_count < files_count (Fairy Tail) - README : note hardlinks volumes multiples, port, chemins config
Fankarr
Gestionnaire de téléchargements pour le catalogue Fankai Inspiré de Radarr/Sonarr — interface dédiée aux éditions Kai & Yabai
Vue catalogue : toutes les séries Fankai avec leur état d'organisation. Les badges indiquent si les fichiers sont déjà présents dans votre médiathèque Jellyfin.
Fonctionnalités
- Catalogue complet des séries Fankai avec affiches, statut et badges d'état
- Téléchargement en un clic vers qBittorrent — par épisode, par saison ou intégrale
- Organisation automatique des fichiers téléchargés vers votre médiathèque (hardlink ou déplacement)
- Suivi par épisode — badge ✓ organisé sur chaque épisode et compteur par saison
- Notifications toast automatiques quand une organisation se termine
- Page téléchargements avec statut d'organisation et badge erreurs avec détail au hover
- Logs centralisés avec filtre par niveau/source, rotation automatique et clear depuis l'UI
- Multi-client torrent — architecture extensible (qBittorrent supporté)
- Authentification par mot de passe avec session JWT
- Compatible Runtipi / Docker
Vue série : détail des épisodes avec leur état de disponibilité torrent et d'organisation dans Jellyfin.
Vue téléchargements : suivi en temps réel de l'organisation avec détail des erreurs au survol.
Page logs : historique complet des événements avec filtres et gestion de la taille.
Données torrent — Scraper
Les données du catalogue sont récupérées depuis le repo fankarr-scraper.
Ce repo contient un pipeline de scripts Python qui collecte, parse et résout les torrents Fankai depuis les trackers publics, puis les croise avec l'API metadata de Fankai pour identifier chaque épisode. Les scripts tournent automatiquement toutes les 6 heures via GitHub Actions et publient le fichier torrent_final.json dans le repo.
Fankarr récupère ce fichier au démarrage et via le bouton Mettre à jour dans les paramètres. Aucun scraping ne se fait en local.
Installation
Docker Compose (recommandé)
Prérequis : Docker + Docker Compose, qBittorrent accessible en réseau.
services:
fankarr:
image: masutayunikon/fankarr:latest
container_name: fankarr
environment:
- PUID=1000 # UID de votre utilisateur (id -u)
- PGID=1000 # GID de votre utilisateur (id -g)
- TZ=Europe/Paris # Votre timezone
volumes:
- ./config:/config # Config, logs, base de données
- /votre/chemin:/media # Racine de votre médiathèque (voir note hardlinks)
ports:
- 9898:9898
restart: unless-stopped
docker compose up -d
⚠️ Note sur les hardlinks : Pour que le mode
hardlinkfonctionne, vos dossiers de téléchargement complets et votre médiathèque doivent être sur le même filesystem. La solution recommandée est de monter un seul volume racine (ex:/votre/chemin:/media) et de configurer vos chemins à l'intérieur — comme le font Radarr et Sonarr.Vous pouvez tout à fait monter plusieurs volumes si vous le souhaitez, mais dans ce cas les hardlinks ne seront pas possibles entre deux volumes différents et Fankarr basculera automatiquement en copie.
Binaire autonome (Windows / Linux / macOS)
Téléchargez l'archive correspondant à votre système depuis les Releases GitHub :
| Système | Archive |
|---|---|
| Windows x64 | fankarr-windows-x64.zip |
| Linux x64 | fankarr-linux-x64.zip |
| macOS (Apple Silicon) | fankarr-macos.zip |
Extrayez l'archive — elle contient le binaire et le dossier public/ qui doivent rester ensemble :
fankarr-windows-x64/
├── fankarr.exe ← lancer ce fichier
└── public/ ← ne pas déplacer séparément
Linux / macOS : rendre le binaire exécutable avant le premier lancement :
chmod +x fankarr
./fankarr
Fankarr sera accessible sur http://localhost:9898. Les données (config, logs, base de données) sont sauvegardées dans un dossier data/ créé automatiquement à côté du binaire.
Variables d'environnement
| Variable | Défaut | Description |
|---|---|---|
PUID |
1000 |
UID utilisateur pour les permissions fichiers (Docker) |
PGID |
1000 |
GID utilisateur pour les permissions fichiers (Docker) |
TZ |
— | Timezone (ex: Europe/Paris) |
PORT |
9898 |
Port d'écoute du serveur |
JWT_SECRET |
auto-généré | Secret JWT — généré automatiquement dans /config/secret.key si absent |
GITHUB_RAW_URL |
repo scraper | URL du torrent_final.json à utiliser |
Premier démarrage
- Ouvrir
http://localhost:9898 - Créer un mot de passe à la première connexion
- Aller dans Paramètres → ajouter votre client qBittorrent
- Vérifier les chemins
completePathetmediaPath - Choisir le mode d'organisation :
hardlink(recommandé) oumove - Retourner au catalogue et télécharger
Organisation des fichiers
Fankarr organise automatiquement les fichiers terminés toutes les 30 secondes vers la structure attendue par Jellyfin :
/media/Kai/
└── Black Lagoon Henshū/
└── Saison 1/
├── Black Lagoon Henshū S01E01.mkv
├── Black Lagoon Henshū S01E02.mkv
└── ...
Le mode hardlink est recommandé si vos dossiers complete et media sont sur le même filesystem — les fichiers ne sont pas déplacés, qBittorrent continue de seeder.
Runtipi
Fankarr est disponible dans l'appstore personnalisé. Pour l'installer :
- Dans Runtipi, aller dans Paramètres → App Stores
- Ajouter l'URL :
https://github.com/Masutayunikon/runtipi-appstore - Fankarr apparaît dans le catalogue → Installer
Stack technique
| Couche | Technologie |
|---|---|
| Frontend | Vue 3 + Vite + Tailwind CSS |
| Backend | Express 5 + TypeScript |
| Auth | JWT + bcrypt |
| Packaging Docker | node:20-slim + pnpm + gosu (PUID/PGID) |
| Packaging binaire | Bun (self-contained, pas de Node requis) |
Liens
- fankai.fr — Le projet Fankai
- Plugin Jellyfin Fankai — Reconnaissance des métadonnées dans Jellyfin
- fankarr-scraper — Pipeline de collecte des torrents
- runtipi-appstore — Appstore Runtipi personnel



