4.2 KiB
title, created, updated, type, tags, confidence, contested, sources
| title | created | updated | type | tags | confidence | contested | sources | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Frames | 2026-06-07 | 2026-06-07 | app |
|
medium | false |
|
🎬 Frames
Outil de mapping et d'organisation de bibliothèques Plex — réconcilie, fusionne et rééquilibre les métadonnées incohérentes.
📋 Informations Générales
| Attribut | Valeur |
|---|---|
| Nom | Frames |
| Slug | app-frames |
| Description | Utilitaire Node.js pour analyser, fusionner et corriger les entrées d'une bibliothèque Plex |
| Site officiel | https://framesapp.io/ |
| Repository | https://github.com/framesapp/frames |
| Stars | 497 ⭐ |
| Licence | MIT |
| Langage principal | TypeScript (Node.js) |
| Catégorie | Media Streaming |
| Tags | [catalogue, media-streaming, plex, mapping, library, nodejs] |
📝 Description
Frames est un outil dédié à l'un des plus gros points de friction de app-plex : la qualité des métadonnées. Quand votre bibliothèque contient plusieurs versions du même film (rip 4K + version Director's Cut + version cinéma), Plex les affiche souvent comme des entrées distinctes, ou inversement, fusionne des films différents à cause d'un titre identique. Frames analyse la bibliothèque et propose un mapping cohérent.
Le logiciel se branche via l'API officielle Plex, lit les fichiers physiques (pour vérifier durée, codec, taille), compare aux métadonnées TMDB/IMDB, et expose une interface web de validation où l'on peut confirmer ou refuser chaque fusion proposée. C'est un data janitor pour bibliothèques qui ont pris du poids.
Points forts : UUID stable, scan incrémental, gestion des doublons exacte (hash) et floue (titre). Limites : projet mono-utilisateur, dépendant de la qualité de scan de Plex, et le re-mapping peut prendre du temps sur > 10 000 items.
🚀 Installation
Via Docker (recommandé)
# docker-compose.yml
version: "3.8"
services:
frames:
image: ghcr.io/framesapp/frames:latest
container_name: frames
restart: unless-stopped
ports:
- "7000:7000"
environment:
- PLEX_URL=http://plex.local:32400
- PLEX_TOKEN=*** - TMDB_API_KEY=*** - TZ=Europe/Paris
volumes:
- ./config:/app/config
- ./cache:/app/cache
Installation manuelle
git clone https://github.com/framesapp/frames
cd frames
npm install
npm run build
node dist/server.js
⚙️ Configuration
- Connexion Plex : URL du serveur (
http://IP:32400) + X-Plex-Token. - TMDB : clé API gratuite, indispensable pour valider les fusions.
- Stratégie de matching : choisir entre
exact(hash SHA256),fuzzy(titre + année ±1) ouhybrid. - Bibliothèques cibles : filtrer par section Plex (Films, Séries, etc.).
- Dry-run : mode lecture seule, recommandé avant tout vrai mapping.
🔗 Alternatives
- Plex Meta Manager — Plus puissant (collections automatiques, overlays) mais plus complexe.
- FileBot — Renommage de fichiers basé sur métadonnées, pas Plex.
- Sonarr/Radarr + Custom Formats — Empêche les doublons en amont, mais ne nettoie pas l'existant.
- PlexDance — Script Bash plus ancien, sans UI.
🔒 Sécurité
- Le
PLEX_TOKENdonne un accès administrateur complet : le traiter comme un mot de passe (variable d'environnement, pas dans un repo Git). - Limiter l'accès réseau à Frames (LAN ou VPN via app-wireguard).
- Faire un backup de la base SQLite Plex avant tout batch de fusions massives.
- Auditer régulièrement les fusions automatiques (mode
dry-run).
📚 Ressources
- Repository : https://github.com/framesapp/frames
- Documentation : https://docs.framesapp.io/
- API Plex : https://www.plexopedia.com/plex-media-server/api/
- TMDB API : https://www.themoviedb.org/documentation/api
🔗 Pages Liées
- cat-media-streaming (catégorie parente)
- app-plex — Cible principale de Frames
- app-jellyfin — Alternative libre
- app-emby — Concurrent semi-ouvert
- app-traefik — Reverse proxy HTTPS
- securisation-home-lab — Bonnes pratiques
- recettes-docker-compose — Templates