feat(preferences): section langues a telecharger (defaut fr+en), transcripts filtres cote serveur et watch
CI / build-and-test (push) Successful in 13m50s

This commit is contained in:
2026-09-26 11:49:56 -04:00
parent 1b0a7eb3ce
commit 655061ba2c
46 changed files with 2018 additions and 380 deletions
+12
View File
@@ -17,3 +17,15 @@ NODE_ENV=production
TZ=America/Montreal
DOWNLOAD_PROVIDERS=youtube,dailymotion,twitch,peertube,odysee,rumble
DOWNLOAD_MAX_CONCURRENT=2
# --- YouTube hybride (Steps 17-18) ---
YT_SEARCH_MODE=innertube-first
YT_SCRAPE_TTL_MS=1800000
YT_DLP_TIMEOUT_MS=20000
YT_INNERTUBE_GL=FR
YT_INNERTUBE_HL=fr
YT_TRANSCRIPT_SOURCE=innertube-first
YT_RELATED_TTL_MS=3600000
# Anti-ban optionnel (laisser vide si non utilisé)
# YT_COOKIES_FILE=/cookies/youtube.txt
# YT_PO_TOKEN=
# YT_EGRESS_PROXY=
+9
View File
@@ -15,6 +15,15 @@ TWITCH_CLIENT_SECRET=votre_client_secret_twitch_ici
# Configuration du cache (en millisecondes)
YT_CACHE_TTL_MS=3600000 # 1 heure par défaut
# --- YouTube hybride (Steps 17-18) ---
YT_SEARCH_MODE=innertube-first
YT_SCRAPE_TTL_MS=1800000
YT_DLP_TIMEOUT_MS=20000
YT_INNERTUBE_GL=FR
YT_INNERTUBE_HL=fr
YT_TRANSCRIPT_SOURCE=innertube-first
YT_RELATED_TTL_MS=3600000
# --- YouTube hybride : InnerTube (sans clé) > scrape yt-dlp > API officielle ---
# Mode : innertube-first (défaut, 0 quota, pagination illimitée) | innertube-only
# | scrape-first | api-first | scrape-only | api-only
+11
View File
@@ -27,6 +27,17 @@ services:
- TWITCH_CLIENT_SECRET=${TWITCH_CLIENT_SECRET}
- DOWNLOAD_PROVIDERS=${DOWNLOAD_PROVIDERS:-youtube,dailymotion,twitch,peertube,odysee,rumble}
- DOWNLOAD_MAX_CONCURRENT=${DOWNLOAD_MAX_CONCURRENT:-2}
# --- YouTube hybride (Steps 17-18) : innertube > scrape yt-dlp > API ---
- YT_SEARCH_MODE=${YT_SEARCH_MODE:-innertube-first}
- YT_SCRAPE_TTL_MS=${YT_SCRAPE_TTL_MS:-1800000}
- YT_DLP_TIMEOUT_MS=${YT_DLP_TIMEOUT_MS:-20000}
- YT_INNERTUBE_GL=${YT_INNERTUBE_GL:-FR}
- YT_INNERTUBE_HL=${YT_INNERTUBE_HL:-fr}
- YT_TRANSCRIPT_SOURCE=${YT_TRANSCRIPT_SOURCE:-innertube-first}
- YT_RELATED_TTL_MS=${YT_RELATED_TTL_MS:-3600000}
- YT_COOKIES_FILE=${YT_COOKIES_FILE:-}
- YT_PO_TOKEN=${YT_PO_TOKEN:-}
- YT_EGRESS_PROXY=${YT_EGRESS_PROXY:-}
- TZ=${TZ:-America/Montreal}
volumes:
# SQLite : volume nommé (locking FS bind monté Windows peu fiable)
+11
View File
@@ -21,6 +21,17 @@ services:
- TWITCH_CLIENT_SECRET=${TWITCH_CLIENT_SECRET}
- DOWNLOAD_PROVIDERS=${DOWNLOAD_PROVIDERS:-youtube,dailymotion,twitch,peertube,odysee,rumble}
- DOWNLOAD_MAX_CONCURRENT=${DOWNLOAD_MAX_CONCURRENT:-2}
# --- YouTube hybride (Steps 17-18) ---
- YT_SEARCH_MODE=${YT_SEARCH_MODE:-innertube-first}
- YT_SCRAPE_TTL_MS=${YT_SCRAPE_TTL_MS:-1800000}
- YT_DLP_TIMEOUT_MS=${YT_DLP_TIMEOUT_MS:-20000}
- YT_INNERTUBE_GL=${YT_INNERTUBE_GL:-FR}
- YT_INNERTUBE_HL=${YT_INNERTUBE_HL:-fr}
- YT_TRANSCRIPT_SOURCE=${YT_TRANSCRIPT_SOURCE:-innertube-first}
- YT_RELATED_TTL_MS=${YT_RELATED_TTL_MS:-3600000}
- YT_COOKIES_FILE=${YT_COOKIES_FILE:-}
- YT_PO_TOKEN=${YT_PO_TOKEN:-}
- YT_EGRESS_PROXY=${YT_EGRESS_PROXY:-}
- TZ=${TZ}
volumes:
- ${DIR_NEWTUBE}/assets:/app/assets