- DB_PATH → data/arte_dl.db (mappé sur /mnt/user/appdata/arte-dl)
- mkdir data/ au démarrage dans downloader.py et arte_api.py
- asyncio.Lock sur get_all_concerts() : une seule scrape à la fois,
les requêtes concurrentes attendent le résultat au lieu de relancer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- tmdb.py : recherche TMDB par title+subtitle, matching fuzzy,
cache SQLite 30 jours (table tmdb_cache dans arte_dl.db)
- arte_api.py : enrichissement concurrent (5 workers) après résolution
des IDs ; ajoute tmdb_id, tmdb_poster, tmdb_backdrop au concert
- app.js : backdrop TMDB utilisé comme thumbnail de carte quand dispo ;
subtitle affiché sous le titre de carte ; poster dans la modal ;
lien direct vers la fiche TMDB
- docker-compose.yml : passage de TMDB_API_KEY au container
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>