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

一键下载 X/Twitter 的图片、视频和 GIF,默认设置下以用户 ID 和帖子 ID 保存。您可以自定义下载文件的文件名。在 iPhone/Android 上,通过使用 ZIP 文件,您还可以一键下载附加的媒体。下载历史记录与书签同步。此外,可以选择利用 X/Twitter 的书签功能来实现在线同步下载历史记录。

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

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

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

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

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

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

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

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

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

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

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

作者
azuki_0306
日安装量
43
总安装量
5,034
评分
35 2 2
版本
1.4.5
创建于
2025-03-05
更新于
2025-08-25
大小
43.7 KB
许可证
MIT
适用于


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


此脚本是一款工具,可让您一键下载 X/Twitter 上的图片、视频和 GIF。

文件以用户 ID 和帖子 ID 命名保存。对于多个媒体文件,PC 端会分别保存,而移动端则以 ZIP 文件批量下载。(视频以最高可用质量下载,图片以原始尺寸下载。)您可以通过编辑代码中的 generateFilename 函数来自定义下载文件的文件名。可用于文件名的元素包括用户 ID,用户名,帖子 ID 和发布时间。下载历史也会自动保存。此外,可以选择利用 X/Twitter 的书签功能来实现在线同步下载历史记录。

本页底部附有实际的下载按钮图片。

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

此脚本基于以下两个脚本:

・Twitter/X(网页版)视频/原始图片/gif一键下载.[limbopro](https://greasyfork.org/zh-CN/scripts/478651

・Twitter 媒体下载(https://greasyfork.org/zh-CN/scripts/423001



⚠️ 关于Twitter视频的重要通知(2025年7月)


由于Twitter最近更改了视频的mux方式,自2025年6月23日左右下载的视频可能会出现以下问题:
  • 音视频不同步
  • 在某些播放器中(如WMP、VLC等)画面卡顿或冻结
不是脚本的问题,而是Twitter提供的MP4文件本身存在mux错误。

✅ 对策:

  1. 在线FFmpeg:

    FFmpeg 在线工具

  2. 本地FFmpeg:

    ffmpeg -i input.mp4 -fflags +genpts output_fixed.mp4

  3. 使用视频编辑器(如Uncut、Sony Vegas等)重新保存

  4. 使用MPC-HC(K-Lite Codec Pack),可正常播放

更多详情请参考 此讨论



使用说明

适用于 Windows/Mac

  1. 脚本安装:

    在浏览器中添加 Tampermonkey 并安装此脚本。

  2. 在浏览器中打开 X/Twitter 并显示您想下载的推文。

  3. 点击分享按钮旁的下载按钮,即可分别保存每个媒体文件。

适用于 iPhone/iPad

  1. 脚本安装:

    从 App Store 下载 Userscripts 应用(链接),并在 Safari 中安装此脚本。

  2. 在 iOS 设备上,进入 设置 → 应用 → Safari → 下载,查看下载的媒体保存到哪个文件夹。默认情况下,文件保存在 iCloud Drive 的 “Downloads” 文件夹中,但您可以更改此位置。

  3. 在 Safari 中打开 X/Twitter 并显示您想下载的推文。

  4. 点击分享按钮旁的下载按钮;行为取决于媒体文件数量:

        • 如果只有一个媒体文件,则以原始格式下载。

        • 如果有多个媒体文件,则以 ZIP 文件形式下载。

  5. 对于包含多个媒体的 ZIP 文件,您可以使用我们提供的快捷方式轻松解压并保存。(请参阅下面的补充说明部分。)

    获取快捷方式

适用于 Android

  1. 脚本安装:

    在支持扩展的浏览器(如 Edge Canary、Firefox 等)中添加 Tampermonkey 并安装此脚本。

  2. 在已安装脚本的浏览器中打开 X/Twitter 并显示您想下载的推文。

  3. 点击分享按钮旁的下载按钮;行为取决于媒体文件数量:

        • 如果只有一个媒体文件,则以原始格式下载。

        • 如果有多个媒体文件,则以 ZIP 文件形式下载。

  4. 下载的 ZIP 文件可以使用默认的文件管理器或第三方应用进行解压。



补充说明

如何使用 iPhone/iPad 快捷方式


当包含多个媒体文件的 ZIP 文件被下载后,您可以使用我们专为 iPhone/iPad 提供的快捷方式轻松解压并整理这些媒体文件。请按照以下步骤操作:

  1. 此链接获取快捷方式,并将其添加到您 iPhone/iPad 上的 “快捷方式” 应用中。

  2. 首次运行该快捷方式时,系统会提示您选择下载的 ZIP 文件所在的文件夹。请选择 iPhone/iPad 使用说明第 2 步中指定的文件夹。默认情况下,会选择 iCloud Drive 中的 “Downloads” 文件夹。如果您已更改下载文件夹,请在此选择相应的文件夹。

  3. 接下来,系统会提示您选择解压后的媒体文件保存位置。通常,请选择与 ZIP 文件存储位置相同的文件夹。

  4. 快捷方式将自动解压 ZIP 文件,并将每个媒体文件保存到前一步指定的文件夹中。如果该文件夹中已存在文件,则不会覆盖,并会显示这些文件的列表。

  5. 解压完成后,系统会询问您是否删除 ZIP 文件,请按需选择。

从此以后,每次运行该快捷方式都会自动解压并保存下载的 ZIP 文件。

※ 快捷方式的设置可根据需要自定义。详细说明请参阅快捷方式内的解释。

如何更改下载文件的名称

您可以任意更改下载文件的名称,使用用户ID、用户名、帖子ID和发布时间。要更改名称,请编辑代码中的 generateFilename 函数。您也可以更改发布时间的格式。有关详细信息,请查看 dayjs 的参考文档。下面显示了默认设置和其他示例。

默认:使用用户ID和帖子ID的名称
return `${userId}_${postId}-${mediaTypeLabel}${index}.${ext}`;

例1:使用用户ID、帖子ID和发布时间的名称(YYYYMMDD_HHmmss 格式)
const formattedPostTime = dayjs(postTime).format('YYYYMMDD_HHmmss');
return `${userId}_${postId}-${formattedPostTime}-${mediaTypeLabel}${index}.${ext}`;

例2:使用用户名、帖子ID和发布日期的名称(YYYYMMDD 格式)
const formattedPostTime = dayjs(postTime).format('YYYYMMDD');
return `${userName}_${postId}-${formattedPostTime}-${mediaTypeLabel}${index}.${ext}`;

关于通过书签同步在线下载历史记录

此脚本提供一个可选功能,可以使用 X/Twitter 的书签功能在线同步您的下载历史记录。

  • 如何启用: 请将代码中的 enableDownloadHistorykSync 的值从 false 更改为 true
  • 工作原理:
    • 启用后,您下载了媒体的帖子将自动添加到您的 X/Twitter 书签中。
    • 已存在于您书签中的帖子将被视为“已下载”。这些帖子的下载按钮将显示完成状态,以防止重复下载。
    • 这使您可以通过书签,在多个设备(如电脑和智能手机)及不同浏览器之间共享和同步您已下载帖子的历史记录。
  • 默认设置: 默认情况下(false),此功能是禁用的。下载历史记录不会在线同步,仅存储在您浏览器的本地存储(IndexedDB)中。


常见问题 (FAQ)

Q: 如果下载按钮没有出现,我该怎么办?

A: 请尝试刷新页面、清除缓存,或确保您正在使用最新版本的浏览器。

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

A: 在 iPhone/iPad 上,您可以使用提供的快捷方式或文件管理应用解压;在 Android 上,您可以使用内置的文件管理器解压 ZIP 文件。

Q: 如果下载过程中出现错误,我该怎么办?

A: 请检查您的网络环境,或注意 X/Twitter 的规格可能已更改。稍后再试。

Q: 多个媒体文件下载与单个下载哪个优先?

A: 如果只有一个媒体文件,则会单独下载;如果有多个文件,则会根据操作系统的不同,以批量 ZIP 文件或单独下载的方式进行。

Q: 如何在 iPhone 上编辑代码?

A: 可以使用第三方应用程序进行编辑。例如,您可以使用名为 Documents 的应用程序(链接)。

Q: 如何清除下载历史记录?

A: 请使用浏览器的开发者工具删除IndexedDB中的DownloadHistoryDB。如果无法做到这一点,例如在移动浏览器等情况下,请从浏览器设置中清除站点数据。

Q: 如果遇到问题或有疑问,我该怎么办?

A: 请通过本页的反馈部分报告。



许可协议


此脚本采用 MIT 许可协议发布。

详情请查阅 MIT License



© 2025 Azuki. All rights reserved.