CLI Node.js pour synchroniser vos playlists Spotify vers YouTube.
- Synchronisation unidirectionnelle Spotify → YouTube
- Authentification OAuth2 persistante (tokens sauvegardés)
- Recréation des playlists YouTube à chaque sync
- Gestion automatique des quotas API YouTube
- Node.js 18+
- Un compte Spotify
- Un compte Google/YouTube
- Une application Spotify Developer
- Un projet Google Cloud avec YouTube Data API v3
git clone https://github.com/VOTRE_USERNAME/spo2be.git
cd spo2be
npm install
cp .env.example .env- Aller sur Spotify Developer Dashboard
- Créer une nouvelle application
- Dans les paramètres, ajouter cette Redirect URI :
http://127.0.0.1:8888/callback/spotify - Copier le Client ID et Client Secret
- Aller sur Google Cloud Console
- Créer un nouveau projet
- Activer YouTube Data API v3 dans "APIs & Services"
- Créer des identifiants OAuth 2.0 :
- Type : Application de bureau
- Ajouter cette Redirect URI :
http://127.0.0.1:8888/callback/google
- Copier le Client ID et Client Secret
SPOTIFY_CLIENT_ID=votre_client_id_spotify
SPOTIFY_CLIENT_SECRET=votre_client_secret_spotify
GOOGLE_CLIENT_ID=votre_client_id_google
GOOGLE_CLIENT_SECRET=votre_client_secret_googleÉditer src/config.js :
playlists: [
{
spotifyName: 'Nom exact de la playlist Spotify',
youtubeName: 'Nom de la playlist YouTube',
youtubeDescription: 'Description de la playlist',
},
// Ajouter d'autres playlists ici...
],node src/index.js status# Spotify
node src/index.js auth spotify
# YouTube
node src/index.js auth youtubeLe navigateur s'ouvrira automatiquement pour l'autorisation OAuth. Les tokens sont sauvegardés dans data/tokens.json pour les prochaines utilisations.
node src/index.js syncOu avec npm :
npm run syncDepuis novembre 2024, Spotify a restreint l'accès API aux playlists algorithmiques ("Made for You") comme :
- Discover Weekly (Découvertes de la semaine)
- Release Radar (Radar des sorties)
- Daily Mix
- etc.
Ces playlists ne sont plus accessibles via l'API Spotify pour les applications sans "quota extension" approuvé par Spotify.
Solution de contournement : Créer manuellement une copie de ces playlists :
- Ouvrir la playlist algorithmique dans Spotify
- Sélectionner tous les morceaux (Ctrl+A / Cmd+A)
- Clic droit → "Ajouter à la playlist" → Créer une nouvelle playlist
- Utiliser le nom de cette playlist personnelle dans la config
L'API YouTube Data v3 a un quota de 10 000 unités par jour :
| Opération | Coût |
|---|---|
| Recherche vidéo | 100 unités |
| Création playlist | 50 unités |
| Ajout vidéo | 50 unités |
Une playlist de 30 morceaux consomme environ 4 500 unités.
Le quota est réinitialisé chaque jour à minuit heure du Pacifique (9h heure de Paris).
Si le quota est dépassé, l'application s'arrête proprement et affiche un message.
spo2be/
├── src/
│ ├── index.js # Point d'entrée CLI
│ ├── config.js # Configuration
│ ├── auth/
│ │ ├── spotify-auth.js
│ │ ├── youtube-auth.js
│ │ └── token-storage.js
│ ├── services/
│ │ ├── spotify-service.js
│ │ └── youtube-service.js
│ └── sync/
│ └── playlist-sync.js
├── data/
│ └── tokens.json # Tokens OAuth (généré)
├── .env # Variables d'environnement
└── package.json
MIT