AI Music, by humans
SpotifAI is a custom-built, single-page web application designed to host and stream a curated collection of original music made with AI tools like Suno and Udio. It serves as the primary portfolio for musical projects developed by TOXI Media, exploring the intersection of artificial intelligence and human creativity.
This is not just a standard music player; it's a lightweight, serverless platform built with vanilla HTML, CSS, and JavaScript, and deployed entirely on GitHub Pages.
- Dynamic Album Loading: Automatically discovers and lists all albums from a single
manifest.json, generated at build time. - Responsive Player UI: A clean, dark-mode interface inspired by modern streaming platforms, fully responsive for desktop and mobile.
- Full Playback Controls: Includes play/pause, next/prev, shuffle, loop, a seek bar, and volume control.
- Album Carousel & Sorting: Browse all available albums in a scroll-snapping carousel with multiple sorting options (e.g., Recommended, Date Added, Release Date, Title).
- "Surprise Me" Mode: A global shuffle button to generate and play a randomized queue of every track in the entire collection.
- Deep-Linking: Shareable URLs that link directly to a specific album or even a specific track.
- Automated Deployment: Deploys automatically to GitHub Pages on every push to the
mainbranch.
This project is a static site that requires no backend.
- All music is organized into individual folders within the
/albumsdirectory. - Each album folder contains its
.mp3tracks (namedNN - Title.mp3), acover.png, and ameta.jsonfile for artist and date information. - On every push to
main, a GitHub Action workflow executes thenode generate-manifest.mjsscript. - This script scans the
/albumsdirectory, usesffprobe(viaffmpeg) to get accurate track durations, and builds a singlemanifest.jsonfile. - The frontend JavaScript (
script.js) fetches thismanifest.jsonon load to dynamically build the entire player UI and track lists.
- Create a new folder inside the
/albumsdirectory (e.g.,/albums/My New Album). - Add your tracks, named in the
NN - Title.mp3format (e.g.,01 - First Song.mp3). - Add a
cover.pngfile (ideally square) to the album's folder. - Create a
meta.jsonfile in the folder with the following structure:{ "artist": "Your Name", "date_released": "YYYY-MM-DD", "date_added": "YYYY-MM-DD", "recommended": false } - Commit and push your changes. The GitHub Action will automatically re-build and deploy the site with the new album included.
This project and much of the music it hosts are developed and composed by Nicolás Martorell.
- Email: mneuronico@gmail.com
- Role: AI Researcher & Lead Developer at TOXI Media