| Technology | Role | Risk | Details |
|---|---|---|---|
| HTML5 / CSS3 / Vanilla JS | App framework — single-file, no build step | 1 | Zero dependencies on bundlers or frameworks. Runs in any modern browser. Will work for decades. |
|
Google Fonts fonts.googleapis.com |
Typography (Space Mono + Syne) | 2 | Google Fonts is free, highly reliable, and cached globally. Risk: Google could deprecate individual fonts, but this would only affect styling. |
| API / Service | What It Provides | Risk | Details |
|---|---|---|---|
|
X Syndication API cdn.syndication.twimg.com |
Primary data: tweet text, author, metadata, media URLs, engagement counts, quoted tweets, thread signals | 6 | Undocumented/unofficial API. Used by X's own embed widgets. No API key required. X could change or restrict it at any time without notice. Has been stable for years but offers no guarantees. Does NOT return full "Show more" text, poll results, or full thread data. |
|
X oEmbed API publish.twitter.com |
Official embed HTML, author name/URL fallback | 3 | Official, documented API. Part of the oEmbed standard. Free, no key needed. Very reliable. Limited data — only provides embed iframe HTML, not raw tweet data. |
|
FxTwitter API api.fxtwitter.com |
Full text (including "Note" long tweets), poll data, reply chain info, media details | 7 | Community-run, open-source project. No API key, no strict rate limits. Uses Twitter guest tokens internally. Key risk: relies on volunteer maintainers + X could block it. Provides the richest data of all free sources. GitHub repo |
|
ThreadReaderApp threadreaderapp.com |
Thread unrolling — provides tweet IDs of all posts in a thread | 6 | Third-party service that indexes thread data. Only works for threads that have been indexed (popular/requested threads). Not all threads are available. We scrape their HTML for tweet IDs — they could change their page structure. |
|
X Timeline Syndication syndication.twitter.com/srv/timeline-profile |
User's recent tweet timeline (thread fallback) | 7 | Undocumented endpoint used as fallback for thread discovery. Scrapes user's profile timeline to find tweets in the same conversation. Can be rate-limited or blocked. |
| Service | Role | Risk | Details |
|---|---|---|---|
|
CORS Proxies corsproxy.io allorigins.win codetabs.com |
Bypass browser CORS restrictions — all API calls route through these | 8 | HIGHEST RISK component. Free third-party proxies can go offline, get rate-limited, or shut down without notice. The app tries 3 proxies in sequence as fallback. If ALL 3 fail simultaneously, the entire app breaks. Mitigation: self-hosted proxy or backend server. |
|
Twemoji (jdecked fork) cdn.jsdelivr.net/npm/@twemoji/api |
Cross-platform emoji rendering — converts Unicode emoji to SVG images | 3 | Community-maintained fork of Twitter's original Twemoji. Served via jsDelivr CDN with fallbacks. If unavailable, emojis just render as system defaults (flags may appear as letter codes on Windows). GitHub repo |
|
X Widgets JS platform.twitter.com/widgets.js |
Renders the official embedded tweet in the "Official X Embed" section | 3 | Official X/Twitter script for rendering embedded tweets. Loaded on demand. If it fails, the embed section just shows a basic blockquote link instead. |
| Tweet Type | Extract? | Limitations |
|---|---|---|
| Regular / Original Tweet | Full ✓ | Text, media, links, metadata — complete extraction |
| Reply | Full ✓ | Shows who was replied to + full content |
| Quote Tweet | Full ✓ | Both quoting tweet and quoted tweet extracted with media |
| Thread (Self-reply chain) | Partial ⚠ | Relies on ThreadReaderApp indexing + FxTwitter chain walking. Popular threads: ~90% success. Small/new threads: may fail. X hides thread replies behind login walls. |
| Retweet / Repost | Partial ⚠ | Detected but syndication API doesn't expose the "retweeted by" context in the same way as X UI. |
| Poll Tweet | Partial ⚠ | Poll detected via FxTwitter. Choice text/percentages available if FxTwitter succeeds; syndication API does not return poll data. |
| Media Tweet (Photo) | Full ✓ | Full resolution URLs, direct download, WhatsApp sharing |
| Media Tweet (Video/GIF) | Full ✓ | Multiple quality options, MP4 download, streaming from X CDN |
| Long Tweet (Note) | Partial ⚠ | Full text available via FxTwitter. If FxTwitter fails, only the "above the fold" text is shown from syndication. |
| Promoted / Ad Tweet | No ✗ | Promoted tweets use different rendering and may not be accessible via syndication API. |
| Community Post | No ✗ | Community-only posts require authentication and are not available through free APIs. |
| Spaces / Audio | No ✗ | X Spaces are live/recorded audio — no public API for extraction. |
If extraction fails or produces incorrect results, generate a debug dump and send it along with this HTML file for troubleshooting.