Sito web della tribute band italiana GOasis, specializzata nei brani degli Oasis.
🎸 Live Music | 🎤 Tribute Shows | 🇬🇧 Britpop | 🤖 Automated Content
- Sito statico con gestione contenuti automatizzata
- Integrazione Notion per la gestione concerti
- Automazione GitHub Actions per aggiornamenti quotidiani
- Generazione automatica immagini Facebook
- Sincronizzazione video Facebook → YouTube
- Mappa interattiva dei concerti passati
- Gallery fotografica responsive
- Design mobile-first
# Node.js 18+
node --version
# Git LFS per i video temporanei
git lfs install# Clona il repository
git clone https://github.com/albertocabasvidani/GOasis.git
cd GOasis
# Installa dipendenze
npm install
# Configura Git LFS
git lfs installNOTION_API_KEY: Token API NotionNOTION_DATABASE_ID: ID database concerti
FB_ACCESS_TOKEN: Token accesso pagina FacebookFB_PAGE_ID: ID pagina Facebook
YOUTUBE_CLIENT_ID: Client ID Google OAuth2YOUTUBE_CLIENT_SECRET: Client Secret Google OAuth2YOUTUBE_REFRESH_TOKEN: Refresh Token OAuth2
# Server locale
python3 -m http.server 8000
# oppure
npx serve .
# Fetch concerti da Notion
npm run fetch-concerts
# Genera dati mappa
npm run fetch-map
# Genera immagini Facebook
npm run generate-fb-posts
# Posta su Facebook
npm run post-to-facebook
# Sincronizza video FB → YouTube
npm run sync-fb-youtubeIl sito si aggiorna automaticamente su GitHub Pages ad ogni push su main.
- Frequenza: Ogni giorno alle 6:00 UTC
- Funzione: Sincronizza concerti da Notion
- Output:
data/concerts.json
- Frequenza: Settimanale (domenica)
- Funzione: Aggiorna coordinate concerti passati
- Output:
data/past-concerts-map.json
- Frequenza: Ogni giorno alle 7:00 UTC
- Funzione: Genera immagini promozionali
- Output:
img/fb-post-concerts-*.png
- Frequenza: Ogni giorno alle 9:00 UTC
- Funzione: Trasferisce video da Facebook a YouTube
- Storage: Git LFS temporaneo (auto-cleanup)
- Output:
data/videos.json - Limiti: Video <800MB, automaticamente scartati quelli più grandi
- Fetch video da Facebook Graph API
- Download temporaneo in
temp-video/(Git LFS) - Upload su YouTube con metadati
- Cleanup immediato del file temporaneo
- Save metadati in
data/videos.json
- Limiti: 1GB storage/mese (gratuito)
- File temporanei eliminati immediatamente post-upload
- Storage netto: ~0 (solo transit)
- Filtro automatico video >800MB
/
├── .github/workflows/ # Automazioni
├── data/ # JSON dinamici
├── img/ # Immagini e foto
├── scripts/ # Script Node.js
├── temp-video/ # Storage video temporaneo (LFS)
├── index.html # Single page application
├── style.css # Styles
└── package.json # Dipendenze
Per configurare l'integrazione YouTube:
-
Google Cloud Console:
- Crea progetto Google Cloud
- Abilita YouTube Data API v3
- Crea credenziali OAuth 2.0
-
Primo setup (locale):
node scripts/youtube-oauth-setup.js
-
Aggiungi secrets su GitHub:
YOUTUBE_CLIENT_IDYOUTUBE_CLIENT_SECRETYOUTUBE_REFRESH_TOKEN
- No framework JS: Vanilla JavaScript
- JSON come database: File in
data/ - Mobile-first: Design responsive
- Automazione: GitHub Actions per i contenuti
Progetto open source per la tribute band GOasis.