CIS Downloads
Recommandation CIS en sécurité.
— Permalink
Recommandation CIS en sécurité.
— Permalink
Quand cela reste dans le spectacle, la magie et l'illusion, c'est cool.
Quand on commence à jouer avec la vie des gens, leurs espoirs et leurs peurs, et avec leur argent, cela mérite d'être débunké.
The Amazing Randy. RIP.
Extrait : "[...]la fortune des plus riches correspond presque exactement à l’augmentation de la dette sous Macron"

Si j'ai bien compris, impossible d'installer une application hors PlayStore ?
Donc adieu F-Droid, NewPipe, Blokada...
Tout ce qui faisait la "liberté" chez Android, risque de disparaître.
Ils se sont aperçu du fameux/fumeux "manque à gagner". Mais ils ne gagneront pas davantage.
Tout ça pour une sempiternelle "sécurité".
Comme en politique, on enlève notre "liberté" pour plus de "sécurité".
Quelle absurdité !
C'est justement le contraire. Ceux qui voudront toujours garder cette "liberté" vont s'exposer à plus de "danger".
Bref, encore des imbéciles qui ne calculent qu'à court terme.
ChatGPT, c’est fantastique… jusqu’à ce qu’il comprenne mal votre demande et vous offre une réponse à côté de la plaque. Avant, je passais des heures à reformuler mes questions. Aujourd’hui, grâce à quelques méthodes simples et bien pensées, j’obtiens des réponses nettes et justes à chaque fois. Voici 7 techniques incontournables pour formuler vos prompts […]
L’article Comment obtenir des réponses claires et précises avec ChatGPT : 7 méthodes de prompts infaillibles est apparu en premier sur Windtopik.
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,





📂 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.








![]()

Cet homme m'a été très inspirant, tout particulièrement par ce qu'il dit dans cette fameuse interview et qui apparaît @08:54 dans cette vidéo.
Cf y'a 12 ans : https://orangina-rouge.org/shaarli/shaare/-PPQjw
J'ai découvert l'existence de CrapFixer chez GuiPoM dont voici la présentation en vidéo ci-dessous.
Si l'interface semble être un clone du fameux CCleaner ce logiciel open-source n'a pas du tout la même utilité. CrapFixer est un cousin de O&O Shutup, il permet de désactiver des fonctionnalités de télémétrie, de personnaliser Windows... bref de "tweaker" comme on disait à l'époque 
Tout comme ce qui est précisé dans la vidéo, je vous déconseille d'utiliser CrapFixer si vous ne savez pas ce qu'il fait.
Et puis les PowerToys qui continuent d'évoluer avec de nouveaux outils que je ne connaissais pas, à tester donc ! Avec la mise à disposition par Microsoft, cela évite de télécharger des freewares douteux. Ici on a le bénéfice de la communauté de développeurs et le soutien de Microsoft, que demander de mieux ?
En bonus : lisez l'histoire derrière CrapFixer
Vous n'aimez pas le RSS : abonnez-vous par email
Article original écrit par Mr Xhark publié sur Blogmotion le 29/08/2025 |
2 commentaires |
Attention : l'intégralité de ce billet est protégée par la licence Creative Commons
Google innove encore dans le domaine de l’intelligence artificielle avec Gemini, sa dernière solution qui permet désormais de transformer vos idées en livres illustrés personnalisés uniques, en seulement quelques secondes. Cette fonctionnalité, intégrée à l’application Gemini, va plaire autant aux parents qu’aux enseignants ou aux passionnés de création d’histoires. Avec un système simple, intuitif, et multilingue, Gemini […]
L’article Gemini de Google : créez des livres illustrés personnalisés avec narration grâce à l’IA est apparu en premier sur Windtopik.
Deux siècles ont suffi à l’humanité pour dérégler le climat et enclencher une hausse des températures aux effets potentiellement dramatiques. Dans ce format visuel, « Le Monde » retrace cette évolution et les mécanismes à l’œuvre dans ce bouleversement.
Quelles listes ? Quasi tout ce qui existe : IMDb, Trakt, MDBList, Letterboxd, Steven Lu
ListSync de Woahai321 permet de gérer de manière simple, complète et franchement belle, des listes de contenus multimédia à télécharger. Listes synchronisées avec Overseerr et/ou Jellyseerr pour automatiser les demandes et téléchargements via les *arrs.
L’application est développement très actif.
Synchronisation automatique
Prise en charge de plusieurs plateformes de watchlist
Compatible avec Overseerr et Jellyseerr
Installation simplifiée avec Docker
Suivi en temps réel – Barres de progression et mises à jour instantanées
Gestion intuitive des listes – Ajoutez, modifiez et organisez vos listes facilement
Analyses complètes – Taux de réussite, indicateurs de performance et données historiques
Configuration via le web – Gérez tous les paramètres depuis le tableau de bord
Interface moderne et responsive – Parfaitement adaptée aux ordinateurs, tablettes et mobiles
Thèmes clair/sombre – Détection automatique des préférences système
Pour cet article, j’installe une instance locale. Mais selon les besoins, le compose et le .env ne sont pas les mêmes. Pour une utilisation/configuration plus poussée, je vous invite à suivre la documentation.
Je place le docker-compose.yml et le .env dans /home/aerya/docker/list-sync. Je n’indique aucune liste dans l’environnement, je ne me servirai que de l’interface Web.
J’utilise la version :main qui est la stable. J’ai ajouté la MàJ automatique du docker via un label Watchtower comme à mon habitude. Et j’ai mis en dur la timzeone mais ça marche aussi via le .env
Le compose
services:
listsync-full:
image: ghcr.io/woahai321/list-sync:main
container_name: listsync
ports:
# Frontend (Next.js Dashboard)
- "3222:3222"
# Backend API (FastAPI)
- "4222:4222"
environment:
# Timezone Configuration (set to Europe/London for BST/GMT, change as needed)
- TZ=Europe/Paris
# Overseerr Configuration
- OVERSEERR_URL=${OVERSEERR_URL}
- OVERSEERR_API_KEY=${OVERSEERR_API_KEY}
- OVERSEERR_USER_ID=${OVERSEERR_USER_ID:-1}
- SYNC_INTERVAL=${SYNC_INTERVAL:-24}
- AUTOMATED_MODE=true
- OVERSEERR_4K=${OVERSEERR_4K:-false}
# List Configuration (comma-separated)
- IMDB_LISTS=${IMDB_LISTS}
- TRAKT_LISTS=${TRAKT_LISTS}
- LETTERBOXD_LISTS=${LETTERBOXD_LISTS}
- MDBLIST_LISTS=${MDBLIST_LISTS}
- STEVENLU_LISTS=${STEVENLU_LISTS}
- TRAKT_SPECIAL_LISTS=${TRAKT_SPECIAL_LISTS}
- TRAKT_SPECIAL_ITEMS_LIMIT=${TRAKT_SPECIAL_ITEMS_LIMIT}
# Optional Discord webhook
#- DISCORD_WEBHOOK_URL=${DISCORD_WEBHOOK_URL}
# Internal API URL for frontend
- NEXT_PUBLIC_API_URL=${NEXT_PUBLIC_API_URL:-http://0.0.0.0:4222/api}
# Docker-specific settings
- RUNNING_IN_DOCKER=true
- NO_SANDBOX=1
- DISPLAY=:99
volumes:
# Persist data directory
- /home/aerya/docker/list-sync/data:/usr/src/app/data
# Mount environment file
- /home/aerya/docker/list-sync/.env:/usr/src/app/.env
# Optional: Mount logs for debugging
- /home/aerya/docker/list-sync/logs:/var/log/supervisor
restart: always
labels:
- com.centurylinklabs.watchtower.enable=true
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:4222/api/system/health", "&&", "curl", "-f", "http://localhost:3222"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
# Note: Complete ListSync application with:
# - Core sync service (python -m list_sync)
# - FastAPI backend (port 4222)
# - Next.js frontend (port 3222)
# All managed by supervisor for reliability
Et le .env avec les variables. Donc me concernant uniquement l’URL d’Overseerr et ma clé API. Je ferai le reste depuis la WebUI.
#=======================================================================
# ListSync Full Local Deployment Environment Configuration
# This file contains all variables needed for complete local deployment
# Copy this to .env and configure your values
#=======================================================================
# === Core Required Configuration ===
# Your Overseerr/Jellyseerr API key (REQUIRED)
OVERSEERR_API_KEY=xxxMQ==
# Your Overseerr/Jellyseerr URL (REQUIRED)
OVERSEERR_URL=https://demande.domain.tld
# === Optional Discord Notifications ===
# Discord webhook URL for notifications (leave blank to disable)
DISCORD_WEBHOOK_URL=
# Timezone (set to your local timezone)
TZ=UTC+2
#=======================================================================
# === Local Development Domains ===
# Frontend domain (Next.js Dashboard)
FRONTEND_DOMAIN=http://localhost:3222
# Backend API domain (FastAPI Server)
BACKEND_DOMAIN=http://localhost:4222
# === API Configuration ===
# This will be used by the frontend to call the API
NEXT_PUBLIC_API_URL=http://localhost:4222/api
# === CORS Configuration ===
# Allow frontend domain to access backend API
CORS_ALLOWED_ORIGINS=http://localhost:3222,http://0.0.0.0:3222,http://127.0.0.1:3222
#=======================================================================
# === List Configuration ===
# Configure which lists to sync (comma-separated)
# IMDb Lists (examples: "top", "popular", or specific list IDs)
IMDB_LISTS=
# Trakt Lists (specific list IDs)
TRAKT_LISTS=
# Trakt Special Lists (trending, collected, watched)
TRAKT_SPECIAL_LISTS=
TRAKT_SPECIAL_ITEMS_LIMIT=20
# Letterboxd Lists
LETTERBOXD_LISTS=
# MDBList Lists
MDBLIST_LISTS=
# Steven Lu Lists
STEVENLU_LISTS=
# === Sync Configuration ===
# User ID in Overseerr (usually 1 for admin)
OVERSEERR_USER_ID=1
# Sync interval in hours (24 = once per day)
SYNC_INTERVAL=24
# Enable automated mode (true/false)
AUTOMATED_MODE=true
# Enable 4K requests (true/false)
OVERSEERR_4K=false
#=======================================================================
# NOTE: This is the FULL LOCAL DEPLOYMENT configuration
# - Web UI will be available at http://localhost:3222
# - API server will run at http://localhost:4222
# - Core sync functionality will run automatically
# - All services managed by Docker Compose
#=======================================================================

Les options sont sommaires mais suffisantes

Je peux ajouter une liste de test. Attention, les listes peuvent être pratiques mais risquent également d’ajouter un paquet de fichiers en téléchargement d’un coup voire lors d’une mise à jour (toutes les 24h ici).
Je teste ça avec Decypharr et le cache d’AllDebrid donc je ne crains rien (hormis indexer des trucs qui ne m’intéressent pas plus que ça) mais il faut faire attention si on télécharge réellement des .torrents, encore plus sur des trackers privés. Idem avec des indexeurs Usenet où on est parfois limité en API hit ou téléchargement, c’est un coup à tuer le quota mensuel en 3 minutes.

J’utilise une top liste du super MDBList.com. Une petite « liste « Top Movies of the week » de 10 items pour tester.

Et je l’exécute maintenant, je vais attendre 24h pour terminer ce tuto

Et là… entre l’ajout à Overseerr, l’envoie à Radarr, la rechercher sur Prowlarr, le DL simulé par Decypharr (donc la recherche dans le cache d’AllDebrid), la validation dans Radarr, l’ajout dans Plex et la mise à jour des jaquettes par Kometa, ça a pris environ 3 minutes. LA VACHE !
J’en avais déjà certains, quand même.




Oui. Alors là on visualise bien pourquoi je ne suis pas fan des listes « des autres » pour ma consommation personnelle. Je vais clairement virer Dragons, Elio, KPop et Bad Guys… Chacun ses goûts.
En revanche, pour partager ça avec d’autres, c’est pratique de prendre des listes Netflix, Disney, Apple, HBO etc, surtout avec des jaquettes et collections par Kometa. Mais je ne m’aventure pas sur ce terrain là, mon plaisir est de découvrir, tester et partager des « retex ».

De retour sur SyncList, on peut visualiser l’état des synchronisations et les déclencher manuellement (global ici ou par liste sur l’onglet Lists)

Et on profite de quelques stats

Un bel outil pour qui aime les listes.
![]()
