字节笔记本

2026年2月23日

tmd - Twitter/X 媒体批量下载工具

本文介绍 tmd(Twitter Media Downloader),一个跨平台的推特媒体下载器。该工具用于轻松、快速、安全、整洁、批量地下载推特上用户的媒体推文,支持通过用户列表和关注列表进行批量下载,开箱即用!

项目简介

tmd 是一个开源的 Twitter/X 媒体下载工具,由 unkmonster 开发维护。截至目前,该项目在 GitHub 上已获得 319 stars 和 36 forks,使用 Go 语言 100% 编写,采用 GPL-3.0 开源协议。

该项目的核心价值在于帮助用户批量下载推特上的媒体内容(图片、视频、GIF),同时保持文件的组织结构和元数据信息。

核心特性

  • 媒体下载:下载指定用户的媒体推文(video, img, gif)
  • 元数据保留:保留推文标题和发布日期,设置为文件的修改时间
  • 批量下载:以列表为单位批量下载,支持关注中的用户批量下载
  • 文件结构:在文件系统中保留列表/关注结构
  • 用户信息同步:同步用户/列表信息(名称、是否受保护等)
  • 曾用名记录:记录用户曾用名
  • 智能去重
    • 每次工作后记录用户的最新发布时间,下次仅从这个时间点开始拉取
    • 向列表目录发送指向用户目录的符号链接,同一用户仅保存一份存档
  • 失败重试:避免重复获取时间线,下载失败的推文存储到本地以待重试
  • 速率限制保护:避免触发 Twitter API 速率限制
  • 自动关注:自动关注受保护的用户
  • 多 Cookie 支持:添加备用 cookie 提高推文获取速度和总数量

技术栈

  • Go - 主要编程语言,提供跨平台支持
  • Twitter API - 获取推文和用户数据
  • YAML - 配置文件格式

安装指南

直接下载

前往 Release 页面选择合适的版本并下载。

自行编译

bash
git clone https://github.com/unkmonster/tmd
cd tmd
go build .

快速开始

首次配置

第一次运行程序时,程序会询问配置信息:

  • storeage path:存储路径(可以不存在)
  • auth_token:用于登录,获取方式
  • ct0:用于登录,获取方式
  • max_download_routine:最大并发下载协程数(如果为0取默认值)

更新配置

bash
tmd --conf

注意:执行上述命令将重新配置整个配置文件。单独修改配置项请至 %appdata%/.tmd2/conf.yaml(Windows)或 $HOME/.tmd2/conf.yaml(Linux/macOS)手动修改。

使用示例

基础命令

bash
# 显示帮助
tmd --help

# 下载指定用户(通过 screen_name)
tmd --user elonmusk

# 下载指定用户(通过 user_id)
tmd --user 1234567

# 下载列表中的所有用户
tmd --list 8901234

# 下载某用户关注的所有用户
tmd --foll 567890

组合使用

更推荐的做法是一次运行多个任务:

bash
tmd --user elonmusk --user 1234567 --list 8901234 --foll 567890

设置代理

运行前通过环境变量指定代理服务器:

Windows CMD:

bash
set HTTP_PROXY=http://127.0.0.1:7890
set HTTPS_PROXY=http://127.0.0.1:7890
tmd --user elonmusk

Windows PowerShell:

bash
$Env:HTTP_PROXY="http://127.0.0.1:7890"
$Env:HTTPS_PROXY="http://127.0.0.1:7890"

忽略用户

程序默认会忽略被静音或被屏蔽的用户。如需排除某些用户,可在推特将他们屏蔽或静音。

添加额外 Cookie

按如下格式创建配置文件:

Windows: %appdata%/.tmd2/additional_cookies.yaml Linux/macOS: $HOME/.tmd2/additional_cookies.yaml

yaml
- auth_token: xxxxxxxxx1
  ct0: xxxxxxxxxxxxxxxxxxxxxxx
- auth_token: xxxxxxxxx2
  ct0: xxxxxxxxxxxxxxxx2
- auth_token: xxxxxxxxxxxxxxxx3
  ct0: xxxxxxxxxxxxxxxxxxxxx3

注意:备用 cookie 仅用来提升获取推文的速率和总量。判断是否忽略用户和自动关注受保护的用户依然使用主账号。

注意事项

  • Windows 管理员权限:为了创建符号链接,在 Windows 上应该以管理员身份运行程序
  • 速率限制:Twitter API 限制一段时间内过快的请求。当某一端点将要达到速率限制,程序会阻塞请求直到余量刷新(最多15分钟)
  • 程序响应:速率限制等待期间,其他协程的消息可能会覆盖休眠通知,请耐心等待

项目链接

致谢

本项目 CDN 加速及安全防护由 Tencent EdgeOne 赞助。

分享: