Vue lecture
On en sait (un peu) plus sur la future startup de Yann LeCun
Présent le 4 décembre à la conférence AI-Pulse à Paris , Yann LeCun a lâché quelques informations sur sa future start-up centrée sur la ’“Advanced Machine Intelligence” (AMI) et relevées par Reuters.
S’il na pas dévoilé le nom de baptême de sa prochaine entreprise, le futur ex scientifique en chef de l’IA chez Meta ( qu’il quittera en fin d’année) a indiqué son actuel employeur ne figurera pas parmi ses investisseurs.
Autre info : la start-up pourrait s’installer à Paris.
Fin novembre, le co-lauréat du prix Turing avait annoncé son départ pour créer une start-up consacrée aux « modèles du monde », une nouvelle génération de systèmes d’IA qui apprennent à partir de données visuelles et spatiales plutôt que textuelles.
À l’époque, il avait décrit Meta comme un « partenaire » sans préciser la nature exacte de cette relation.
Son départ intervient dans un contexte de profonde réorganisation de la division IA de Meta. Mark Zuckerberg a réorienté le laboratoire de recherche fondamentale en IA (FAIR), fondé par Yann LeCun en 2013, vers des produits commerciaux et les grands modèles de langage, une stratégie éloignée de sa vision.
Photo : © DR
The post On en sait (un peu) plus sur la future startup de Yann LeCun appeared first on Silicon.fr.

Un ancien proche de Trump prend la tête du groupe NSO
Meta licencie 600 postes d’IA et resserre son organisation
Meta réorganise son unité d’intelligence artificielle avec environ 600 suppressions de postes et mise sur la mobilité interne pour accélérer l’exécution.
Cet article Meta licencie 600 postes d’IA et resserre son organisation est apparu en premier sur Linformatique.org.
Un nouveau souffle pour vos jaquettes : Aura et MediUX au service de Plex, Emby et Jellyfin
Je zyeute MediUX depuis très longtemps mais le côté « Faut parcourir le site, télécharger le .zip, l’importer dans mon lecteur, l’appliquer » m’avait clairement rebuté dès les… 52 premières secondes.
L’équipe derrière MediUX propose l’outil Aura, encore en early stage donc on utilise tous une unique clé API de « test », qui permet de parcourir les sets liés à ses bibliothèques via une WebUI.
Ne reste qu’à choisir un set et l’appliquer de suite via un clic ou le prévoir pour une mise à jour automatique en cron. Et on peut en plus lui indiquer de surveiller les MàJ du set sélectionné pour les appliquer.
Si on peut l’intégrer à Kometa, en revanche pour Aphrodite il faut bien veiller à faire mouliner Aura puis ensuite Aphrodite pour les overlays. Comme vous le verrez plus bas, Aura se lance à minuit chaque jour alors qu’Aphrodite est lancé chaque heure. Au pire, il n’y a plus aucun overlay entre minuit et 1h du matin, « pas grave ».
Cet outil se destine aux amateurs de beaux visuels et de personnalisation.
Malgré un maximum d’automatisation, rien ne pourra remplacer l’action de parcourir ses contenus et,
pour chaque, de parcourir à leur tour les embellissements disponibles pour ensuite les appliquer.
Merci TiMac pour la belle découverte !

Compatibilité multi-serveurs : fonctionne avec Plex, Emby et Jellyfin.
Navigation visuelle : prévisualisez les visuels dans une interface claire et organisée.
Mises à jour automatiques : enregistrez les ensembles d’images choisis et gardez-les synchronisés automatiquement.
Stockage local : possibilité d’enregistrer les images à côté de vos fichiers multimédias pour un accès facile.
Support Docker : déploiement simple avec Docker ou docker-compose.
Le docker-compose est à récupérer localement et on peut l’éditer rapidement pour l’adapter
services:
aura:
image: ghcr.io/mediux-team/aura:latest
container_name: aura
restart: always
ports:
- 3064:3000 # Web UI PORT
- 8888:8888 # API PORT
volumes:
- /home/aerya/docker/aura:/config
- /mnt/Bibliothèques/:/data/media
labels:
- com.centurylinklabs.watchtower.enable=true
Avant de le lancer il convient de faire de même avec le fichier de configuration. Son remplissage est déterminant pour le fonctionnement d’Aura. Les paramètres ne sont en effet pour l’instant accessibles qu’en lecture seule via l’interface.
Vous pouvez vous aider de la documentation mais c’est pas compliqué.
Voici le mien pour Jellyfin, avec 2 bibliothèques, SANS authentification (derrière Authelia chez moi), avec notifications Discord. Si vous voulez utiliser un mot de passe, il devra être hashé.
Il faudra une clé API Jellyfin (ou un token Plex) et une clé API (pas le token) TMDB.
Le cron servira pour la MàJ auto (si sélectionnée) des sets, on voit ça plus bas.
# Configuration Sample - aura
# For full documentation, see: https://mediux-team.github.io/AURA/config
# This file should be located in /config on the docker container
# Auth - Configuration for authentication
# This is used to configure the authentication for the application.
# Enable - Whether to enable authentication or not.
# Password - The Argon2id hashed password for the user.
Auth:
Enable: false
Password: $argon2id$v=19$m=12,t=3,p=1$Z3k1YnkwZzh5OTAwMDAwMA$lJDoyKZy1BMifB1Mb2SWFQ
# CacheImages - Whether to cache images or not. Caching images can improve performance but will use more disk space.
CacheImages: true
# SaveImageNextToContent - Whether to save images next to the Media Server content or not.
# If set to true, images will be saved in the same directory as the Media Server content.
# If set to false, images will still be updated on the Media Server but will not be saved next to the content.
# The benefit of this is that you have local images that are not dependent on the Media Server database in case of migration.
# If you are using Emby or Jellyfin, this option being set does not matter. This is determined by Emby or Jellyfin.
# If you are using Plex, this option will determine if the images are saved next to the content or not.
SaveImageNextToContent: false
# Logging - Configuration for logging
# Level - The level of logging. Can be one of: TRACE, DEBUG, INFO, WARNING, ERROR
Logging:
Level: DEBUG
# AutoDownload - Configuration for auto-downloading images
# Enabled - Whether to enable auto-downloading of images or not.
# You have the option when selecting a set to save it to the database.
# This will look for updates to the set and download them automatically.
# Cron - The cron schedule for auto-downloading images. This is a standard cron expression.
# For example, "0 0 * * *" means every day at midnight
AutoDownload:
Enabled: true
Cron: "0 0 * * *"
# Notifications - Configuration for notifications
# Enabled - Whether to enable notifications or not.
# Providers - A list of notification providers to use. Currently supported providers are:
# - Discord
# - Pushover
# You can set multiple providers at the same time. aura will send notifications to all. You also have the option to enable each provider. This gives you flexability to turn off the ones that you don't want to use.
# When provider is Discord, you must set the Webhook URL
# When provider is Pushover, you must set the Token and UserKey
# Sample:
# - Provider: "Pushover"
# Enabled: true
# Pushover:
# Token: your_pushover_token
# UserKey: your_pushover_user_key
# - Provider: "Discord"
# Enabled: true
# Discord:
# Webhook: your_discord_webhook_url
Notifications:
Enabled: true
Providers:
- Provider: "Discord"
Enabled: true
Discord:
Webhook: "https://canary.discord.com/api/webhooks/xxx"
- Provider: "Pushover"
Enabled: false
Pushover:
Token: your_pushover_api_token
UserKey: your_pushover_user_key
# MediaServer - Configuration for your Media Server
# Type - The type of Media Server. This can be one of: Plex, Jellyfin, Emby
# URL - The URL of the Media Server. This should be the IP:Port of the Media Server or your Media Server reverse proxy domain.
# Token - The token for the Media Server. This can be found in the Media Server web interface.
# Libraries - A list of libraries to scan for images. Each library should have the following fields:
# - Name: The name of the library to scan for content. Please note that this application will only work on Movies and Series libraries.
# SeasonNamingConvention - The season naming convention for Plex. This is a Plex exclusive requirement. This can be one of: 1 or 2. This will default to 2
# 1 - Season 1 (non-padded)
# 2 - Season 01 (padded)
MediaServer:
Type: "Jellyfin" # The type of Media Server. This can be one of: Plex, Jellyfin, Emby
URL: https://jelly.domaine.tld:443
Token: xxx
Libraries:
- Name: "Films"
- Name: "Séries"
# - Name: "4K Movies"
# - Name: "4K Series"
# SeasonNamingConvention: 1 # This is a Plex exclusive requirement. This is the season naming convention for Plex. This can be one of: 1 or 2
# Kometa - Configuration for Kometa
# RemoveLabels - Whether to remove labels or not. This will remove all specific labels from the Media Server Item.
# Labels - A list of labels to add to the Media Server Item. This will be used to identify the item in the Media Server.
# This is also a Plex exclusive requirement. This will only work on Plex.
Kometa:
RemoveLabels: false
Labels:
- "Overlay"
# TMDB - Configuration for TMDB (The Movie Database) This is not used yet.
# ApiKey - The API key for TMDB. This can be obtained by creating an account on TMDB and generating an API key.
TMDB:
ApiKey: xxx
# Mediux - Configuration for Mediux
# Token - The token for Mediux. This can be obtained by creating an account on Mediux and generating a static token.
# !!!! NOTE: This is not yet available to the public. It is currently in development and will be available in the future.
# If you would like to test this app, you will need a MedUX. You can contact us on Discord to get access.
# DownloadQuality: The quality of the images to download. Options are: "original" or "optimized"
Mediux:
Token: N_l1upAQrVJ05J6Fwjz89HEoo348l1u-
DownloadQuality: "optimized"
Une fois lancé ça indexe nos contenus globaux ou par bibliothèque, avec un minimum de tri. Et ça ffiche les posters actuels. Aphrodite n’est pas encore passé mettre des overlays.

