Description
The bookmarklet and console script both complete Auto-scroll but capture 0 bookmarks. The root cause appears to be that X/Twitter has migrated (at least for some users) from GraphQL API calls to a live_pipeline system for serving bookmark data.
Steps to Reproduce
- Clone and start Siftly (
./start.sh) — starts fine, Claude CLI detected
- Navigate to
x.com/i/bookmarks in Chrome
- Run bookmarklet OR paste Console Script into DevTools
- Click ▶ Auto-scroll — page scrolls through all bookmarks
- Result:
✅ Auto-scroll complete! 0 bookmarks ready. Click Export.
Network Analysis
When filtering DevTools Network tab by graphql:
- Zero
/graphql/ requests appear during scrolling
- Only
user_flow.json, badge_count.json, p2, and events?topic= (SSE) requests are visible
In the Console, after Auto-scroll completes:
POST https://api.x.com/1.1/live_pipeline/update_subscriptions — 400 (Bad Request)
This repeats many times, suggesting X now uses live_pipeline for real-time data delivery instead of GraphQL fetch calls.
Root Cause
The bookmarklet/console scripts hook window.fetch and XMLHttpRequest to intercept responses containing /graphql/ in the URL. Since X appears to have migrated bookmark data delivery to a live_pipeline system (possibly Server-Sent Events or a similar streaming mechanism), no /graphql/ requests are made during scrolling, and the hooks capture nothing.
Environment
- macOS (Darwin 24.6.0)
- Chrome (DevTools 146)
- Node.js v25.8.2
- Siftly cloned from main on 2026-03-30
- Claude CLI authentication (working)
Screenshots
DevTools Network tab (filtered by graphql) — no results:
Console output showing live_pipeline 400 errors and 0 captured:
(Screenshots available — this was filed based on hands-on debugging)
Possible Fix Direction
The capture mechanism may need to be updated to intercept the new live_pipeline endpoint or use DOM scraping as a fallback when GraphQL interception yields 0 results.
Description
The bookmarklet and console script both complete Auto-scroll but capture 0 bookmarks. The root cause appears to be that X/Twitter has migrated (at least for some users) from GraphQL API calls to a
live_pipelinesystem for serving bookmark data.Steps to Reproduce
./start.sh) — starts fine, Claude CLI detectedx.com/i/bookmarksin Chrome✅ Auto-scroll complete! 0 bookmarks ready. Click Export.Network Analysis
When filtering DevTools Network tab by
graphql:/graphql/requests appear during scrollinguser_flow.json,badge_count.json,p2, andevents?topic=(SSE) requests are visibleIn the Console, after Auto-scroll completes:
This repeats many times, suggesting X now uses
live_pipelinefor real-time data delivery instead of GraphQL fetch calls.Root Cause
The bookmarklet/console scripts hook
window.fetchandXMLHttpRequestto intercept responses containing/graphql/in the URL. Since X appears to have migrated bookmark data delivery to alive_pipelinesystem (possibly Server-Sent Events or a similar streaming mechanism), no/graphql/requests are made during scrolling, and the hooks capture nothing.Environment
Screenshots
DevTools Network tab (filtered by
graphql) — no results:Console output showing
live_pipeline400 errors and 0 captured:(Screenshots available — this was filed based on hands-on debugging)
Possible Fix Direction
The capture mechanism may need to be updated to intercept the new
live_pipelineendpoint or use DOM scraping as a fallback when GraphQL interception yields 0 results.