X(Twitter)的 yt-dlp 命令生成器
为 X 上的视频生成 yt-dlp 命令,文件名可预测,并带上敏感内容所需的选项。
X 注意事项
x.com 和 twitter.com 的网址都可以用。大家在 X 上称作 GIF 的其实是短 MP4 视频,所以它们和普通视频一样下载;如果真的需要 GIF,之后再转换。
敏感内容的帖子需要一个开启了相应设置的登录会话。默认模板用作者和帖子 id 命名文件,这样即使一个目录里放满这类文件也还能翻得动。
X 已多次改换它的 API 表面,实际后果是 extractor 修复会在几天内随 yt-dlp 更新送达——"X 坏了"的报告大多出自几周以上的旧安装。先更新再排查:yt-dlp -U。访客访问时有时无;被收回时,带 cookies 的登录会话就是能走的路,也是到敏感内容的唯一一条路。
帖串和引用帖是网址最容易搞混的地方。带视频的推文把视频嵌在里面;同一条视频出现在主页媒体标签页上则是另一个条目。要抓整个账号,媒体标签页的网址会分页取走所有带媒体的帖子;记录文件加上出错继续,则能处理活跃账号必然积累的已删帖子。搜索网址的下载在这里被有意排除:结果会在请求间漂移,对一条会移动的搜索做归档毫无意义。
X 大多数情况下以 HLS 分片加 MP4 回退的方式提供视频,所以合并很常见,ffmpeg 是第一个该检查的依赖。"GIF" 帖子是值得知道的例外:它们和其他内容一样以 MP4 到手,之后转成真正的 GIF 是 ffmpeg 的活,不是 yt-dlp 的活——而一个能循环的 WebM 往往更接近发送者的本意。
年龄限制和敏感帖子是硬墙:设置在账号里,不在命令里。在浏览器里登录一次、打开敏感内容设置、交出 cookies,就能用了——不存在绕开 cookies 的办法,因为 X 在服务端校验会话。已删帖子和别处一样:没了就是没了,从前保存镜像的站几年前就关闭了。