De là on peut sélectionner 1 film ou 1 série et parcourir les sets MediUX tout en visualisant le poster actuel. En l’occurrence, pour Carnivàle j’ai le choix entre 3 sets. C’est pas foufou MAIS des gens ont pris le temps de les réaliser et partager sur MediUX alors merci à eux.


Aura indique si c’est ou non déjà en base de données

Tout est expliqué et détaillé dans la documentation (en anglais, mais on est en 2025, donc go les d’jeuns ! – je suis de 73- ).
La sélection d’un set de série offre plusieurs choix :
– Poster : l’affiche de la série
– Backdrop : l’image d’arrière plan si vous avez activé l’option dans Plex/.Jellyfin
– Season poster : les affiches des saisons
– Auto DL : vérifiera périodiquement les nouvelles mises à jour de cet ensemble. C’est utile si vous souhaitez télécharger et appliquer automatiquement les nouvelles titlecards ajoutées lors de futures mises à jour de cet ensemble. C’est à ça que cert le cron entré dans la configuration.
- – Future updates ONLY : ne téléchargera rien pour le moment. C’est utile si vous avez déjà téléchargé l’ensemble et que vous souhaitez uniquement appliquer les mises à jour futures. Par exemple uniquement 1x par jour.
Notez qu’il n’y a pas toujours de backdrop de proposé.


Et je constate la mise à jour dans la foulée sur Jellyfin

On peut parcourir les sets proposés par un utilisateur par rapport à nos contenus indexés par Aura, pratique si on apprécie son travail et qu’on veut en profiter pour d’autres séries ou films.

Il y a une option Kometa, pour conserver ou non les overlays après la MàJ d’une affiche. Je n’ai pas testé.
On peut déjà utiliser des sets MediUX via Kometa mais ça semble vraiment fastidieux. Aura est encore tout jeune mais il y a fort à parier qu’il y aura une bonne intégration à/de Kometa dans le futur.
![]()
Aphrodite – Sublimez vos affiches pour Jellyfin (et Emby ?)
Ok, pour Emby je pose la question vu qu’ils ont la même origine.
J’utilise Kometa sur Plex et j’ai trouvé son pendant pour Jellyfin avec Aphrodite de jackkerouac. Enfin en mieux, selon moi, plus configurable et en WebUI.
Pour nos bibliothèques Jellyfin on peut tout simplement changer les affiches (bases), configurer et ajouter tout ou au choix la résolution, l’audio, les notes et les récompenses.
Avec la totale, ça peut donner ceci.



Ça ne fonctionne évidemment pas sur les affiches des collections vu que ces badges concernent une vidéo donnée.

Pour répondre à nos besoins, sommaires vu que je connais mes règles Radarr/Sonarr, je n’affiche que les notes et récompenses.

