Light theme default + yt-dlp search fallback
This commit is contained in:
@@ -0,0 +1,143 @@
|
||||
# Google OAuth + abonnements YouTube
|
||||
|
||||
Cette étape permet de connecter un compte Google et de charger les
|
||||
abonnements YouTube dans l'onglet **Abonnements**.
|
||||
|
||||
L'application utilise uniquement le scope :
|
||||
|
||||
`https://www.googleapis.com/auth/youtube.readonly`
|
||||
|
||||
Aucun mot de passe Google n'est demandé ou stocké par l'application.
|
||||
|
||||
---
|
||||
|
||||
## 1. Créer le projet Google Cloud
|
||||
|
||||
Dans Google Cloud Console :
|
||||
|
||||
1. crée ou sélectionne un projet ;
|
||||
2. ouvre **APIs & Services > Library** ;
|
||||
3. active **YouTube Data API v3** ;
|
||||
4. configure l'écran de consentement OAuth ;
|
||||
5. si l'application est encore en mode **Testing**, ajoute ton propre
|
||||
compte Google dans **Test users**.
|
||||
|
||||
---
|
||||
|
||||
## 2. Android
|
||||
|
||||
Package Android :
|
||||
|
||||
`com.studioweb.youtube_personal`
|
||||
|
||||
### Trouver le SHA-1 debug
|
||||
|
||||
Dans PowerShell :
|
||||
|
||||
```powershell
|
||||
cd "D:\07-Logiciels\23-youtube_personal\android"
|
||||
.\gradlew signingReport
|
||||
```
|
||||
|
||||
Cherche :
|
||||
|
||||
```text
|
||||
Variant: debug
|
||||
SHA1: ...
|
||||
```
|
||||
|
||||
### Créer les identifiants
|
||||
|
||||
Dans **Google Cloud > APIs & Services > Credentials** :
|
||||
|
||||
1. crée un **OAuth client ID > Android** ;
|
||||
2. Package name :
|
||||
`com.studioweb.youtube_personal`
|
||||
3. SHA-1 :
|
||||
colle le SHA-1 obtenu avec `signingReport`.
|
||||
|
||||
Ensuite crée aussi :
|
||||
|
||||
**OAuth client ID > Web application**
|
||||
|
||||
Copie le Client ID qui se termine normalement par :
|
||||
|
||||
`apps.googleusercontent.com`
|
||||
|
||||
### Dans YouTube Personal
|
||||
|
||||
1. ouvre **Abonnements** ;
|
||||
2. clique **Configurer** ;
|
||||
3. colle le **Client ID Web** ;
|
||||
4. clique **Enregistrer** ;
|
||||
5. clique **Se connecter avec Google**.
|
||||
|
||||
Le Client ID du client Android n'est pas collé dans l'application.
|
||||
Il sert à autoriser le package + la signature APK côté Google.
|
||||
|
||||
---
|
||||
|
||||
## 3. Windows
|
||||
|
||||
Dans **Credentials** crée :
|
||||
|
||||
**OAuth client ID > Desktop app**
|
||||
|
||||
Dans YouTube Personal :
|
||||
|
||||
1. ouvre **Abonnements** ;
|
||||
2. clique **Configurer** ;
|
||||
3. colle le **Client ID Desktop** ;
|
||||
4. colle le Client Secret si Google en fournit un ;
|
||||
5. enregistre ;
|
||||
6. clique **Se connecter avec Google**.
|
||||
|
||||
Le navigateur système s'ouvre. Après autorisation, Google revient sur
|
||||
une adresse temporaire locale `127.0.0.1`. Aucun serveur externe n'est
|
||||
nécessaire.
|
||||
|
||||
---
|
||||
|
||||
## 4. Si Google affiche une erreur
|
||||
|
||||
### Android : erreur de configuration / annulation après choix du compte
|
||||
|
||||
Vérifie en priorité :
|
||||
|
||||
- package exact : `com.studioweb.youtube_personal`
|
||||
- SHA-1 debug correct
|
||||
- client OAuth Android créé dans le même projet
|
||||
- Client ID Web correct dans l'application
|
||||
- ton compte présent dans **Test users** si l'écran OAuth est en Testing
|
||||
|
||||
### Erreur YouTube 403
|
||||
|
||||
Vérifie que **YouTube Data API v3** est activée dans le même projet.
|
||||
|
||||
### Windows : redirect_uri_mismatch
|
||||
|
||||
Utilise bien un client OAuth de type **Desktop app** et non Web
|
||||
application.
|
||||
|
||||
---
|
||||
|
||||
## 5. Alternative avec dart-define
|
||||
|
||||
Les anciens paramètres restent compatibles :
|
||||
|
||||
### Android
|
||||
|
||||
```powershell
|
||||
flutter run -d f10778d8 `
|
||||
--dart-define=GOOGLE_WEB_CLIENT_ID="TON_CLIENT_ID_WEB.apps.googleusercontent.com"
|
||||
```
|
||||
|
||||
### Windows
|
||||
|
||||
```powershell
|
||||
flutter run -d windows `
|
||||
--dart-define=GOOGLE_DESKTOP_CLIENT_ID="TON_CLIENT_ID_DESKTOP.apps.googleusercontent.com" `
|
||||
--dart-define=GOOGLE_DESKTOP_CLIENT_SECRET="TON_CLIENT_SECRET"
|
||||
```
|
||||
|
||||
Les valeurs `dart-define` ont priorité sur celles enregistrées dans l'app.
|
||||
Reference in New Issue
Block a user