X/Twitter 媒体批量下载器 (支持 iPhone/Android)

一键下载 X/Twitter 的图片、视频和 GIF。默认以用户 ID 和帖子 ID 保存,可通过集成的设置页面自由自定义文件名和日期格式。支持在 iPhone 和 Android 上通过 ZIP 压缩一键批量下载媒体。除本地保存下载历史记录外,还支持选择利用 X 的书签功能实现跨设备在线同步。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

作者
azuki_0306
日安装量
42
总安装量
10,847
评分
40 2 2
版本
1.5.2
创建于
2025-03-05
更新于
2026-07-17
大小
54.8 KB
许可证
MIT
适用于

X/Twitter 媒体批量下载器(支持 iPhone/Android)用户指南

此脚本是一款可以让你一键下载 X(原 Twitter)上图片、视频及 GIF 的工具。视频将默认下载最高画质,图片则会以原图尺寸(4096x4096px)进行下载。

当推文包含多个媒体文件时,在 PC 端会分别单独下载,而在移动端(智能手机)环境下则会自动打包成一个 ZIP 文件进行批量下载。此外,下载历史会自动保存,您也可以选择启用 X 的书签功能,将下载历史在线同步至其他设备。

无论是 PC 还是移动端,只要是最新版本的浏览器均可使用。

基于以下脚本开发:

使用方法

💻 Windows / Mac 用户

  1. 安装脚本:在浏览器中添加「Tampermonkey」等扩展程序,并安装此脚本。
  2. 使用浏览器访问 X,并打开目标推文。
  3. 点击分享按钮旁新增的 下载按钮(向下箭头图标),即可单独保存各个媒体文件。

📱 iPhone / iPad 用户

  1. 安装脚本:从 App Store 下载 Userscripts 应用程序,并将此脚本安装至 Safari。
  2. 确认保存位置:进入「设置 App」→「App」→「Safari」→「下载项」,确认媒体文件的保存位置。默认情况下会保存至「iCloud 云盘」的「下载」文件夹(可自行更改)。
  3. 使用 Safari 访问 X,并打开目标推文。
  4. 点击分享按钮旁的下载按钮。
    • 仅有一个媒体时:以原始格式直接下载。
    • 有多个媒体时:自动打包成 ZIP 格式并下载。
  5. 下载的 ZIP 文件可以使用专用的 iOS 快捷指令轻松解压并保存(使用方法请参阅补充说明)。

🤖 Android 用户

  1. 安装脚本:在支持扩展程序的移动端浏览器(如 Edge Canary、Firefox 等)中添加「Tampermonkey」,并安装此脚本。
  2. 使用已安装脚本的浏览器访问 X,并打开目标推文。
  3. 点击分享按钮旁的下载按钮。
    • 仅有一个媒体时:以原始格式直接下载.
    • 有多个媒体时:自动打包成 ZIP 格式并下载。
  4. 下载的 ZIP 文件请使用设备自带的文件管理应用程序或第三方解压 App 进行解压。

补充说明与高级设置

在新版本中,X 的「设置」页面内会自动插入「媒体下载器设置」菜单。 点击齿轮图标的菜单即可打开专用的设置窗口(弹窗),您可以在此画面上进行以下所有设置。

⚙️ 更改文件名与日期格式的方法

下载的文件名称可以使用指定的变量自由更改为您喜欢的格式。无需直接修改代码。

  • 设置方法:从 X 的设置页面打开「媒体下载器设置」,并在「文件名格式」栏位中输入。
  • 可用的变量
  • {userId}:用户 ID(@ 后方的英数字)
  • {userName}:用户名(显示名称)
  • {postId}:推文 ID
  • {postTime}:投稿时间(将套用您设置的时间格式)
  • {mediaType}:媒体类型(img / video / gif)
  • {index}:多张媒体时的序列号

