Query Arte Player API before each download to determine available stream
versions. Select lang tag (VOSTFR > VO, FRENCH if audio is fr). Embed
French subtitles as default MKV track when VOSTFR. All output now .mkv.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
asyncio.Queue dans DownloadManager + worker unique démarré dans le lifespan.
Les téléchargements s'exécutent un par un dans l'ordre d'arrivée.
Suppression de BackgroundTasks (plus nécessaire).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 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>
- Bouton ⬇ sur chaque pill de catégorie pour activer/désactiver l'auto-DL
- Souscriptions sauvegardées en SQLite (table auto_dl_categories)
- Boucle background toutes les AUTO_DL_INTERVAL secondes (défaut 1h)
- Déduplication via already_enqueued() (évite re-queue si déjà queued/done)
- POST /api/auto-dl/check pour déclencher un check immédiat
- GET/POST/DELETE /api/auto-dl/{category} pour gérer les souscriptions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Format : Title.Event.Year.FRENCH.Resolution.WEBRip.x264|HEVC.AAC-ReMoRa.mp4
- build_release_name() : slugify avec strip accents, apostrophe→point,
déduplique l'année si présente dans le titre ET passée séparément,
détecte la résolution et le codec depuis les infos yt-dlp
- enqueue() : reçoit subtitle + year depuis l'API
- _run() : renomme le fichier après download, met à jour le filename en DB
- DownloadRequest : subtitle + year ajoutés
- app.js : extrait l'année du subtitle via regex avant d'envoyer la requête
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Format yt-dlp corrigé : Arte sert l'audio en mp4 pas m4a, l'ancien
sélecteur échouait immédiatement avec ExtractorError
- Progression basée sur downloaded_bytes/total_bytes_estimate (plus
fiable pour HLS que _percent_str)
- finished_once : empêche le flux audio de remettre la progression à 0%
après que le flux vidéo soit terminé
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>