字
字节笔记本
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 elonmuskWindows 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分钟)
- 程序响应:速率限制等待期间,其他协程的消息可能会覆盖休眠通知,请耐心等待
项目链接
- GitHub 仓库:https://github.com/unkmonster/tmd
- Release 下载:https://github.com/unkmonster/tmd/releases
- 帮助文档:https://github.com/unkmonster/tmd/blob/master/doc/help.md
- Telegram 交流群:https://t.me/+I4yyM81HaJpkNTll
致谢
本项目 CDN 加速及安全防护由 Tencent EdgeOne 赞助。
分享: