Ce projet vise à créer un moteur de recherche spécialisé pour analyser l'évolution des hits sur Spotify. L'objectif est de visualiser les tendances des hits en france , USA et globale
- Collecter les données des playlists Top 50 de Spotify.
- Stocker les données traitées dans Elasticsearch.
- Visualiser les tendances musicales avec Kibana.
- Analyser les données pour extraire des insights pertinents sur la popularité des morceaux et des artistes.
- Développer une application Flask pour rechercher et visualiser les données.
- 🎧 Spotify API : Pour récupérer les données musicales.
- 🐍 Python : Pour le scraping des données et l'interaction avec l'API Spotify.
- 🔍 Elasticsearch : Pour le stockage et la recherche des données.
- 📊 Kibana : Pour la visualisation des données.
- 🐳 Docker : Pour la gestion des conteneurs Elasticsearch et Kibana.
- 🌐 Flask : Pour développer l'application web de recherche.
- Python 3.x
- Docker et Docker Compose installés sur votre système.
Clonez ce répertoire sur votre machine locale :
git clone https://github.com/votre-nom-utilisateur/spotify-top50-analyzer.git
cd spotify-top50-analyzer
- Créez un compte développeur sur Spotify Developer Dashboard.
- Créez une nouvelle application pour obtenir votre Client ID et Client Secret.
- Modifiez le fichier
spotify_client.py
pour inclure vos identifiants :
CLIENT_ID = 'votre_client_id'
CLIENT_SECRET = 'votre_client_secret'
Installez les bibliothèques nécessaires avec pip :
pip install spotipy elasticsearch flask
- Créez un fichier
docker-compose.yml
avec le contenu fourni ci-dessous :
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.4.3
container_name: elasticsearch
environment:
- node.name=es01
- cluster.name=es-docker-cluster
- discovery.type=single-node
- ELASTIC_PASSWORD=changeme
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata1:/usr/share/elasticsearch/data
networks:
- elk
kibana:
image: docker.elastic.co/kibana/kibana:8.4.3
container_name: kibana
environment:
- ELASTIC_PASSWORD=changeme
ports:
- "5601:5601"
networks:
- elk
volumes:
esdata1:
driver: local
networks:
elk:
driver: bridge
- Démarrez les services avec Docker Compose :
docker-compose up -d
Vérifiez que les services Elasticsearch (port 9200) et Kibana (port 5601) sont en cours d'exécution.
- Lancez l'application Flask pour démarrer le moteur de recherche :
python app.py
- Accédez à l'application via
http://localhost:5000
.
- Exécutez le script Python pour récupérer les données des playlists Top 50 de Spotify :
python spotify_client.py
- Les données seront automatiquement indexées dans Elasticsearch.
- Accédez à l'application Flask pour effectuer des recherches sur les chansons, artistes, et albums.
- Visualisez les tendances musicales à l'aide du tableau de bord Kibana via
http://localhost:5601
.
Les contributions sont les bienvenues ! Veuillez soumettre une pull request ou ouvrir une issue si vous souhaitez proposer des améliorations ou signaler des problèmes.
Ce projet est sous la licence de Helicia TSIKA.