A modern web application that helps you discover artists performing at music festivals and creates personalized playlists with their most popular songs. Perfect for preparing for your next music festival experience!
- Festival Search: Enter any music festival name and date to discover the lineup
- Artist Discovery: View artists performing on specific dates with their photos
- Song Recommendations: Get the most likely songs each artist will perform
- Multi-Platform Export: Export playlists to YouTube Music, Spotify, or YouTube
- Easy Sharing: Share playlists with friends or export as text files
- Beautiful UI: Modern, responsive design with smooth animations
- Enter Festival Details: Input the festival name and date you're attending
- Discover Artists: View the lineup of artists performing on that specific date
- Explore Songs: See the most popular songs each artist is likely to perform
- Create Playlist: Generate playlists for your preferred music platform
- Export & Share: Download playlists or share them with friends
- YouTube Music: Direct playlist creation
- Spotify: Export to Spotify playlists
- YouTube: Create YouTube playlists
- Text Export: Download as text file for manual playlist creation
- Node.js 18+
- npm or yarn
- Clone the repository:
git clone <repository-url>
cd festival-playlist-tool- Install dependencies:
npm install- Run the development server:
npm run dev- Open http://localhost:3000 in your browser
npm run build
npm start- Festival: Coachella
- Date: 2024-04-12
- Result: Taylor Swift, Drake, and other artists with their top songs
- Festival: Tomorrowland
- Date: 2024-07-19
- Result: Martin Garrix, David Guetta, and EDM artists with their hits
- Frontend: Next.js 14, React 18, TypeScript
- Styling: Tailwind CSS
- Icons: Lucide React
- State Management: React Hooks
- Deployment: Vercel-ready
festival-playlist-tool/
βββ app/
β βββ components/
β β βββ FestivalForm.tsx # Festival search form
β β βββ PlaylistDisplay.tsx # Playlist results display
β βββ services/
β β βββ festivalService.ts # Festival data and API logic
β βββ types.ts # TypeScript type definitions
β βββ globals.css # Global styles
β βββ layout.tsx # Root layout
β βββ page.tsx # Main page component
βββ public/ # Static assets
βββ package.json # Dependencies and scripts
βββ tailwind.config.js # Tailwind configuration
βββ next.config.js # Next.js configuration
βββ README.md # This file
The tool now uses real APIs to fetch festival data:
- MusicBrainz API: For artist and song data (free, no key required)
- Last.fm Public API: For artist top tracks (free, limited)
- Wikipedia API: For festival information (free, no key required)
- YouTube Search: Direct search URLs for music videos
For even better data, you can add API keys to .env.local:
# Spotify API (for better artist data and top tracks)
NEXT_PUBLIC_SPOTIFY_CLIENT_ID=your_spotify_client_id
SPOTIFY_CLIENT_SECRET=your_spotify_client_secret
# YouTube Data API (for direct video links)
NEXT_PUBLIC_YOUTUBE_API_KEY=your_youtube_api_key
# Last.fm API (for better artist data)
NEXT_PUBLIC_LASTFM_API_KEY=your_lastfm_api_key-
Spotify API:
- Go to https://developer.spotify.com/dashboard
- Create a new app
- Get Client ID and Client Secret
-
YouTube Data API:
- Go to https://console.cloud.google.com/apis/credentials
- Create a new project
- Enable YouTube Data API v3
- Create API key
-
Last.fm API:
- Go to https://www.last.fm/api/account/create
- Create an account and get API key
The tool works without API keys but provides enhanced data with them!
Edit app/services/festivalService.ts to add new festivals to the database:
const FESTIVAL_DATABASE = {
'your-festival': {
name: 'Your Festival Name',
dates: ['2024-06-15', '2024-06-16'],
artists: {
'2024-06-15': [
{
name: 'Artist Name',
image: 'artist-image-url',
songs: [
{ title: 'Song Title', url: 'youtube-url' }
]
}
]
}
}
}Modify tailwind.config.js to customize colors and themes:
theme: {
extend: {
colors: {
primary: {
// Your custom color palette
}
}
}
}- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Real-time festival lineup data
- Spotify API integration
- YouTube Data API integration
- User accounts and saved playlists
- Mobile app version
- Social sharing features
- Festival recommendations
- Artist set times and stage information
This project is licensed under the MIT License - see the LICENSE file for details.
If you have any questions or need help, please open an issue on GitHub or contact the maintainers.
Happy Festival Season! ππ΅