ljg-x-download

Download images and videos from X (Twitter) posts to ~/Downloads. Use when user shares an X/Twitter link and wants to save media, or says '下载', 'download', '保存图片', '保存视频', or provides a x.com/twitter.com URL with intent to download media.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "ljg-x-download" with this command: npx skills add lijigang/ljg-skills/lijigang-ljg-skills-ljg-x-download

ljg-x-download

从 X (Twitter) 链接下载图片或视频到 ~/Downloads。

依赖

  • yt-dlp(已安装)

执行流程

1. 解析输入

从用户输入中提取 X/Twitter URL。支持的格式:

  • https://x.com/user/status/123456
  • https://twitter.com/user/status/123456
  • https://mobile.twitter.com/user/status/123456
  • 带查询参数的 URL(yt-dlp 自动处理 ?s=20 等追踪参数)

缩短链接(t.co)先解析:curl -Ls -o /dev/null -w '%{url_effective}' "SHORT_URL"

如果用户没有提供 URL,用 AskUserQuestion 要求提供。

2. 尝试直接下载(视频优先)

直接用 yt-dlp 下载,无需先探测:

yt-dlp -o "~/Downloads/%(uploader)s_%(id)s.%(ext)s" "URL"

如果成功(视频推文),完成。跳到步骤 4 汇报结果。

3. 视频下载失败时,提取图片

yt-dlp 对纯图片推文可能报错。此时用 --dump-json 提取图片 URL:

yt-dlp --dump-json "URL" 2>&1

判断结果:

  • JSON 中有 thumbnails 数组 → 提取图片 URL
  • JSON 为空或报错 no video → 推文无媒体,告知用户"该推文不包含可下载的图片或视频"
  • 报错含 login / authentication → 需要登录(见故障排除)
  • 其他错误 → 报告具体错误信息

图片下载:

从 JSON 的 thumbnails 数组提取所有图片 URL,替换 name=smallname=mediumname=orig 获取原图,然后逐一下载:

curl -L -o ~/Downloads/tweet_ID_1.jpg "https://pbs.twimg.com/media/xxx?format=jpg&name=orig"
curl -L -o ~/Downloads/tweet_ID_2.jpg "https://pbs.twimg.com/media/yyy?format=jpg&name=orig"

文件扩展名跟随 URL 中的 format 参数(jpg/png/webp)。

4. 汇报结果

下载完成后,用 ls -lh 列出已下载的文件:文件名、大小、路径。

故障排除

需要登录

yt-dlp 报错含 login / Sign in / age-restricted 时,加 --cookies-from-browser chrome

yt-dlp --cookies-from-browser chrome -o "~/Downloads/%(uploader)s_%(id)s.%(ext)s" "URL"

推文无媒体

纯文字推文没有可下载的媒体。告知用户即可。

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

ljg-card

No summary provided by upstream source.

Repository SourceNeeds Review
General

ljg-travel

No summary provided by upstream source.

Repository SourceNeeds Review
General

ljg-roundtable

No summary provided by upstream source.

Repository SourceNeeds Review
General

ljg-plain

No summary provided by upstream source.

Repository SourceNeeds Review