# Fichier d'exemple pour les variables d'environnement # Copiez ce fichier en .env et remplissez les valeurs # Configuration du serveur NGINX NGINX_HOSTNAME=localhost # Clés API pour les différents services GEMINI_API_KEY=votre_cle_gemini_ici YOUTUBE_API_KEY=votre_cle_youtube_ici YOUTUBE_API_KEYS=votre_cle_youtube_ici,deuxieme_cle_youtube_ici VIMEO_ACCESS_TOKEN=votre_token_vimeo_ici TWITCH_CLIENT_ID=votre_client_id_twitch_ici TWITCH_CLIENT_SECRET=votre_client_secret_twitch_ici # TWITCH_REDIRECT_URI=http://localhost:4200/api/oauth/twitch/callback # --- API ouverte aux clients tiers (P0/P1 production-ready) --- # Origines autorisées en CORS (CSV) : ajouter l'URL publique de l'app pour des # clients navigateur tiers ; les clients curl/script ne sont pas concernés. # API_ALLOWED_ORIGINS=http://localhost:4200,http://localhost:4000,http://localhost:3000 # Si défini, /metrics exige Authorization: Bearer (ou ?token=) # METRICS_TOKEN= # Appels /api/details par minute (yt-dlp, défaut 60) # DETAILS_RATE_LIMIT=60 # Google OAuth (import abonnements + favoris YouTube, lecture seule) # GOOGLE_CLIENT_ID=votre_client_id_google_ici # GOOGLE_CLIENT_SECRET=votre_client_secret_google_ici # GOOGLE_REDIRECT_URI=http://localhost:4200/api/oauth/google/callback # Base publique pour les callbacks OAuth en Docker (UI hôte :4200, API :4000) # OAUTH_APP_BASE_URL=http://localhost:4200 # 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 YT_SEARCH_MODE=innertube-first YT_INNERTUBE_GL=FR YT_INNERTUBE_HL=fr # Sous-titres YouTube : innertube-first (défaut) | ytdlp-only | innertube-only YT_TRANSCRIPT_SOURCE=innertube-first # Cache scrape/pagination (30 min) + timeout yt-dlp YT_SCRAPE_TTL_MS=1800000 YT_DLP_TIMEOUT_MS=20000 # Anti-ban (optionnel) : binaire explicite, cookies exportés, PO-Token, proxy sortant # YT_DLP_PATH=/usr/local/bin/yt-dlp # YT_COOKIES_FILE=/cookies/youtube.txt # YT_PO_TOKEN= # YT_EGRESS_PROXY=http://proxy:8080 # Téléchargements : providers autorisés (liste CSV) + concurrence max par user DOWNLOAD_PROVIDERS=youtube,dailymotion,twitch,peertube,odysee,rumble DOWNLOAD_MAX_CONCURRENT=2 # Configuration du menu (optionnel) # BASE_MENU_CONFIG_ASSETS=assets/configuration.yml