Mise à jour : 13 novembre 2025 Des nouvelles excitantes pour les fans de Naruto ! Le monde de Shinobi Reborn vous invite à participer aux passionnants examens Chunin. Si vous êtes aussi passionné par cet arc que moi, c’est le moment parfait pour plonger dans le jeu et commencer votre aventure. Mais avant de […]
Avec son architecture quadriphonique et sa configuration sans fil, le Hisense HT Saturn promet une immersion sonore à 360 degrés dans une formule compacte et ultra simple à installer. Misant sur la collaboration avec Devialet pour le réglage acoustique, ce système 4.1.2 veut proposer des effets Atmos spectaculaires, le tout à un prix maîtrisé. En voici notre test complet.
Pour invoquer la piscine Leviathan, vous devez d’abord assembler l’amulette, et obtenir le fragment d’amulette de Varn est essentiel. Vous pouvez acquérir ce fragment en interagissant avec les lettres Leviathan dispersées dans le repaire des cultistes. Dans ce guide, nous révélerons les emplacements de ces lettres Leviathan pour vous aider à compléter la quête du […]
Après le test du R2 et de sa tête IR 1064 nm, j’ai voulu voir ce que donnait le petit Ortur R1 dans sa version 5 W optique. Ce test du Ortur R1 graveur laser 5W permet de vérifier si la promesse de simplicité et d’efficacité est tenue. Test Ortur R1 graveur laser 5W : […]
Il y a quelque temps on m’a demandé si je connaissais un agrégateur et lecteur de vidéos auto-hébergé. Après avoir parlé des classiques Plex, Emby, Jellyfin, Kodi, j’ai compris que c’était comme prendre un tank pour aller chercher le pain… vu qu’il s’agissait d’avoir une interface de lecture de vidéos X.
Le fait est que je n’ai rien trouvé de probant, simple, assez récent, puis ça m’a saoulé. J’ai donc créé MiniVid, présenté ici et dont le code est publié sur GitHub !
Bien évidemment, ça s’adapte parfaitement à d’autres vidéos comme des clips, documentaires, téléchargements YouTube, Twitch etc.
MàJ du 05.09.25 : j’ai publié le Docker sur GitHub, y’a plus à build localement, vous pouvez utiliser ghcr.io/aerya/minivid:latest
MàJ du 08.09.25 : j’ai ajouté un script Windows-MiniVid.cmd – Il installera si nécessaire Docker Desktop sur la machine,
– Guidage complet pour la configuration de MiniVid (édition complète disponible),
– Ajout de dossiers locaux comme distants (SMB/CIFS avec ou sans user:pwd).
📂 Navigation par dossiers
Accédez à vos vidéos avec une arborescence claire.
🔖 Tags automatiques extraits des noms de fichiers
Tags globaux par dossier
Tags individuels par fichier
Multi-sélection et recherche par tags
Blacklist configurable pour supprimer les mots inutiles (and, the, source, etc.)
🔍 Recherche avancée
Par nom de fichier
Par tags multiples
Par favoris
Par statut Lue / Non lue
🗂 Filtres et tris personnalisables
Nom
Taille
Date de modification
Statut Lues / Non lues
⭐ Favoris
Marquez vos vidéos d’un clic (★)
Accédez à la vue dédiée « Favoris »
🎥 Lecteur intégré (HTML5 natif)
Supporte mp4, webm et mkv (Chrome/Chromium)
Les fichiers non compatibles avec Firefox (.mkv, .avi, .flv, .m2ts) sont automatiquement basculés en remux/transcodage à la volée avec ffmpeg si activé
🖼 Miniatures automatiques
Générées avec ffmpeg
Capture par défaut à 5 secondes (pour éviter logos/intro)
Ajustable via variables (MINI_THUMB_OFFSET, MINI_THUMB_MAX)
📱 Interface responsive
Desktop, tablette et mobile
🌙 Mode clair / sombre
Bascule instantanée
🛠 Page Maintenance
Rescan complet de la bibliothèque
Purge des miniatures
Journal d’événements en direct (logs des actions)
⏱ Scan automatique
Toutes les heures par défaut
Intervalle configurable via MINI_SCAN_INTERVAL
🔐 Authentification optionnelle
Mode public ou mono-utilisateur avec identifiant/mot de passe
⚙ Configuration simple
Tout se règle via variables d’environnement dans votre docker-compose.yml
Variable
Valeur par défaut
Description
MEDIA_DIRS
(vide)
Liste des dossiers vidéos (séparés par `
MEDIA_NAMES
Dossier 1, Dossier 2…
Noms affichés pour chaque dossier (même ordre que MEDIA_DIRS)
MINI_ALLOWED_EXT
.mp4,.webm,.mkv,.avi,.flv,.m2ts
Extensions autorisées
MINI_BANNED_TAGS
(vide)
Liste de mots à ignorer lors de la génération de tags (and,the,source,…)
DATA_DIR
/data
Dossier de stockage interne (état, favoris, prefs)
THUMB_DIR
/cache/thumbs
Dossier cache des miniatures
MINI_USER
(vide)
Identifiant de connexion (optionnel)
MINI_PASS
(vide)
Mot de passe de connexion (optionnel)
SECRET_KEY
(aléatoire)
Clé de session Flask (authentification)
MINI_PLAYBACK
direct
Mode lecture : direct, auto, remux
MINI_TRANSCODE
0
Autoriser le transcodage H.264/AAC (1 = oui, 0 = non)
MINI_FIREFOX_MKV_FALLBACK
1
Force le remux des .mkv dans Firefox
MINI_AUTOSCAN
1
Activer le rescan automatique (1 = oui)
MINI_SCAN_INTERVAL
3600
Intervalle entre scans auto (en secondes)
MINI_THUMB_OFFSET
5
Seconde du screenshot miniature
MINI_THUMB_MAX
30
Offset max (si vidéo longue)
MINI_FFPROBE_TIMEOUT
10
Timeout en secondes pour ffprobe/ffmpeg
API_READ_KEY
(vide)
Clé API (optionnelle) pour accès en lecture seule
Pour l’installation et la configuration, reportez-vous au dépôt GitHub.
Exemple de docker-compose.yml
services:
minivid:
image: ghcr.io/aerya/minivid:latest
container_name: minivid
restart: always
environment:
TZ: Europe/Paris
MEDIA_DIRS: /videos1|/videos2|/videos3|/videos4|/videos5
MEDIA_NAMES: ruTorrent|MeTube|Docs|Concerts|Tests formats vidéo
DATA_DIR: /data
THUMB_DIR: /cache/thumbs
MINI_ALLOWED_EXT: .mp4,.webm,.mkv,.avi,.flv,.m2ts
MINI_PLAYBACK Mode de lecture : auto
MINI_TRANSCODE: 1
MINI_FIREFOX_MKV_FALLBACK: 1
MINI_THUMB_OFFSET: 5
MINI_THUMB_MAX: 30
MINI_AUTOSCAN: 1
# Auth (prises du .env ; si vide => pas d'auth)
MINI_USER: ${MINI_USER}
MINI_PASS: ${MINI_PASS}
SECRET_KEY: 032cb57bd9a0ed97c62a46518aaa3cf2ka9d256da92e17e75e75d282ad5cda87
# Liste noire tags (les mots de moins de 3 lettres sont automatiquement bannis)
MINI_BANNED_TAGS: >
and,the,source,video,videos,vid,vids,film,movie,part,
les,une,des,ils,elles,sur,sous,dans,par,pour,sans,avec,chez,
cet,cette,ces,mon,mes,ton,tes,ses,notre,nos,votre,vos,leur,leurs,
qui,que,quoi,dont,quand,comme,
your,they,for,with,without,into,onto,about,this,that,these,those,
here,there,then,than,are,was,being,been,have,had,just,only,
over,under,very,more,most,less,were,com,net
volumes:
- /mnt/user/rutorrent-direct:/videos1:ro
- /mnt/user/MeTube:/videos2:ro
- /mnt/user/TEST/Docs:/videos3:ro
- /mnt/user/TEST/Concerts:/videos4:ro
- /mnt/user/TEST/Formats:/videos5:ro
- /mnt/user/appdata/MiniVid/data:/data
- /mnt/user/appdata/MiniVid/cache:/cache
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
ports:
- "8080:8080"
# Scan toutes les INTERVAL secondes
minivid-scheduler:
image: curlimages/curl:8.10.1
container_name: minivid-scheduler
depends_on:
- minivid
restart: always
environment:
APP_URL: ${APP_URL}
MINI_USER: ${MINI_USER}
MINI_PASS: ${MINI_PASS}
INTERVAL: ${INTERVAL}
command: >
sh -c '
set -eu;
for i in $(seq 1 60); do curl -fsS "$APP_URL/maintenance" >/dev/null 2>&1 && break || sleep 2; done
while :; do
if [ -n "$MINI_USER" ] && [ -n "$MINI_PASS" ]; then
# login (remember=on)
curl -sS -c /tmp/c.jar -X POST "$APP_URL/login" \
-d "username=$MINI_USER" -d "password=$MINI_PASS" -d "remember=on" -o /dev/null || true
if curl -sS -b /tmp/c.jar "$APP_URL/api/maintenance/progress" | grep -qi "\"running\"\\s*:\\s*true"; then
sleep 120
else
curl -m 5 -sS -b /tmp/c.jar -X POST "$APP_URL/api/maintenance/rescan" -o /dev/null || true
fi
else
curl -m 5 -sS -X POST "$APP_URL/api/maintenance/rescan" -o /dev/null || true
fi
sleep "$INTERVAL"
done
'
Exemple de .env
# URL interne du service
APP_URL=http://minivid:8080
# Auth (laisser vide pour désactiver l'auth)
MINI_USER=admin
MINI_PASS=admin
# Fréquence en secondes (3600 = 1h)
INTERVAL=3600
L’indexation des fichiers se fait à la volée au 1er lancement, plus ou moins rapidement selon la quantité de vidéos et le CPU. Le transcodage sous Firefox/LibreWolf peut faire souffrir le CPU sur une petite machine, je ne l’ai pas optimisé vu qu’il est plus rapide de passer par un autre navigateur.
Aucun appel externe, tout est 100% local. Fonctionne en http://IP:port comme en reverse proxy.