Something you might not know about me is that I go to Metal concerts. I just built a tool I will actually use. One of the typical things that I do before going to a concert is that I look for a setlist of the tour so I can get more familiar with the support bands and with the songs that are going to play. The problem I have is that usually there are no ready made setlists or they are not the songs the bands actually are playing, this sucks, so I built a tool for myself, and you if you are using YouTube music:

App website: https://makesetlist.streamlit.app

And this is github repo: https://github.com/andriybuday/setlistmaker

The functionality is simple: type your headliner, and enter the date, hit “Find Lineup” which will connect to Ticketmaster API and try find the lineup. If lineup is NOT found, say not sold on ticketmaster or past event, you would need to type band names manually (sorry). After which hit “Fetch Setlists” which looks at past events of the bands at setlist.fm using their API. You get a list of songs that you have possibility to review and exclude some songs if you don’t want them:

Because I use Gemini and YouTube music, I simply used prompt generation:

I then just put this into my Gemini and get my playlist ready to play:

Now a bit on technology stack:

Written by AI: The whole thing runs on two Python files, two API keys, and zero JavaScript. Streamlit handles the UI — I didn’t write a single line of HTML. setlist.fm has a free API that returns recent setlists for any band. Ticketmaster has a real public developer API (unlike BandsInTown, which I wasted time on — their keys are per-artist only, nuts) that gives you the event lineup. And Gemini with its YouTube Music extension does the actual playlist creation — no YouTube API, no OAuth dance, just a well-formatted prompt. The whole backend is one API call to Ticketmaster, one to setlist.fm per band, and a string formatter. That’s it.

Now back to my own writing: Yes there are two API keys in use that are rate limited, so if many of you use this app it might run into issues, but I doubt that other than me anybody else will use it. And… it is just a beauty of it. Because of Vibe-coding, something like this takes me an hour or less to implement and now I can use it anytime.

We now live in a world where a personal itch gets scratched in an hour by building an app for your own needs.