Une application web PHP qui permet de visualiser votre profil Spotify, rechercher de la musique et gérer vos artistes suivis, avec un design inspiré de Deezer.
- Connexion sécurisée via l'API Spotify OAuth 2.0
- Gestion automatique des tokens d'accès
- Déconnexion avec nettoyage des sessions
- Affichage des informations du profil (nom, email, pays)
- Photo de profil
- Statistiques (nombre d'abonnés)
- Design avec cards élégantes
- Recherche d'artistes et de pistes en temps réel
- Interface de recherche intuitive
- Affichage des résultats avec images et métadonnées
- Barres de popularité visuelles
- Player Spotify intégré en bas de page
- Lecture directe des pistes depuis les résultats de recherche
- Interface fixe et responsive
- Visualisation des artistes suivis
- Boutons Follow/Unfollow pour chaque artiste
- Mise à jour en temps réel du statut de suivi
- Conservation de la recherche après les actions
- Palette de couleurs : Gradient multicolore caractéristique
- Thème sombre : Fond noir/gris pour les yeux
- Cards flottantes : Effets d'ombre et transparence
- Animations fluides : Transitions et effets hover
- Responsive design : Adaptatif mobile/desktop
- Gradient header avec effet overlay
- Cards avec corners arrondis et backdrop-filter
- Barres de progression pour la popularité
- Tags colorés pour les genres musicaux
- Boutons avec effets de glow
- PHP 7.4 ou supérieur
- Extension cURL activée
- Compte Spotify Developer
- Allez sur Spotify Developer Dashboard
- Créez une nouvelle application
- Notez votre
Client IDetClient Secret - Ajoutez
http://127.0.0.1:3333/callback.phpdans les Redirect URIs
- Clonez ou téléchargez le projet
- Éditez
spotify.php:const CLIENT_ID = "votre_client_id";
- Lancez le serveur PHP :
php -S 127.0.0.1:3333
- Ouvrez
http://127.0.0.1:3333dans votre navigateur
api-test/
├── index.php # Page principale
├── spotify.php # Gestion OAuth et tokens
├── callback.php # Callback OAuth Spotify
├── function.php # Fonctions API Spotify
├── style.css # Styles Deezer
└── README.md # Documentation
- Interface utilisateur principale
- Gestion des formulaires (recherche, follow/unfollow)
- Affichage des données Spotify
- Player intégré
- Authentification OAuth 2.0
- Gestion des tokens d'accès
- Redirection vers l'API Spotify
- Durée de vie des cookies adaptée aux tokens
fetchFollowedArtists(): Récupère les artistes suivisSearchByString(): Recherche dans l'API SpotifyfollowArtist()/unfollowArtist(): Gestion du suiviisFollowingArtist(): Vérification du statut de suivi
- Variables CSS pour le thème Deezer
- Composants réutilisables (cards, boutons, grids)
- Animations et transitions
- Media queries pour le responsive
- Cliquez sur "Se connecter à Spotify"
- Autorisez l'application dans Spotify
- Vous êtes redirigé vers votre profil
- Utilisez le formulaire de recherche
- Tapez le nom d'un artiste ou d'une chanson
- Cliquez sur "Rechercher"
- Parcourez les résultats
- Dans les résultats de recherche
- Cliquez sur le titre d'une piste
- Elle se charge dans le player en bas
- Recherchez un artiste
- Cliquez sur "➕ Suivre" ou "❌ Ne plus suivre"
- Vos artistes suivis apparaissent dans la section dédiée
- Utilisation d'OAuth 2.0 avec PKCE
- Tokens stockés dans des cookies sécurisés
- Expiration automatique des sessions
- Protection CSRF avec tokens cachés
- Échappement des données utilisateur
/v1/me: Profil utilisateur/v1/me/following: Artistes suivis/v1/search: Recherche de contenu/v1/me/following/contains: Vérification de suivi/v1/me/following(PUT/DELETE) : Gestion du suivi
user-read-private: Lecture du profiluser-read-email: Accès à l'emailuser-follow-read: Lecture des artistes suivisuser-follow-modify: Modification du suivi d'artistes
- Reconnectez-vous via "Se connecter à Spotify"
- Les tokens ont une durée de vie limitée (1 heure par défaut)
- Vérifiez votre connexion internet
- Assurez-vous d'être connecté à Spotify
- Vérifiez que JavaScript est activé
- Certains bloqueurs de publicité peuvent interférer
L'interface s'adapte automatiquement :
- Desktop : Layout en grille avec sidebar
- Tablet : Grille adaptative
- Mobile : Layout empilé, boutons pleine largeur
Modifiez les variables CSS dans style.css :
:root {
--deezer-accent: #ff6b35;
--deezer-secondary: #00d4ff;
/* ... */
}Ajustez les tailles de grille :
.artists-grid {
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}- Forkez le projet
- Créez une branche feature
- Committez vos changements
- Pushez vers la branche
- Ouvrez une Pull Request
Ce projet est libre d'utilisation pour des fins personnelles et éducatives.
Enjoy your music! 🎧