Twitter Downloader Skill
Download and summarize Twitter/X posts, save media into Minis, and return chat-ready Markdown.
When to Use
- User provides a twitter.com or x.com status URL.
- User asks to download Twitter/X images, GIFs, or videos.
- User asks what a tweet says/contains.
- User wants downloaded media inserted/displayed in chat as Markdown.
What It Does
- Parses username and tweet/status ID from Twitter/X URL variants.
- Fetches structured JSON from
api.fxtwitter.com, with fallback toapi.vxtwitter.com. - Generates a short summary:
- author
- text
- created time if available
- sensitive flag
- original media URLs
- Downloads images, video thumbnails, and GIF/video files by default.
- Returns Markdown containing:
## Tweet Summary- summary/raw JSON links
- inline media syntax for images/thumbnails/videos/GIFs:

Dependencies
curljqpython3
The helper script auto-installs missing packages with apk add --no-cache.
Helper Script
Path:
/var/minis/skills/twitter-downloader/scripts/twitter_downloader.sh
Usage:
/var/minis/skills/twitter-downloader/scripts/twitter_downloader.sh "<tweet_url>"
Options:
--dir DIR Output directory, default /var/minis/workspace/tweet_media
--images Download images/thumbnails only in addition to summary
--video Download videos/GIFs only in addition to summary
--all Download images/thumbnails and videos/GIFs; default when no media flag is provided
--no-download Only fetch summary/JSON and return Markdown links for those files
--json-only Fetch and print raw tweet JSON only; no Markdown output
Examples:
# Default: download all available media and output Markdown
/var/minis/skills/twitter-downloader/scripts/twitter_downloader.sh "https://x.com/user/status/123"
# Summary only, no media downloads
/var/minis/skills/twitter-downloader/scripts/twitter_downloader.sh "https://x.com/user/status/123" --no-download
# Custom output directory
/var/minis/skills/twitter-downloader/scripts/twitter_downloader.sh "https://x.com/user/status/123" --dir "/var/minis/workspace/tweet_media"
Generated files:
/var/minis/workspace/tweet_media/<tweet_id>.json
/var/minis/workspace/tweet_media/<tweet_id>_summary.txt
/var/minis/workspace/tweet_media/<tweet_id>/<media files>
Agent Workflow
- Run the helper script with the tweet URL.
- Paste stdout directly into chat.
- Do not merely mention the folder path; include generated Markdown links.
- Keep images, thumbnails, videos, and GIFs as inline media syntax:
 - Keep JSON/text summary files as normal links:
[filename](minis://...) - If
Sensitive: True, preserve that field and avoid adding explicit extra descriptions unless the user asks.
Output Format
The helper outputs Markdown similar to:
## Tweet Summary
- Author: ...
- Text: ...
- Created: ...
- Sensitive: false
- Media:
- photo https://...
- Downloaded images: 1, videos: 1
## File Links
- [summary.txt](minis://workspace/...)
- [raw.json](minis://workspace/...)
## Media


Error Handling
- If URL parsing fails, ask for a valid
twitter.com/x.comstatus URL. - If both APIs fail, report that the tweet may be private/deleted or the API may be temporarily unavailable.
- If no media is found, still return the tweet summary and JSON/summary links.
Notes
- Video/GIF downloads choose the best bitrate variant when available.
- Video/GIF thumbnails are downloaded when image download is enabled.
- Minis URLs are percent-encoded by the helper.