<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tokyo-livehouse-events/app/scrapers, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/tokyo-livehouse-events/'/>
<entry>
<title>Add BuzzFront YOKOHAMA scraper</title>
<updated>2026-05-14T14:53:51+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@mosquit.one</email>
</author>
<published>2026-05-14T14:53:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/tokyo-livehouse-events/commit/?id=00c4851e3a716ee30d435bea20e65af55288da6f'/>
<id>00c4851e3a716ee30d435bea20e65af55288da6f</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add 東高円寺二万電圧 (den-atsu) scraper</title>
<updated>2026-05-14T14:07:34+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@mosquit.one</email>
</author>
<published>2026-05-14T14:07:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/tokyo-livehouse-events/commit/?id=4c39c1b30a206d9c87c8f65581e93ee3c84328ad'/>
<id>4c39c1b30a206d9c87c8f65581e93ee3c84328ad</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix multi-month scrape coverage and add duo MUSIC EXCHANGE</title>
<updated>2026-05-10T14:22:17+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@mosquit.one</email>
</author>
<published>2026-05-10T14:22:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/tokyo-livehouse-events/commit/?id=b56e79b5b288b7c9e2fef396b303afc32c9baf5d'/>
<id>b56e79b5b288b7c9e2fef396b303afc32c9baf5d</id>
<content type='text'>
- Extend 8 scrapers (liquid-room, shibuya-o, club-quattro, meets-otsuka,
  nishieifuku-jam, fever-shindaita, fad-yokohama, and new duo-music-exchange)
  to fetch 3 calendar months instead of 1-2, covering the full 65-day window
- Add duo MUSIC EXCHANGE scraper (渋谷, ~700 cap, /schedule/YYYY/index_YYYY-MM.html)
- Add npm test: Node.js built-in test runner verifies each scraper fetches
  all required month URLs via mocked fetch (10 tests, no extra deps)

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Extend 8 scrapers (liquid-room, shibuya-o, club-quattro, meets-otsuka,
  nishieifuku-jam, fever-shindaita, fad-yokohama, and new duo-music-exchange)
  to fetch 3 calendar months instead of 1-2, covering the full 65-day window
- Add duo MUSIC EXCHANGE scraper (渋谷, ~700 cap, /schedule/YYYY/index_YYYY-MM.html)
- Add npm test: Node.js built-in test runner verifies each scraper fetches
  all required month URLs via mocked fetch (10 tests, no extra deps)

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add capacity filter for live houses (~100 / 100~300 / 300~)</title>
<updated>2026-05-07T18:50:45+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@mosquit.one</email>
</author>
<published>2026-05-07T18:50:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/tokyo-livehouse-events/commit/?id=ae6f6f7f74fd4df7704f963d2f1fdd1f3100668f'/>
<id>ae6f6f7f74fd4df7704f963d2f1fdd1f3100668f</id>
<content type='text'>
- Add capacity field to VenueMeta and all 17 scrapers (researched values)
- Add capacity column to venues table with auto-migration for existing DBs
- Add capacity_range filter to queryEvents (small/medium/large)
- Add capacity selector to FilterBar UI

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Add capacity field to VenueMeta and all 17 scrapers (researched values)
- Add capacity column to venues table with auto-migration for existing DBs
- Add capacity_range filter to queryEvents (small/medium/large)
- Add capacity selector to FilterBar UI

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add navey-floor and shimokitazawa-era scrapers</title>
<updated>2026-05-07T18:35:09+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@mosquit.one</email>
</author>
<published>2026-05-07T18:35:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/tokyo-livehouse-events/commit/?id=d116d4cee456f7d8f5fea535742e90a75b05d814'/>
<id>d116d4cee456f7d8f5fea535742e90a75b05d814</id>
<content type='text'>
navey floor (赤坂): 29件取得、Cheerio + WordPress カスタムCMS
下北沢ERA: 22件取得、HTTP only (TLS証明書無効のため)

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
navey floor (赤坂): 29件取得、Cheerio + WordPress カスタムCMS
下北沢ERA: 22件取得、HTTP only (TLS証明書無効のため)

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Register warp-kichijoji and pitbar-nishiogikubo scrapers in ALL_SCRAPERS</title>
<updated>2026-05-07T15:15:47+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@mosquit.one</email>
</author>
<published>2026-05-07T15:15:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/tokyo-livehouse-events/commit/?id=54f3a55b46826ff5fff22a81d6a4abf764e72e65'/>
<id>54f3a55b46826ff5fff22a81d6a4abf764e72e65</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add F.A.D YOKOHAMA scraper</title>
<updated>2026-05-07T13:33:16+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@mosquit.one</email>
</author>
<published>2026-05-07T13:33:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/tokyo-livehouse-events/commit/?id=5c317d8a75cd398719b1e14d50ac95ecf5dafd02'/>
<id>5c317d8a75cd398719b1e14d50ac95ecf5dafd02</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix scrapers returning 0 events for 4 venues</title>
<updated>2026-05-07T13:06:24+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@mosquit.one</email>
</author>
<published>2026-05-07T13:06:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/tokyo-livehouse-events/commit/?id=b4823d4c124160dcba8e5fed1e424cf2cc12e72c'/>
<id>b4823d4c124160dcba8e5fed1e424cf2cc12e72c</id>
<content type='text'>
Rewrote selectors to match actual HTML structure after inspecting each site:
- LIQUID ROOM: article selector, date extracted from URL (_YYYYMMDD suffix)
- WWW/WWW X: article.column selector, month from li.month nav, day rollover detection
- 新宿 LOFT: section.block_schedule_list links, full date from time div.year/month/day
- CLUB QUATTRO: li[data-event-date] with ISO date attribute, jp-label time parsing