格式示例

  • 默认(用户 ID 与推文 ID): {userId}-{postId}-{mediaType}{index}
  • 示例 1(包含投稿时间 YYYYMMDD_HHmmss): {userId}_{postId}-{postTime}-{mediaType}{index}(在日期格式栏位中输入 YYYYMMDD_HHmmss
  • 示例 2(仅用户名与日期 YYYYMMDD): {userName}_{postId}-{postTime}(在日期格式栏位中输入 YYYYMMDD

关于日期的详细指定方式,请参阅 dayjs 文档

🔄 利用书签进行在线历史同步

您可以利用 X 官方的书签功能,将下载历史与其他设备(PC 或其他手机)进行在线同步。

  • 启用方法:勾选设置画面中的「启用利用书签同步历史」。
  • 运行方式:启用后,在下载的瞬间,该推文会自动被添加至 X 的书签中。已存在于书签中的推文将被视为「已下载(完成状态)」,以防止重复下载。
  • 默认设置:默认为禁用(未勾选)。历史不会进行在线同步,仅会本地存储于您使用的浏览器中(IndexedDB)。

💾 导出 / 导入历史数据

在更换浏览器或进行备份时,您可以将过去的下载历史保存为 JSON 文件并进行恢复。只需点击设置画面下方的「导出历史数据」或「导入历史数据」按钮,即可一键完成。

📱 iOS 用户:强制切换下载方式

若在 iPhone 等 iOS 环境下下载失败或卡住,本工具提供了传统的「强制使用 Data URL 格式下载」选项。如果标准的 Blob 格式失败,请在设置画面中勾选此项目并重试。

📂 iPhone/iPad 专用快捷指令的使用方法

在 iOS 上下载的 ZIP 文件可以使用专用快捷指令轻松整理。

  1. 通过 快捷指令链接 将其添加至「快捷指令」App。
  2. 首次运行时,选择 ZIP 文件保存的文件夹(默认为 iCloud 云盘中的「下载」)。
  3. 接着,选择您想要保存解压后媒体文件的位置(如「照片」App 或特定文件夹)。
  4. 快捷指令会自动进行解压并将文件展开至保存位置。在此过程中,已存在的重复文件将自动跳过,并显示重复列表。
  5. 最后,系统会确认是否删除不再需要的原始 ZIP 文件,选择后即可完成。 从第二次开始,只需运行快捷指令,即可自动处理文件夹内的 ZIP 文件。

常见问题 (FAQ)

Q: 如果没有显示下载按钮该怎么办?

A: 请尝试刷新页面(重新加载)或清除浏览器缓存。此外,请确认您的浏览器及脚本管理器(如 Tampermonkey)是否为最新版本。

Q: 我不知道该如何解压 ZIP 文件。

A: 在 iPhone/iPad 上,您可以使用上方介绍的「专用快捷指令」,或是直接在 iOS 自带的「文件」App 中点击该文件进行解压。在 Android 上,您也可以使用自带的文件管理 App(如 Files by Google)轻松解压。

Q: 下载过程中发生错误该怎么办?

A: 请检查您的网络环境。此外,有可能是因为 X 的规则变更导致暂时无法获取媒体。在这种情况下,请等待脚本更新。

Q: 下载多个媒体时,运行方式是什么?

A: 如果只有一个媒体,会直接以原始文件分别下载。如果有多个媒体,在 PC 环境下会根据设置连续分别下载,而在移动端环境(手机/平板)下则会自动打包成一个 ZIP 文件。

Q: 在 iPhone 上为了更改文件名或设置,需要修改代码吗?

A: 不需要。 在新版本中,您可以直接在 X 内的「媒体下载器设置」画面中通过 GUI 进行所有修改。不再需要直接修改代码。

Q: 该如何清除下载历史(完成标记)?

A: 若使用 PC 浏览器,请打开开发者工具(F12),在应用(Application)标签页中删除 IndexedDB 内的 DownloadHistoryDB。如果在移动端浏览器上难以操作,请从浏览器设置中清除 X(x.com / twitter.com)的网站数据与 Cookie。

Q: 如果有问题或想反馈错误,该去哪里反应?

A: 请至脚本发布页面的「反馈(Feedback)」标签页中,详细说明您遇到的状况。


许可协议

本脚本基于 MIT 许可协议公开。详细信息请参阅 MIT 许可协议指南

© 2026 Azuki. All rights reserved.