Skip to content

CLI Node.js pour synchroniser vos playlists Spotify vers YouTube

Notifications You must be signed in to change notification settings

baptistefetet/spo2be

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spo2be

CLI Node.js pour synchroniser vos playlists Spotify vers YouTube.

Fonctionnalités

  • Synchronisation unidirectionnelle Spotify → YouTube
  • Authentification OAuth2 persistante (tokens sauvegardés)
  • Recréation des playlists YouTube à chaque sync
  • Gestion automatique des quotas API YouTube

Prérequis

  • Node.js 18+
  • Un compte Spotify
  • Un compte Google/YouTube
  • Une application Spotify Developer
  • Un projet Google Cloud avec YouTube Data API v3

Installation

git clone https://github.com/VOTRE_USERNAME/spo2be.git
cd spo2be
npm install
cp .env.example .env

Configuration

1. Créer une application Spotify

  1. Aller sur Spotify Developer Dashboard
  2. Créer une nouvelle application
  3. Dans les paramètres, ajouter cette Redirect URI :
    http://127.0.0.1:8888/callback/spotify
    
  4. Copier le Client ID et Client Secret

2. Créer un projet Google Cloud

  1. Aller sur Google Cloud Console
  2. Créer un nouveau projet
  3. Activer YouTube Data API v3 dans "APIs & Services"
  4. Créer des identifiants OAuth 2.0 :
    • Type : Application de bureau
    • Ajouter cette Redirect URI :
      http://127.0.0.1:8888/callback/google
      
  5. Copier le Client ID et Client Secret

3. Configurer le fichier .env

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

4. Configurer les playlists à synchroniser

É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...
],

Utilisation

Vérifier le statut des authentifications

node src/index.js status

S'authentifier

# Spotify
node src/index.js auth spotify

# YouTube
node src/index.js auth youtube

Le navigateur s'ouvrira automatiquement pour l'autorisation OAuth. Les tokens sont sauvegardés dans data/tokens.json pour les prochaines utilisations.

Lancer la synchronisation

node src/index.js sync

Ou avec npm :

npm run sync

Limitations connues

Playlists algorithmiques Spotify (Discover Weekly, Release Radar)

Depuis 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 :

  1. Ouvrir la playlist algorithmique dans Spotify
  2. Sélectionner tous les morceaux (Ctrl+A / Cmd+A)
  3. Clic droit → "Ajouter à la playlist" → Créer une nouvelle playlist
  4. Utiliser le nom de cette playlist personnelle dans la config

Quota YouTube API

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.

Structure du projet

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

Licence

MIT

About

CLI Node.js pour synchroniser vos playlists Spotify vers YouTube

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •