{"repo":"unkmonster/tmd","free":true,"listed":false,"github":"https://github.com/unkmonster/tmd","clone":"git clone https://github.com/unkmonster/tmd.git","description":"批量下载推特上用户的媒体推文，支持通过用户列表和关注列表进行批量下载。","language":"Go","stars":379,"topics":["twitter","x","downloader","cli"],"license":"GPL-3.0","category":"cli-tools","readme_excerpt":"Twitter Media Downloader 跨平台的推特媒体下载器。用于轻松，快速，安全，整洁，批量的下载推特上用户的推文。支持手动指定用户或通过列表、用户关注批量下载。开箱即用！ Feature - 下载指定用户的媒体推文 (video, img, gif) - 保留推文标题 - 保留推文发布日期，设置为文件的修改时间 - 以列表为单位批量下载 - 关注中的用户批量下载 - 在文件系统中保留列表/关注结构 - 同步用户/列表信息：名称，是否受保护，等。。。 - 记录用户曾用名 - 避免重复下载 - 每次工作后记录用户的最新发布时间，下次工作仅从这个时间点开始拉取用户推文 - 向列表目录发送指向用户目录的符号链接，无论多少列表包含同一用户，本地仅保存一份用户存档 - 避免重复获取时间线：任意一段时间内的推文仅仅会从 twitter 上拉取一次，即使这些推文下载失败。如果下载失败将它们存储到本地，以待重试或丢弃 - 避免重复同步用户（更新用户信息，获取时间线，下载推文） - 速率限制：避免触发 Twitter API 速率限制 - 自动关注受保护的用户 - 添加备用 cookie：提高推文获取速度和总数量 How to use 下载/编译 直接下载 前往 Release 自行选择合适的版本并下载 自行编译 更新/填写配置 第一次运行程序时，程序会询问如下配置信息，请按要求将配置项依次填入 配置项介绍 1. storeage path ：存储路径(可以不存在) 2. auth token ：用于登录，获取方式 3. ct0 ：用于登录，获取方式 4. max download routine ：最大并发下载协程数（如果为0取默认值） 更新配置 执行上述命令将导致引导配置程序重新运行，这将重新配置整个配置文件，而不是单独的配置项。单独修改配置项 请至 %appdata%/.tmd2/conf.yaml 或 $HOME/.tmd2/conf.yaml 手动修改 命令说明 为了创建符号链接，在 Windows 上应该以管理员身份运行程序 不知道啥是 user id/list id/screen name? 示例 更推荐的做法：一次运行 设置代理 运行前通过环境变量指定代理服务器（TUN 模式跳过这一步） 示例： 如果你使用windows系统，在powershell中使用以下指令设置代理： 忽略用户 程序默认会忽略被静音或被屏蔽的用户，所以当你想要下载的列表中包含你不想包含的用户，可以在推特将他们屏蔽或静音 添加额外 cookie 程序动态从所有可用 cookie 中选择一个不会被速率限制的 cookie 请求用户推文，以避免因单一 cookie 的速率限制导致程序被阻塞。 按如下格式创建 $HOME/.tmd2/additional cookies.yaml 或 %appdata%/.tmd2/additional cookies.yaml 这些添加的备用 cookie，仅用来提升获取推文的速率和总量。判断是否忽略用户和自动关注受保护的用户依然使用主账号 Detail 关于速率限制 Twitter API 限制一段时间内过快的请求 （例如某端点每15分钟仅允许请求500次，超出这个次数会以429响应），当某一端点将要达到速率限制程序会打印一条通知并阻塞尝试请求这个端点的协程直到余量刷新（这最多是15分钟），但并不会阻塞所有协程，所以其余协程打印的消息可能将这条休眠通知覆盖让人认为程序无响应了，等待余量刷新程序会继续工作。 Contributors 交","default_branch":null,"files":null,"tree":[],"storefront":"/r/unkmonster","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/unkmonster/tmd/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}