iArt.ai
AI 모션 그래픽 소프트웨어, 누구나 사용할 수 있는 After Effects 대안, 텍스트 프롬프트로 몇 분 안에 애니메이션·설명 영상 제작
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
infoConcert.lu est un agrégateur de concerts au Luxembourg. Le projet collecte automatiquement les événements musicaux publiés par les principales salles du Luxembourg et les restitue dans une interface web simple, moderne et multilingue. Le projet se compose de deux parties indépendantes :README 전문 보기 ↗
infoConcert.lu est un agrégateur de concerts au Luxembourg. Le projet collecte automatiquement les événements musicaux publiés par les principales salles du Luxembourg et les restitue dans une interface web simple, moderne et multilingue.
Le projet se compose de deux parties indépendantes :
Backend Python : des scrapers interrogent les APIs REST et les pages HTML des salles pour extraire les informations de chaque concert (artiste, date, salle, prix, statut de billetterie, genres musicaux, image). Les données des sources sont ensuite fusionnées, dédupliquées et enrichies avec les identifiants de pistes Deezer pour permettre la lecture d'extraits audio.
Frontend Web : une page HTML/CSS/JS sans framework charge le fichier JSON produit par les scrapers et propose une expérience de navigation complète : filtres par mois, genre et salle, recherche d'artiste en temps réel, lecteur audio intégré, notifications de nouveaux concerts, et support FR / EN / DE.
infoconcert.lu/
├── python/ # Scripts de scraping et de traitement
│ ├── scrape_atelier_concerts.py # Scraper Atelier.lu
│ ├── scrape_rockhal_concerts.py # Scraper Rockhal.lu
│ ├── scrape_casino2000_concerts.py # Scraper Casino 2000
│ ├── scrape_kulturfabrik_concerts.py # Scraper Kulturfabrik
│ ├── scrape_philharmonie_concerts.py # Scraper Philharmonie Luxembourg
│ ├── scrape_echo_lu_concerts.py # 9 centres culturels (API Firestore)
│ ├── scrape_entrepot_concerts.py # Scraper L'Entrepôt Arlon (BE)
│ ├── scrape_arche_villerupt_concerts.py # Scraper L'Arche Villerupt (FR)
│ ├── scrape_citemusicale_metz_concerts.py # Scraper Cité Musicale Metz (FR)
│ ├── scrape_galaxie_amneville_concerts.py # Scraper Galaxie Amnéville (FR)
│ ├── scrape_mergener_hof_trier_concerts.py # Scraper Mergener Hof Trier (DE)
│ ├── scrape_forum_trier_concerts.py # Scraper Forum Trier (DE)
│ ├── scrape_gueulard_nilvange_concerts.py # Scraper Le Gueulard Nilvange (FR)
│ ├── scrape_lenox_concerts.py # Scraper Lenox Club Luxembourg
│ ├── merge.py # Fusion + enrichissement Deezer
│ ├── purgelog.py # Nettoyage des fichiers de log
│ ├── requirements.txt # Dépendances Python
│ ├── install.sh # Script d'installation
│ ├── JSON/ # Sorties JSON des scrapers
│ ├── CSV/ # Sorties CSV des scrapers
│ ├── OUT/ # Fichiers fusionnés (json ou csv)
│ └── Log/ # Fichiers de log
└── Web/ # Interface web
│ ├── index.html # Page principale
│ ├── contact.html # Page Contact
│ ├── legalnotice.html # Page légale pour un site Web
│ ├── venues.html # Page des salles de concert au Luxembourg
│ ├── image/ # Images necessaires au site (Logo + Location)
│ ├── IN/ # Fichier fusionné utilisé (concerts.json)
bash (Linux, macOS, ou WSL sous Windows)git clone https://github.com/jlp352/infoconcert.lu.git
cd infoconcert.lu
cd python
chmod +x install.sh
./install.sh
Le script effectue automatiquement :
.venvrequests)JSON/, CSV/, Log/, OUT/)source .venv/bin/activate
# Atelier.lu
python scrape_atelier_concerts.py
# Rockhal.lu
python scrape_rockhal_concerts.py
# Casino 2000
python scrape_casino2000_concerts.py
# Kulturfabrik
python scrape_kulturfabrik_concerts.py
# Philharmonie Luxembourg
python scrape_philharmonie_concerts.py
# 9 centres culturels via Portail echo.lu
# Aalt Stadhaus Differdange
# Cube 521 Marnach
# CAPE Ettelbruck
# Kinneksbond Mamer
# Mierscher Theater Mersch
# opderschmelz Dudelange
# Artikuss Soleuvre
# Prabbeli Wiltz
# Maacher Grevenmacher
python scrape_echo_lu_concerts.py
# L'Entrepôt Arlon (Belgique)
python scrape_entrepot_concerts.py
# L'Arche Villerupt (France)
python scrape_arche_villerupt_concerts.py
# Cité Musicale Metz (France)
python scrape_citemusicale_metz_concerts.py
# Galaxie Amnéville (France)
python scrape_galaxie_amneville_concerts.py
# Mergener Hof Trier (Allemagne)
python scrape_mergener_hof_trier_concerts.py
# Forum Trier (Allemagne)
python scrape_forum_trier_concerts.py
# Le Gueulard Nilvange (France)
python scrape_gueulard_nilvange_concerts.py
# Lenox Club Luxembourg
python scrape_lenox_concerts.py
python merge.py -f json
Le fichier OUT/concerts.json contiendra tous les concerts dédupliqués, enrichis avec les IDs de pistes Deezer.
python scrape_atelier_concerts.py
python scrape_rockhal_concerts.py
python scrape_casino2000_concerts.py
python scrape_kulturfabrik_concerts.py
python scrape_philharmonie_concerts.py
python scrape_echo_lu_concerts.py
python scrape_entrepot_concerts.py
python scrape_arche_villerupt_concerts.py
python scrape_citemusicale_metz_concerts.py
python scrape_galaxie_amneville_concerts.py
python scrape_mergener_hof_trier_concerts.py
python scrape_forum_trier_concerts.py
python scrape_gueulard_nilvange_concerts.py
python scrape_lenox_concerts.py
python merge.py -f json
| Script | Description | Doc |
|---|---|---|
scrape_atelier_concerts.py | Scrape les concerts de Atelier.lu (API + pages HTML) | README |
scrape_rockhal_concerts.py | Scrape les concerts de Rockhal.lu (API + pages HTML) | README |
scrape_casino2000_concerts.py | Scrape les concerts de Casino 2000 (pages HTML) | README |
scrape_kulturfabrik_concerts.py | Scrape les concerts de la Kulturfabrik (pages HTML) | README |
scrape_philharmonie_concerts.py | Scrape les concerts de la Philharmonie Luxembourg (pages HTML) | README |
scrape_echo_lu_concerts.py | Scrape 9 centres culturels via echo.lu (API Firestore) | README |
scrape_entrepot_concerts.py | Scrape les concerts de L'Entrepôt Arlon — BE (pages HTML) | README |
scrape_arche_villerupt_concerts.py | Scrape les concerts de L'Arche Villerupt — FR (pages HTML) | README |
Le site web est une application statique (HTML/CSS/JS) ne nécessitant aucun framework ni serveur applicatif. Il suffit de servir le dossier Web/ via un serveur HTTP.
Le fichier Web/IN/concerts.json doit être présent avant de lancer le serveur. Il est généré par le workflow Python (voir section Workflow complet recommandé).
Depuis la racine du projet :
cd Web
python3 -m http.server 8000
Le site est alors accessible à l'adresse : http://localhost:8000
Pour écouter sur toutes les interfaces réseau (accès depuis d'autres machines du réseau local) :
python3 -m http.server 8000 --bind 0.0.0.0
python3 -m http.server 8080
| Page | URL | Description |
|---|---|---|
| Accueil | /index.html | Liste de tous les concerts à venir |
| Salles | /venues.html | Présentation des salles de concert |
| Contact | /contact.html | Formulaire de contact |
| Mentions légales | /legalnotice.html | Cookies, CGU, RGPD |
Pour la documentation complète du site web, voir website.md.
Pour automatiser l'exécution sur un serveur Linux, configurer les tâches suivantes via crontab -e :
# Purge des logs au démarrage
@reboot /usr/bin/python3 /home/user/infoconcert.lu/python/purgelog.py
# Scraping + fusion toutes les heures
0 * * * * /home/user/infoconcert.lu/run_scripts.sh
# Serveur web au démarrage
@reboot cd /home/user/infoconcert.lu/Web && /usr/bin/python3 -m http.server 8000 --bind 0.0.0.0
Appliquer les permissions d'exécution au préalable :
chmod +x $HOME/infoconcert.lu/run_scripts.sh
run_scripts.shScript à placer à la racine du projet (/home/user/infoconcert.lu/run_scripts.sh) :
#!/bin/bash
# Lancer les scripts Python pour le scraping et la fusion en séquence
# Chemin vers le dossier contenant les scripts Python
SCRIPTS_PATH="$HOME/infoconcert.lu/python"
# Chemin vers le dossier d'entrée du site Web
SCRIPTS_PATH_WEB="$HOME/infoconcert.lu/Web/IN"
# Chemin vers Python (environnement virtuel)
PYTHON="$HOME/infoconcert.lu/python/.venv/bin/python3"
# Atelier.lu — exclure les genres Party/Film et les concerts annulés
$PYTHON "$SCRIPTS_PATH/scrape_atelier_concerts.py" -g "Party; Film" -s "cancelled"
# Rockhal.lu — exclure les concerts jeune public et les concerts annulés
$PYTHON "$SCRIPTS_PATH/scrape_rockhal_concerts.py" -g "Kids/Young Audience" -s "cancelled"
# Casino 2000
$PYTHON "$SCRIPTS_PATH/scrape_casino2000_concerts.py"
# Kulturfabrik
$PYTHON "$SCRIPTS_PATH/scrape_kulturfabrik_concerts.py"
# Philharmonie Luxembourg
$PYTHON "$SCRIPTS_PATH/scrape_philharmonie_concerts.py"
# echo.lu — 9 centres culturels via Firestore
$PYTHON "$SCRIPTS_PATH/scrape_echo_lu_concerts.py"
# L'Entrepôt Arlon (Belgique)
$PYTHON "$SCRIPTS_PATH/scrape_entrepot_concerts.py"
# L'Arche Villerupt (France)
$PYTHON "$SCRIPTS_PATH/scrape_arche_villerupt_concerts.py"
# Cité Musicale Metz (France)
$PYTHON "$SCRIPTS_PATH/scrape_citemusicale_metz_concerts.py"
# Galaxie Amnéville (France)
$PYTHON "$SCRIPTS_PATH/scrape_galaxie_amneville_concerts.py"
# Mergener Hof Trier (Allemagne)
$PYTHON "$SCRIPTS_PATH/scrape_mergener_hof_trier_concerts.py"
# Forum Trier (Allemagne)
$PYTHON "$SCRIPTS_PATH/scrape_forum_trier_concerts.py"
# Le Gueulard Nilvange (France)
$PYTHON "$SCRIPTS_PATH/scrape_gueulard_nilvange_concerts.py"
# Lenox Club Luxembourg
$PYTHON "$SCRIPTS_PATH/scrape_lenox_concerts.py"
# Fusion de toutes les sources
$PYTHON "$SCRIPTS_PATH/merge.py" -f json
# Copie du fichier fusionné vers le dossier du site Web
cp "$SCRIPTS_PATH/OUT/concerts.json" "$SCRIPTS_PATH_WEB/concerts.json"
# Vérification des logs et synchronisation JSON — alerte email si problème
$PYTHON "$SCRIPTS_PATH/check_logs.py" \
--email-from [email protected] \
--email-to [email protected] \
--smtp-host smtp.example.com \
--smtp-user [email protected] \
--smtp-password secret \
--web-json-url https://infoconcert.lu/IN/concerts.json
requests >= 2.28.0 (pour merge.py uniquement)Les scrapers utilisent uniquement la bibliothèque standard Python.
scrape_citemusicale_metz_concerts.py | Scrape les concerts de la Cité Musicale Metz — FR (pages HTML) | README |
scrape_galaxie_amneville_concerts.py | Scrape les concerts de Galaxie Amnéville — FR (pages HTML) | README |
scrape_mergener_hof_trier_concerts.py | Scrape les concerts du Mergener Hof Trier — DE (pages HTML) | README |
scrape_forum_trier_concerts.py | Scrape les concerts du Forum Trier — DE (pages HTML) | README |
scrape_gueulard_nilvange_concerts.py | Scrape les concerts du Gueulard Nilvange — FR (API WordPress) | README |
scrape_lenox_concerts.py | Scrape les concerts du Lenox Club Luxembourg (RSC/xceed.me) | README |
merge.py | Fusionne les sorties des scrapers et enrichit avec Deezer | README |
purgelog.py | Nettoie les fichiers de log anciens | — |
check_logs.py | Analyse les logs et envoie une alerte email si nouvelles erreurs | README |