feat(oauth): import favoris/abos Google (YouTube) et Twitch vers abonnements/likes
- Backend: server/oauth.mjs (auth URL, echange code, refresh, fetch
subscriptions/likes Google, follows Twitch), table oauth_connections
+ migration, routes /api/oauth/:provider/{url,callback,preview,import},
/api/oauth/{status,connections}
- Front: /library/import (connect, preview, import), service
oauth-import, lien depuis Abonnements
- Config: GOOGLE_CLIENT_ID/SECRET/REDIRECT_URI, TWITCH_REDIRECT_URI,
OAUTH_APP_BASE_URL documentes (.env.example, docker-compose),
passthrough docker-compose.local.yml, roadmap README cochee
This commit is contained in:
@@ -11,6 +11,15 @@ 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
|
||||
|
||||
# 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
|
||||
|
||||
@@ -25,6 +25,12 @@ services:
|
||||
- VIMEO_ACCESS_TOKEN=${VIMEO_ACCESS_TOKEN}
|
||||
- TWITCH_CLIENT_ID=${TWITCH_CLIENT_ID}
|
||||
- TWITCH_CLIENT_SECRET=${TWITCH_CLIENT_SECRET}
|
||||
- TWITCH_REDIRECT_URI=${TWITCH_REDIRECT_URI}
|
||||
- GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID}
|
||||
- GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}
|
||||
- GOOGLE_REDIRECT_URI=${GOOGLE_REDIRECT_URI}
|
||||
- OAUTH_APP_BASE_URL=${OAUTH_APP_BASE_URL:-http://localhost:4200}
|
||||
- HOST_PORT=${HOST_PORT:-4200}
|
||||
- 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 ---
|
||||
|
||||
Reference in New Issue
Block a user