Files
musicland/youtube.md
T
2025-11-04 11:30:17 +01:00

78 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Publication YouTube guide refresh token
## 1. Récupérer un code d'autorisation
### 1.1 Trouver ou créer le Client ID
1. Ouvre la console Google Cloud : <https://console.cloud.google.com/apis/credentials>
2. Sélectionne le projet lié au compte YouTube.
3. Dans longlet « Identifiants », repère lID client OAuth 2.0 existant au format :
```
123456789012-abcdefghijklmnopqrstu.apps.googleusercontent.com
```
Copie-le : cest `YOUR_CLIENT_ID`.
4. Sil nexiste pas encore, clique sur « Créer des identifiants » → « ID client OAuth » → type « Application Web » et ajoute `http://localhost:8081` dans les URIs de redirection autorisées. Enregistre, puis note lID client et le secret.
### 1.2 Générer un code d'autorisation
1. Ouvre cette URL dans un navigateur (mets à jour `redirect_uri` si besoin) :
```
https://accounts.google.com/o/oauth2/v2/auth?client_id=YOUR_CLIENT_ID.apps.googleusercontent.com&redirect_uri=http://localhost:8081&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyoutube.upload&access_type=offline&prompt=consent
```
2. Connecte-toi au compte YouTube cible et accepte les permissions.
3. Google te redirige vers `http://localhost:8081/?code=...`. Copie la valeur du paramètre `code`.
## 2. Échanger le code contre un refresh token
```bash
curl -X POST https://oauth2.googleapis.com/token \
-d client_id=YOUR_CLIENT_ID.apps.googleusercontent.com \
-d client_secret=YOUR_CLIENT_SECRET \
-d code="CODE_RECU" \
-d grant_type=authorization_code \
-d redirect_uri=http://localhost:8081
```
La réponse JSON contient :
- `access_token` (jeton court terme),
- `refresh_token` (à conserver),
- `expires_in`, `scope`, `token_type`.
⚠️ Le `refresh_token` nest renvoyé quune seule fois avec `access_type=offline`. Garde-le de manière sécurisée.
## 3. Mettre à jour les variables d'environnement Firebase
1. Enregistre les secrets côté Firebase (adapter le projet via `-P` si besoin) :
```bash
firebase functions:config:set \
YOUTUBE_CLIENT_ID="YOUR_CLIENT_ID.apps.googleusercontent.com" \
YOUTUBE_CLIENT_SECRET="YOUR_CLIENT_SECRET" \
YOUTUBE_REFRESH_TOKEN="YOUR_REFRESH_TOKEN"
YOUTUBE_REDIRECT_URI="http://localhost:8081" \
YOUTUBE_PRIVACY_STATUS="public" \
YOUTUBE_CATEGORY_ID="10" # 10 = Catégorie youtube de musique
```
2. Vérifie ce qui est stocké :
```bash
firebase functions:config:get
```
3. Redéploie la fonction :
```bash
firebase deploy --only functions:youtube
```
## 4. Exemple de réponse OAuth
```
http://localhost:8081/?code=4/0Ab32j90LMDeJDShWSk1OkXwgbjrHS-qQpyYTlXhH9q3nlV0EJa6cTL-7nI9yOKHoz6rgRA&scope=https://www.googleapis.com/auth/youtube.upload
{
"access_token": "ya29.a0ATi6K2uR4DhnmTDl0EN2tvDogwwEwl8SDJLpUzvnZ8LGgOYjgmhqg7MoMM0_iTJR_NBEDPe2LlJDqCFFnIi9s3qRv_zfw_NeTnN-LwUmAyVJkdqSP6GvzQCuZkE6OBuTvaU5b2obk5rHvDOkWXxAb7xjbVTzIBIg8O5VVhJ-VB8VEbTVsSq9bc0ljkbcyBEzm4JdQRwaCgYKAcgSAQ8SFQHGX2MiR1Owf2aiiEBUsU-LDUDgWg0206",
"expires_in": 3599,
"refresh_token": "1//03sy-LDVmCMcFCgYIARAAGAMSNwF-L9IrHwwdBBZvg3Hwun9hxHUx_AsJaa1qeozmtvGtdOXKIRIyKjTp7S_b0igvzM_1A5bLH34",
"scope": "https://www.googleapis.com/auth/youtube.upload",
"token_type": "Bearer"
}
```