X Content Extraction & Review
Recovering X article/post text is non-trivial because X gates long-form Articles behind a login wall and the standard web-scraping path is unreliable. This skill is the fallback ladder that actually works, plus a review pattern for the promotional articles that dominate X AI-content.
Trigger
- User shares an
x.com/.../status/...orx.com/i/article/...link. - User says "review this article on X", "read this post", "what does this X thread say".
- web_extract / Firecrawl returned empty, timed out (504 UPSTREAM_ERROR), or said "Website Not Supported" for an X URL.
Recovery ladder (try in order)
Browser snapshot (works for most posts).
browser_navigateto the status URL. The accessibility-tree snapshot often reveals the post text, author, timestamp, and view count without a login. Long-form Articles show only a cover card + blurb here (the click-to-open article view is login-gated) — see step 3.t.coredirect resolution. X post cover cards link throught.co/<id>. Following that redirect lands onx.com/i/article/<ARTICLE_ID>(extracted from theredirect_after_loginquery param). Note the ARTICLE_ID even if login is required.xurl raw API (best for X Articles, requires xurl auth). If xurl is authenticated on the machine, the bundled
social-media/xurlskill documents the exact call:xurl --app APP_NAME '/2/tweets/<ARTICLE_ID>?expansions=author_id&tweet.fields=created_at,article'then read
data.article.plain_textfrom the JSON. This bypasses the login wall because it hits the API, not the rendered page. (APP_NAME = the user's authenticated X app; don't inline secrets — see the xurl skill's secret-safety rules.)Mirror / search fallback.
web_searchthe article title or a distinctive quoted phrase — promo pieces are often reposted to Instagram, YouTube, Skool, or blogs where the full text is readable. Last resort only.
Review pattern for promotional X articles
AI-content X articles are frequently affiliate lead-gen. Don't take the framing at face value. Apply:
- Separate marketing claim from technical fact. Verify each load-bearing claim against an official source (e.g. for "Hermes ships xurl" → the Hermes docs; for model claims → the vendor's own announcement). Mark verified (✅), overstated (⚠️), or unverified.
- Spot the funnel. Search the author handle + the promo's named product/person. Paid communities ("boardroom", "$X custom automations", coaching), affiliate-portal domains (goaffpro, *-goaffpro.com), and "affiliate partner / we earn commission" terms in their Terms signal the piece is a funnel, not a neutral tutorial.
- Flag hidden costs the pitch omits: you still need your own developer app + OAuth credentials, API rate limits apply, and "set-and-forget" quality is on you.
- State the access caveat first. If you could not read the full article (login wall / tool failure), say so explicitly before reviewing — review the public framing + verified claims, not an imagined full text.
Pitfalls
- web_extract on
x.comreliably fails (504 timeout or "not supported") — skip it first, go straight to the browser or xurl. - Clicking the article's cover card in the browser often throws "Something went wrong" / a login interstitial. Don't loop on it — capture the cover blurb, then use xurl (step 3).
xurl read <ID>is for posts, NOT Articles — Articles require the raw/2/tweetsendpoint withtweet.fields=article. Usingreadon an article ID returns nothing.- X search tool (
x_search) may be credit-blocked ("personal-team-blocked: spending-limit") — don't rely on it; the browser + web_search ladder is more robust.
Support files
references/gated-x-article-recovery.md— worked example (cover-card → t.co → article ID → xurl call) and the funnel-spotting checklist distilled.