Via la WebUI on peut planifier des opérations (cron) pour appliquer tout ou partie des badges sur les bibliothèques sélectionnées. En reprenant ou non les éléments déjà traités.
En revanche, pour la modification des affiches, c’est à faire manuellement, par grappes de 50 (ouais, léger…).
L’installation est relativement simple, j’ai cependant rencontré pas mal de soucis en ne configurant que via la WebUI pour Jellyfin. J’ai tout décommenté/renseigné dans le .env et ça roule.
Comme indiqué sur le GitHub, il faut télécharger le compose et son .env. Je mets ça dans /home/aerya/docker/aphrodite
# Créer le dossier entrer dedans
mkdir /home/aerya/docker/aphrodite && cd /home/aerya/docker/aphrodite
# Télécharger le docker-compose et le .env
curl -L https://github.com/jackkerouac/aphrodite/releases/latest/download/docker-compose.yml -o docker-compose.yml
curl -L https://github.com/jackkerouac/aphrodite/releases/latest/download/default.env.example -o .env
Et on passe à l’édition du compose.
Par rapport au compose de base, j’ai juste modifié les volumes sur la base de /home/aerya/docker/aphrodite/…
Mis en always pour « restart » et ajouté la MàJ auto d’Aphrodite avec watchtower. Pas la peine pour Postgre et Redis vu que ça va chercher des versions précises.
Tout le reste se modifie dans .env qui suit
services:
postgres:
image: postgres:15-alpine
container_name: aphrodite-postgres
restart: always
ports:
- ${POSTGRES_PORT:-5433}:5432
environment:
POSTGRES_DB: ${POSTGRES_DB:-aphrodite}
POSTGRES_USER: ${POSTGRES_USER:-aphrodite}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-aphrodite123}
volumes:
- /home/aerya/docker/aphrodite/postgres_data:/var/lib/postgresql/data
healthcheck:
test:
- CMD-SHELL
- pg_isready -U ${POSTGRES_USER:-aphrodite}
interval: 10s
timeout: 10s
retries: 5
redis:
image: redis:7-alpine
container_name: aphrodite-redis
restart: always
ports:
- ${REDIS_PORT:-6379}:6379
volumes:
- /home/aerya/docker/aphrodite/redis_data:/data
healthcheck:
test:
- CMD
- redis-cli
- ping
interval: 10s
timeout: 10s
retries: 5
aphrodite:
image: ${APHRODITE_IMAGE:-ghcr.io/jackkerouac/aphrodite:latest}
container_name: aphrodite
pull_policy: always
restart: always
environment:
POSTGRES_HOST: postgres
POSTGRES_PORT: 5432
POSTGRES_DB: ${POSTGRES_DB:-aphrodite}
POSTGRES_USER: ${POSTGRES_USER:-aphrodite}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-aphrodite123}
DATABASE_URL: ${DATABASE_URL:-postgresql+asyncpg://aphrodite:aphrodite123@postgres:5432/aphrodite}
REDIS_URL: ${REDIS_URL:-redis://redis:6379/0}
API_HOST: ${API_HOST:-0.0.0.0}
API_PORT: ${API_PORT:-8000}
ENVIRONMENT: ${ENVIRONMENT:-production}
SECRET_KEY: ${SECRET_KEY:-please-change-this-secret-key-in-production}
ALLOWED_HOSTS: ${ALLOWED_HOSTS:-*}
CORS_ORIGINS: ${CORS_ORIGINS:-*}
LOG_LEVEL: ${LOG_LEVEL:-info}
LOG_FILE_PATH: ${LOG_FILE_PATH:-/app/logs/aphrodite-v2.log}
DEBUG: ${DEBUG:-false}
CELERY_BROKER_URL: ${CELERY_BROKER_URL:-redis://redis:6379/0}
CELERY_RESULT_BACKEND: ${CELERY_RESULT_BACKEND:-redis://redis:6379/1}
ENABLE_BACKGROUND_JOBS: ${ENABLE_BACKGROUND_JOBS:-true}
JELLYFIN_URL: ${JELLYFIN_URL:-}
JELLYFIN_API_KEY: ${JELLYFIN_API_KEY:-}
JELLYFIN_USER_ID: ${JELLYFIN_USER_ID:-}
ports:
- ${APHRODITE_PORT:-8000}:8000
volumes:
- /home/aerya/docker/aphrodite/aphrodite_data:/app/data
- /home/aerya/docker/aphrodite/aphrodite_logs:/app/logs
- /home/aerya/docker/aphrodite/aphrodite_media:/app/media
- /home/aerya/docker/aphrodite/aphrodite_static:/app/api/static/originals
labels:
- com.centurylinklabs.watchtower.enable=true
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
healthcheck:
test:
- CMD
- curl
- -f
- http://localhost:8000/health/live
interval: 10s
timeout: 10s
retries: 5
start_period: 40s
aphrodite-worker:
image: ${APHRODITE_IMAGE:-ghcr.io/jackkerouac/aphrodite:latest}
container_name: aphrodite-worker
pull_policy: always
restart: always
command:
- python3
- -m
- celery
- -A
- celery_app
- worker
- --loglevel=debug
- --pool=solo
- --concurrency=1
environment:
POSTGRES_HOST: postgres
POSTGRES_PORT: 5432
POSTGRES_DB: ${POSTGRES_DB:-aphrodite}
POSTGRES_USER: ${POSTGRES_USER:-aphrodite}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-aphrodite123}
DATABASE_URL: ${DATABASE_URL:-postgresql+asyncpg://aphrodite:aphrodite123@postgres:5432/aphrodite}
REDIS_URL: ${REDIS_URL:-redis://redis:6379/0}
CELERY_BROKER_URL: ${CELERY_BROKER_URL:-redis://redis:6379/0}
CELERY_RESULT_BACKEND: ${CELERY_RESULT_BACKEND:-redis://redis:6379/1}
ENVIRONMENT: ${ENVIRONMENT:-production}
SECRET_KEY: ${SECRET_KEY:-please-change-this-secret-key-in-production}
LOG_LEVEL: ${LOG_LEVEL:-info}
LOG_FILE_PATH: ${LOG_FILE_PATH:-/app/logs/aphrodite-v2.log}
PYTHONPATH: /app
volumes:
- /home/aerya/docker/aphrodite/aphrodite_data:/app/data
- /home/aerya/docker/aphrodite/aphrodite_logs:/app/logs
- /home/aerya/docker/aphrodite/aphrodite_media:/app/media
- /home/aerya/docker/aphrodite/aphrodite_static:/app/api/static/originals
labels:
- com.centurylinklabs.watchtower.enable=true
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
working_dir: /app/api
healthcheck:
test:
- CMD
- python3
- -c
- import sys; sys.path.insert(0, '/app'); from celery_app import
celery_app; print('Worker healthy')
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
networks:
default:
name: aphrodite_network
Et le fameux .env. Comme expliqué plus haut, après plusieurs tests, il faut y paramétrer le serveur Jellyfin et également décommenter les informations liées à Postgre et Redis. J’ai passé les logs en DEBUG vu les soucis que je rencontrais au début.
Pour créer la SECRET_KEY : (en console) openssl rand -hex 64
Et ne pas oublier de mettre le mot de passe POSTGRES_PASSWORD dans la partie DATABASE_URL
Créer une clé API dans Jellyfin via le menu tout en bas du Tableau de bord
Et récupérer l’ID utilisateur qui sera utilisée pour connecter Aphrodite. Dans Tableau de bord/Utilisateurs, cliquer sur le user et l’ID est à la fin de l’URL
# =============================================================================
# Docker Image Configuration
# =============================================================================
# Leave blank to always pull the latest version from GitHub Container Registry
# APHRODITE_IMAGE=ghcr.io/jackkerouac/aphrodite:latest
# =============================================================================
# Database Configuration
# =============================================================================
# IMPORTANT: Change POSTGRES_PASSWORD to a secure password!
# This password will be used to create the database user
POSTGRES_DB=aphrodite
POSTGRES_USER=aphrodite
POSTGRES_PASSWORD=motdepassedelamortquitue
POSTGRES_PORT=5432
# =============================================================================
# Redis Configuration
# =============================================================================
REDIS_PORT=6379
# =============================================================================
# Security Configuration (REQUIRED)
# =============================================================================
SECRET_KEY=4c887cda6e10bac46eb61a961e38f4626609c9caeca08123ed1d6d876c6b14c20a11118cec534f26d5d5de4f5b6935fa07ff8887b91322058c20f95705025fa0
# =============================================================================
# Application Configuration
# =============================================================================
# Port to run Aphrodite on (default: 8000)
APHRODITE_PORT=8000
# API Configuration
API_HOST=0.0.0.0
API_PORT=8000
# Environment
ENVIRONMENT=production
# Logging level (debug, info, warning, error)
LOG_LEVEL=debug
DEBUG=true
# Network Configuration
ALLOWED_HOSTS=*
CORS_ORIGINS=*
# =============================================================================
# Background Jobs Configuration
# =============================================================================
ENABLE_BACKGROUND_JOBS=true
CELERY_BROKER_URL=redis://redis:6379/0
CELERY_RESULT_BACKEND=redis://redis:6379/1
# =============================================================================
# Database & Redis URLs (Advanced - Override defaults if needed)
# =============================================================================
DATABASE_URL=postgresql+asyncpg://aphrodite:motdepassedelamortquitue@postgres:5432/aphrodite
REDIS_URL=redis://redis:6379/0
# =============================================================================
# Jellyfin Integration (Optional - Configure via Web Interface)
# =============================================================================
# You can set these here or configure them in the web interface
JELLYFIN_URL=https://jelly.domaine.tld
JELLYFIN_API_KEY=xxx
JELLYFIN_USER_ID=xxx
On peut ensuite lancer la Docker et aller visiter les paramètres d’Aphrodite. Mon screen date de ma 1ère installation aussi je ne sais plus si les paramètres de Jellyfin sont déjà remplis par le biais du .env
Il faut aller récupérer (ou créer) ses clés API :
– OMDB : version gratuite, clé dans le mail qu’on reçoit suite à l’inscription
– TMDB : le token, pas la clé
– MDBList : en bas de page
– AniDB si vous avez des mangas : j’ai pas regardé plus que ça pour créer une clé API

C’est par ailleurs dans cette partie qu’on peut configurer les badges à mettre en overlay sur les affiches. Je ne rentre pas dans les détails, il y a tellement de personnalisation possible que c’est propre à chacun.
Aphrodite étant tout jeune, les notes ne sont pour l’instant disponibles qu’à partir d’IMDb, Metacritic, MyAnimeList, Rotten Tomatoes et TMDb. C’est déjà pas mal même si je suis impatient de voir Trakt arriver. TMDb et Trakt.tv ont maintenant un nombre d’utilisateurs suffisant pour avoir plusieurs centaines de votes et les rendre qualitatifs.
Il n’y a évidemment pas AlloCiné, pardon pour ceux qui y bossent, mais c’est bien trop franco-nombriliste-français pour avoir une quelconque utilité dans la galaxie des *arrs et du streaming.







Pour l’audio et la vidéo, Aphrodite peut détecter les données via l’analyse des fichiers. Faut évidemment avoir la machine qui le permet sans que ça prenne des heures.


On peut générer un aperçu de sa configuration via le menu Preview

Avant d’aller plus loin, il faut prendre le temps de vérifier l’import des bibliothèques suite à la connexion avec Jellyfin, dans le menu Poster Manager.
C’est ballot, j’ai pas pensé à faire de screen avant de modifier mes affiches…

Ici on peut modifier les affiches, par lots de 50 donc faut être patient… C’est sympa, ça change mais on ne peut pas faire de choix et, pour l’instant, il n’y a pas MediUX d’intégré. Mais le projet est jeune, ça a le temps de venir.

C’est également dans ce menu qu’on peut lancer à la demande l’application des badges, toujours par lots de 50 affiches. Ça peut être intéressant pour tester ou s’occuper des bibliothèques spécifiques avec peu de contenus.

Et ensuite passer aux choses sérieuses avec la mise en place de tâches (ou d’une seule, c’est selon) via les Schedules

Après avoir testé plusieurs configurations, j’ai créé une tâche qui se répète toutes les heures pour mes 2 bibliothèques, pour les contenus non encore « badgés » et seulement les notes et récompenses, comme expliqué au début de mon article.

On peut déclencher le travail directement, sans attendre la prochaine planification et mes bibliothèques passent d’affiches simples

à des badgées selon mes préférences !
Il y a eu l’ajout de collections entre temps également, depuis Jellyfin.

Au final ça tourne très bien, il y a presque trop de réglages possibles quand on est comme moi un éternel insatisfait ^^’
Aphrodite est encore jeune et en sus de l’utiliser je suivrai assurément ses évolutions !
![]()
Personnaliser les affiches et collections de Plex avec Kometa
J’aime bien avoir une idée des notes IMDB/TMDB des contenus répertoriés par Plex. Kometa, un script Python empaqueté dans un Docker pour plus de simplicité, permet de m’auditer les jaquettes des contenus indexés et créer celles de collections et playlists.
On peut presque faire la même chose sur Emby/Jellyfin, avec Posterizarr qui fonctionne aussi pour Plex)


On peut y mettre les infos qu’on souhaite, à l’endroit qu’on veut et créer/afficher ou non les listes par diffuseur etc. Tout est configurable, pour peu qu’on prenne le temps de lire la documentation.
Je partage ma configuration actuelle, qu’il faudrait encore peaufiner, et vous pouvez en trouver d’autres ici ou là.

Voici un Docker qui fonctionne très bien. Au besoin, pour UNRAiD, Synology, QNAP, Kubernetes, la doc est complète.
services:
kometa:
image: kometateam/kometa:develop
container_name: kometa
restart: always
environment:
- TZ=Europe/Paris
- KOMETA_CONFIG=/config/config.yml
- KOMETA_RUN=true
- KOMETA_TIMES=00:00,06:00,12:00,18:00
volumes:
- /home/aerya/docker/kometa/config:/config
- /home/aerya/docker/kometa/assets:/assets
labels:
- com.centurylinklabs.watchtower.enable=true
KOMETA_TIMES = les heures où Kometa doit mouliner
Et voici mon config.yml
Il faut le domaine Plex + token, les clés API TMDB, FanART et MDBlist. Je voulais tester les playlists, pas encore pris le temps…
Attention, dans la partie « libraries » les noms des librairies doivent être ceux de Plex, ici Films et Séries TV
plex:
url: https://plex.domain.tld
token: xxx
timeout: 120
verify_ssl: true
db_cache:
clean_bundles: false
empty_trash: true
optimize: true
tmdb:
apikey: xxx
language: fr-FR
region: FR
cache_expiration: 60
imdb:
cache_expiration: 30
mdblist:
apikey: xxx
cache_expiration: 60
fanart:
apikey: xxx
settings:
run_order:
- operations
- metadata
- overlays
- collections
asset_directory:
- /assets
overlay_artwork_filetype: jpg
overlay_artwork_quality: 100
show_unmanaged: true
show_unconfigured: true
show_missing: true
cache: true
cache_expiration: 60
asset_folders: true
asset_depth: 0
create_asset_folders: false
prioritize_assets: false
dimensional_asset_rename: false
download_url_assets: false
show_missing_assets: true
show_missing_season_assets: false
show_missing_episode_assets: false
show_asset_not_needed: true
sync_mode: append
default_collection_order:
minimum_items: 1
item_refresh_delay: 0
delete_below_minimum: false
delete_not_scheduled: false
run_again_delay: 0
missing_only_released: false
only_filter_missing: false
show_filtered: false
show_unfiltered: false
show_options: false
save_report: false
tvdb_language: default
ignore_ids:
ignore_imdb_ids:
playlist_sync_to_users:
playlist_exclude_users:
playlist_report: true
custom_repo:
libraries:
Films:
collection_files:
- default: streaming
template_variables:
region: FR
language: fr
sep_style: gray
visible_library_netflix: true
visible_library_amazon: true
visible_library_disney: true
visible_library_appletv: true
visible_library_paramount: true
visible_library_max: true
overlay_files:
- default: ratings
template_variables:
rating1: critic
rating1_image: imdb
rating2: audience
rating2_image: tmdb
rating3: user
rating3_image: imdb
- default: resolution
template_variables:
use_edition: false
- default: streaming
template_variables:
region: FR
operations:
assets_for_all: true
mass_audience_rating_update: tmdb
mass_user_rating_update: imdb
Séries TV:
collection_files:
- default: streaming
template_variables:
region: FR
language: fr
sep_style: gray
visible_library_netflix: true
visible_library_amazon: true
visible_library_disney: true
visible_library_appletv: true
visible_library_paramount: true
visible_library_max: true
overlay_files:
- default: ratings
template_variables:
builder_level: show
rating1: critic
rating1_image: imdb
rating2: audience
rating2_image: tmdb
rating3: user
rating3_image: imdb
- default: resolution
template_variables:
builder_level: show
use_edition: false
- default: streaming
template_variables:
region: FR
operations:
assets_for_all: true
mass_audience_rating_update: tmdb
mass_user_rating_update: imdb
collections_streaming.yml
collections:
"Netflix • Films & Séries":
tmdb_watch_provider: Netflix
tmdb_region: FR
summary: "Titres disponibles sur Netflix (France)."
sync_mode: sync
collection_order: alpha
visible_home: true
visible_shared: true
build_collection: true
url_poster: /assets/Streaming/Netflix/poster.jpg
"Prime Video • Films & Séries":
tmdb_watch_provider: Amazon Prime Video
tmdb_region: FR
summary: "Titres disponibles sur Amazon Prime Video (France)."
sync_mode: sync
collection_order: alpha
visible_home: true
visible_shared: true
build_collection: true
url_poster: /assets/Streaming/PrimeVideo/poster.jpg
"Disney+ • Films & Séries":
tmdb_watch_provider: Disney Plus
tmdb_region: FR
summary: "Titres disponibles sur Disney+ (France)."
sync_mode: sync
collection_order: alpha
visible_home: true
visible_shared: true
build_collection: true
url_poster: /assets/Streaming/DisneyPlus/poster.jpg
"Apple TV+ • Films & Séries":
tmdb_watch_provider: Apple TV+
tmdb_region: FR
summary: "Titres disponibles sur Apple TV+ (France)."
sync_mode: sync
collection_order: alpha
visible_home: true
visible_shared: true
build_collection: true
url_poster: /assets/Streaming/AppleTVPlus/poster.jpg
# (Optionnel) Réseaux pour séries — utile pour “Originals”
"Netflix • Séries (Network)":
tmdb_network: Netflix
summary: "Séries produites/diffusées par Netflix."
sync_mode: sync
collection_order: alpha
visible_home: false
visible_shared: true
url_poster: /assets/Networks/Netflix/poster.jpg
"Apple TV+ • Séries (Network)":
tmdb_network: Apple TV+
summary: "Séries Apple Originals."
sync_mode: sync
collection_order: alpha
visible_home: false
visible_shared: true
url_poster: /assets/Networks/AppleTVPlus/poster.jpg
overlays.yml
overlays:
ratings:
template: rating
default:
rating1: imdb
rating2: tmdb
position: top_right
font: Roboto-Bold
font_size: 62
operations:
delete_overlays: false
resolution:
template: resolution
default:
position: bottom_left
font: Roboto-Bold
font_size: 70
operations:
delete_overlays: false
streaming:
template: streaming
default:
position: bottom_right
region: FR
style: logo
allow_multiple: true
font: Roboto-Bold
font_size: 50
template_variables:
include:
- Netflix
- Amazon Prime Video
- Disney Plus
- Apple TV+
- Canal+
- Paramount+
- OCS
operations:
delete_overlays: false
Si après un test, vous voulez que Plex revienne par défaut, Kometa propose un outil de reset.

![]()
Covert Web-to-App Tracking via Localhost on Android
We disclose a novel tracking method by Meta and Yandex potentially affecting billions of Android users. We found that native Android apps—including Facebook, Instagram, and several Yandex apps including Maps and Browser—silently listen on fixed local ports for tracking purposes.
These native Android apps receive browsers' metadata, cookies and commands from the Meta Pixel and Yandex Metrica scripts embedded on thousands of web sites. These JavaScripts load on users' mobile browsers and silently connect with native apps running on the same device through localhost sockets. As native apps access programatically device identifiers like the Android Advertising ID (AAID) or handle user identities as in the case of Meta apps, this method effectively allows these organizations to link mobile browsing sessions and web cookies to user identities, hence de-anonymizing users' visiting sites embedding their scripts.
This web-to-app ID sharing method bypasses typical privacy protections such as clearing cookies, Incognito Mode and Android's permission controls. Worse, it opens the door for potentially malicious apps eavesdropping on users’ web activity.
— Permalien
Compatibilité multi-serveurs : fonctionne avec Plex, Emby et Jellyfin.
Navigation visuelle : prévisualisez les visuels dans une interface claire et organisée.
Mises à jour automatiques : enregistrez les ensembles d’images choisis et gardez-les synchronisés automatiquement.
Stockage local : possibilité d’enregistrer les images à côté de vos fichiers multimédias pour un accès facile.
Support Docker : déploiement simple avec Docker ou docker-compose.