San Francisco Metal Show Aggregator, Friscofilth.com

Friscofilth.com is live

friscofilth.com is a San Francisco metal show aggregator. It scrapes 27 venue websites every day and uses AI to classify whether each show is metal or not. I built it because this has always been in the back of my mind when looking at shows to go to over the weekend. I hate existing aggregator sites with endless ads and menus and sub-menus. And hell no, I'm not combing through 27 sites.

How it works

Scraping. Each of the 27 venues has its own scraper module because every venue's website is different. Some use TicketWeb, some use SeeTickets, some use LiveNation, some have completely custom sites. DNA Lounge requires a headless browser with stealth settings because they block automated requests. The scrapers run sequentially with delays between them — respectful to the venue sites and stays under API rate limits. Classification. Once a show is scraped, it needs to be classified as metal or not-metal. First check is a lookup against a database of 183,000+ bands pulled from Metal Archives. That lookup is instant. If the band isn't in the database, Claude classifies it with a confidence score. High confidence matches get auto-approved. Low confidence ones go to a review queue. There's a pre-dedup step to avoid wasting AI calls on shows that have already been processed. Publishing. The public site is a dark-themed page showing upcoming metal shows with venue, date, and ticket links. There's an admin dashboard where I can review the pending queue, approve or reject borderline classifications, and monitor scraper health. The stack is Python, FastAPI, SQLite, Playwright, and Docker. Deployed behind Caddy with Cloudflare. The whole thing runs on a single VPS.