返回顶部
t

twittershots

|

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.1
安全检测
已通过
59
下载量
0
收藏
概述
安装方式
版本历史

twittershots

# TwitterShots Skill Generate high-quality screenshots of Twitter/X posts via REST API. ## Prerequisites - API key from [TwitterShots Account Settings](https://twittershots.com/settings/keys) - Store the key securely (environment variable `TWITTERSHOTS_API_KEY` recommended) ## Extract Tweet ID Parse tweet ID from various URL formats: ``` https://twitter.com/username/status/1617979122625712128 https://x.com/username/status/1617979122625712128 https://twitter.com/username/status/1617979122625712128?s=20 ``` Extract pattern: `/status/(\d+)` → Tweet ID is the numeric part after `/status/` ## API Request **Endpoint:** `GET https://api.twittershots.com/api/v1/screenshot/:statusId` **Required Header:** ``` X-API-KEY: YOUR_API_KEY Accept: image/svg+xml, image/png, text/html ``` ## Common Parameters | Parameter | Default | Options | Description | |-----------|---------|---------|-------------| | format | png | svg, png, html | Output format (Note: API default is svg, skill defaults to png) | | theme | light | light, dark | Color theme | | aspectRatio | auto | auto, 1:1, 4:5, 5:4, 16:9, 9:16 | Screenshot ratio | | returnType | buffer | buffer, url | Return image directly or URL | | showStats | true | true, false | Show reply/retweet/like counts | | showViews | true | true, false | Show view count | | showTimestamp | true | true, false | Show timestamp | | showMedia | true | true, false | Show images/videos | | showFullText | true | true, false | Show full tweet or collapsed with "Show more" | | mediaLayout | grid | grid, vertical | Media display layout | | timeZoneOffset | UTC+0 | UTC±N, UTC±N:M | Fixed UTC offset for timestamp formatting | | logo | x | x, bluebird, none | Logo style | | width | 410 | 300-1000 | Content width in pixels | | height | auto | auto, numeric | Content height in pixels | | containerBackground | theme default | hex, rgba, linear-gradient | Background color | | backgroundImage | none | HTTPS URL | Background image URL | | borderRadius | 16 | numeric | Border radius in pixels | | containerPadding | 16 | numeric | Padding in pixels | ## Usage Examples ### Basic Screenshot (SVG) ```bash curl -X GET "https://api.twittershots.com/api/v1/screenshot/1617979122625712128?format=svg&theme=light" \ -H "X-API-KEY: YOUR_API_KEY" \ -H "Accept: image/svg+xml" \ -o tweet.svg ``` ### Dark Theme PNG ```bash curl -X GET "https://api.twittershots.com/api/v1/screenshot/1617979122625712128?format=png&theme=dark" \ -H "X-API-KEY: YOUR_API_KEY" \ -H "Accept: image/png" \ -o tweet.png ``` ### Instagram Ready (4:5 ratio) ```bash curl -X GET "https://api.twittershots.com/api/v1/screenshot/1617979122625712128?format=png&aspectRatio=4:5&theme=light" \ -H "X-API-KEY: YOUR_API_KEY" \ -H "Accept: image/png" \ -o tweet-instagram.png ``` ### Get URL Instead of Buffer ```bash curl -X GET "https://api.twittershots.com/api/v1/screenshot/1617979122625712128?returnType=url&format=svg" \ -H "X-API-KEY: YOUR_API_KEY" ``` Response: ```json { "url": "https://i.twittershots.com/twitter-screenshots/2025/12/15/tweet-1617979122625712128-xxx.svg", "format": "svg", "tweetId": "1617979122625712128" } ``` ### Minimal Style (No Stats) ```bash curl -X GET "https://api.twittershots.com/api/v1/screenshot/1617979122625712128?format=png&showStats=false&showViews=false&showTimestamp=false" \ -H "X-API-KEY: YOUR_API_KEY" \ -H "Accept: image/png" \ -o tweet-minimal.png ``` ### Custom Background ```bash # Gradient background curl -X GET "https://api.twittershots.com/api/v1/screenshot/1617979122625712128?format=png&containerBackground=linear-gradient(90deg,%23003f5b,%232b4b7d,%235f5195)" \ -H "X-API-KEY: YOUR_API_KEY" \ -H "Accept: image/png" \ -o tweet-gradient.png ``` ## Python Example ```python import requests import os def screenshot_tweet( tweet_id: str, format: str = "png", theme: str = "light", aspect_ratio: str = "auto", show_full_text: bool = True, media_layout: str = "grid", time_zone_offset: str = "UTC+0", height: str = "auto", background_image: str = None, **kwargs ) -> bytes: """Generate a screenshot of a tweet.""" api_key = os.environ.get("TWITTERSHOTS_API_KEY") if not api_key: raise ValueError("TWITTERSHOTS_API_KEY environment variable not set") params = { "format": format, "theme": theme, "aspectRatio": aspect_ratio, "showFullText": str(show_full_text).lower(), "mediaLayout": media_layout, "timeZoneOffset": time_zone_offset, "height": height, **kwargs } if background_image: params["backgroundImage"] = background_image response = requests.get( f"https://api.twittershots.com/api/v1/screenshot/{tweet_id}", headers={ "X-API-KEY": api_key, "Accept": f"image/{format}" if format != "html" else "text/html" }, params=params ) response.raise_for_status() return response.content # Extract tweet ID from URL def extract_tweet_id(url: str) -> str: import re match = re.search(r'/status/(\d+)', url) if match: return match.group(1) raise ValueError(f"Could not extract tweet ID from: {url}") # Usage tweet_url = "https://twitter.com/elonmusk/status/1617979122625712128" tweet_id = extract_tweet_id(tweet_url) image_data = screenshot_tweet(tweet_id, format="png", theme="dark") with open("tweet.png", "wb") as f: f.write(image_data) ``` ## Response Headers Monitor quota via response headers: - `X-Quota-Remaining`: Remaining requests - `X-Quota-Limit`: Total quota for period ## Error Handling | Code | Meaning | |------|---------| | 200 | Success | | 400 | Invalid parameters | | 401 | Missing API key | | 403 | Invalid API key | | 404 | Tweet not found | | 429 | Rate limit exceeded | | 5xx | Server error | ## Workflow 1. **Parse input**: Extract tweet ID from URL or use directly if numeric 2. **Apply defaults**: Use `format=png` and `theme=light` unless the user explicitly sets either value 3. **Build request**: Construct URL with desired parameters 4. **Execute**: Make GET request with API key header 5. **Handle response**: Save buffer to file or use returned URL 6. **Report**: Show quota remaining from response headers

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 twittershots-1775966883 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 twittershots-1775966883 技能

通过命令行安装

skillhub install twittershots-1775966883

下载 Zip 包

⬇ 下载 twittershots v1.0.1

文件大小: 7.41 KB | 发布时间: 2026-4-13 12:24

v1.0.1 最新 2026-4-13 12:24
- Added homepage and source repository links to metadata.
- Declared required credential (TWITTERSHOTS_API_KEY) in a new credentials section.
- Listed Python dependencies (`requests`) in a dedicated dependencies section.
- No changes to functionality or usage; documentation and metadata improvements only.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部