---
title: Frames
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, media-streaming, plex, mapping, library, nodejs]
confidence: medium
contested: false
sources:
  - https://selfh.st/apps/?tag=Media+Streaming
  - https://github.com/.../frames
---

# 🎬 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é)

```yaml
# 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

```bash
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) ou `hybrid`.
- **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_TOKEN` donne 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