Result: 0件 → LIQUID ROOM 25件 / WWW 48件 / LOFT 13件 / QUATTRO 24件

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Rewrote selectors to match actual HTML structure after inspecting each site:
- LIQUID ROOM: article selector, date extracted from URL (_YYYYMMDD suffix)
- WWW/WWW X: article.column selector, month from li.month nav, day rollover detection
- 新宿 LOFT: section.block_schedule_list links, full date from time div.year/month/day
- CLUB QUATTRO: li[data-event-date] with ISO date attribute, jp-label time parsing

Result: 0件 → LIQUID ROOM 25件 / WWW 48件 / LOFT 13件 / QUATTRO 24件

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add 5 new venue scrapers; extract artist info for WARP, shibuya-o, MOON STEP, mod</title>
<updated>2026-05-07T10:27:50+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@mosquit.one</email>
</author>
<published>2026-05-07T10:27:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/tokyo-livehouse-events/commit/?id=d5e975b601e70adf901c8e1eb7e61f0388941195'/>
<id>d5e975b601e70adf901c8e1eb7e61f0388941195</id>
<content type='text'>
New scrapers: Fever 下北沢, Nine Spices 下北沢, 西荻窪 JAM, mod 柴崎, 中野 MOON STEP

Artist extraction added/fixed:
- warp-kichijoji: parse div.w-flyer (clone + remove nested notes-wrapper)
- shibuya-o: rewrite to scrape each sub-venue; artist from li.p-scheduled-card__artist-item
- moon-step-nakano: parse 出演 section from WordPress API description HTML
- mod-shibasaki: fetch individual event pages in parallel; handle live:/出演:/・ bullet formats

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
New scrapers: Fever 下北沢, Nine Spices 下北沢, 西荻窪 JAM, mod 柴崎, 中野 MOON STEP

Artist extraction added/fixed:
- warp-kichijoji: parse div.w-flyer (clone + remove nested notes-wrapper)
- shibuya-o: rewrite to scrape each sub-venue; artist from li.p-scheduled-card__artist-item
- moon-step-nakano: parse 出演 section from WordPress API description HTML
- mod-shibasaki: fetch individual event pages in parallel; handle live:/出演:/・ bullet formats

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Playwright scraping for FLAT/Pitbar; web UI display-only</title>
<updated>2026-05-07T01:16:43+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@mosquit.one</email>
</author>
<published>2026-05-07T01:16:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/tokyo-livehouse-events/commit/?id=0cd5fb770ca9bd3f304d9556a4b33a4ad4f45e7e'/>
<id>0cd5fb770ca9bd3f304d9556a4b33a4ad4f45e7e</id>
<content type='text'>
- Install Playwright + Chromium; add shared browser singleton (playwright.server.ts)
- Rewrite flat-nishiogikubo scraper: Wix calendar via headless browser,
  month navigation via date picker, extracts .WPczEB/.ExCBIq selectors
- Rewrite pitbar-nishiogikubo scraper: freecalend.com via headless browser,
  parses cal-{member}-{year}-{month}-{day} cell IDs
- scraper-runner: close shared browser after each run with closeBrowser()
- Remove all scrape trigger buttons from web UI (events index, venues page);
  remove /api/scrape and /api/scrape-status from routes.ts

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Install Playwright + Chromium; add shared browser singleton (playwright.server.ts)
- Rewrite flat-nishiogikubo scraper: Wix calendar via headless browser,
  month navigation via date picker, extracts .WPczEB/.ExCBIq selectors
- Rewrite pitbar-nishiogikubo scraper: freecalend.com via headless browser,
  parses cal-{member}-{year}-{month}-{day} cell IDs
- scraper-runner: close shared browser after each run with closeBrowser()
- Remove all scrape trigger buttons from web UI (events index, venues page);
  remove /api/scrape and /api/scrape-status from routes.ts

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
