By Matt KetchumHub: tokyo-live-houses

Why Your Show Isn't Listed: How Venue Schedules Become Show Pages

TL;DR: Our show listings come from venue schedule pages, read automatically every night. A show reaches us cleanly when it sits on the venue's own site as text, with a date, a lineup, a door time, and a price. A show that exists only as a flyer image on Instagram usually doesn't reach us at all. Five small habits fix most of that, and none of them cost money.

Bands, promoters, and fans ask us some version of the same question: "Why isn't this show on your site?" The honest answer is almost never that we decided to leave it off. It's that the show never appeared anywhere a machine could read it.

This post explains how the listings actually get made, what we learned from keeping them running, and what venues and bands can do about it.

Where the listings come from

Every night a set of scrapers visits venue websites and reads their schedules. Each venue gets its own small program, because no two live houses publish a schedule the same way. Some use a WordPress calendar plugin, some post one page per month, and some keep a single static table. The program pulls the date, the event title, the lineup, open and start times, advance and door prices, and the drink charge, then saves the venue's own event URL so the show keeps the same identity when details change.

For Tokyo alone, our scraping registry lists 62 venues. 38 of them have a scraper running. Another 10 have an official calendar we've found but not yet written a reader for. The remaining 14 have no official website we know of, which means there is nothing for a scraper to visit.

Why a show goes missing

The schedule only exists as an image. A lot of live houses post the month as one flyer: a beautifully designed JPG with every date, every band, and every price in it. People can read it. Our scrapers save the flyer image when there is one, but they read the lineup and times from text on the page, not from the picture. If the only place a lineup appears is inside an image, the show reaches us only if somebody types it in.

The venue has no site of its own. If a room's schedule lives only on Instagram or X, we usually can't collect it reliably. Those platforms make automated reading hard, and posts scroll away.

The site changed under us. This happens more than you'd think. In mid-October, our nightly run found that UNIT in Daikanyama had stopped serving the calendar plugin data our scraper relied on. The old address now returns a "not found" error, while the venue's monthly schedule pages carry on as normal. No new UNIT shows were being added until we rewrote the reader, the same day, to use those monthly pages. Back in May, an audit of the venues we planned to add found seven whose stored schedule address returned the same kind of error, several because the venue now used a separate address for each month.

When a site changes, we would rather show nothing new for a venue than show something wrong. The UNIT reader now refuses to save a run if a month page fails, if an event lands in the wrong month, or if it finds an implausibly small number of shows. That costs us a day or two of freshness when a venue redesigns. It also means a half-broken page doesn't quietly wipe a month of real shows off the calendar.

Five habits that get a show found

None of these need a developer. Most are a change in how the schedule gets posted.

  1. Put every show on a page on your own site, as text. Date, event name, lineup, open and start times, and prices, typed out. Keep the flyer too. Just make sure it isn't the only copy of the information.
  2. Keep one address per month, or one per show, and don't change the pattern. If your schedule lives at a URL with the month in it, keep using that pattern. Readers like ours break when the structure changes without warning.
  3. Write the lineup with a clear separator. A slash, a line break, or a comma between band names. "COPES / locofrank / the telephones" is three bands. "COPES locofrank the telephones" with plain spaces looks like one long band name to a machine, and to some humans.
  4. Say how to get a ticket on the same page. A reservation form, an email address, a platform link, or "through the bands". Fans planning a trip look for this first (we wrote a guide to advance holds because it's the most common question we get).
  5. Mark cancellations and changes on the page itself. Edit the existing listing rather than posting a correction only on social media. We re-read schedules every night, so a change on the page reaches the calendar the next morning.

One thing that won't help much in Japan yet is the event panel Google shows in search results in some countries. Google's own documentation lists the regions where that event search experience runs, and Japan isn't one of them. Clean text on a stable page helps every reader at once: search engines, our scrapers, and the fan on a train trying to remember what time doors open.

If your venue or band is missing

Submit it here. Tell us where your schedule lives, even if that's only an Instagram account. Venues without a website go on our research list, so we know where to look when one appears. You can also browse the venues we already cover to see which rooms near you are already listed.

The systems behind the listings

Keeping a calendar like this running is mostly infrastructure work: deciding which source counts as the truth, catching the night a venue's site changes, and refusing to publish bad data rather than guessing. That is the same work I do for businesses through MKUltraman, my consultancy and the one behind this site. If you're curious how Music in Japan is put together, the project file on how the site was built covers it. If you run a venue, label, or promoter and want to work out whether your own schedule, ticketing, or website setup is worth fixing, a 45-minute Decision Session is the quickest way to get a straight answer.

Related Posts