toMedia
平台专项

Twitter / X

Twitter(X) 视频与音频下载指南

🐦 Twitter / X 下载指南

基础视频下载

# 下载推文中的视频
yt-dlp "https://x.com/user/status/1234567890"

# twitter.com 和 x.com 域名都支持
yt-dlp "https://twitter.com/user/status/1234567890"
import yt_dlp

url = "https://x.com/user/status/1234567890"

with yt_dlp.YoutubeDL() as ydl:
    ydl.download([url])

指定画质

# 下载最高画质
yt-dlp -f "best" "https://x.com/user/status/1234567890"

# 限制 720p
yt-dlp -f "best[height<=720]" "https://x.com/user/status/1234567890"

# 查看可用格式
yt-dlp -F "https://x.com/user/status/1234567890"
import yt_dlp

ydl_opts = {
    'format': 'best[height<=720]',
}

with yt_dlp.YoutubeDL(ydl_opts) as ydl:
    ydl.download(["https://x.com/user/status/1234567890"])

提取音频

# 从推文视频中提取音频
yt-dlp -x --audio-format mp3 "https://x.com/user/status/1234567890"

# 提取最佳音质
yt-dlp -x --audio-quality 0 "https://x.com/user/status/1234567890"
import yt_dlp

ydl_opts = {
    'extract_audio': True,
    'postprocessors': [{
        'key': 'FFmpegExtractAudio',
        'preferredcodec': 'mp3',
        'preferredquality': '0',
    }],
}

with yt_dlp.YoutubeDL(ydl_opts) as ydl:
    ydl.download(["https://x.com/user/status/1234567890"])

Twitter Spaces(语音直播)

# 下载 Twitter Spaces 音频
yt-dlp "https://x.com/i/spaces/1eaKbrPLqAbKX"

# 录制正在进行的 Space(需要等待结束)
yt-dlp --wait-for-video 30 "https://x.com/i/spaces/SPACE_ID"
import yt_dlp

ydl_opts = {
    'wait_for_video': (30, None),  # 每30秒检查一次
}

with yt_dlp.YoutubeDL(ydl_opts) as ydl:
    ydl.download(["https://x.com/i/spaces/SPACE_ID"])

需要登录的内容

部分推文(如私密账号、敏感内容)需要登录才能访问:

# 使用浏览器 Cookies
yt-dlp --cookies-from-browser chrome "https://x.com/user/status/1234567890"

# 使用导出的 cookies 文件
yt-dlp --cookies twitter-cookies.txt "https://x.com/user/status/1234567890"
import yt_dlp

ydl_opts = {
    'cookiesfrombrowser': ('chrome',),
}

with yt_dlp.YoutubeDL(ydl_opts) as ydl:
    ydl.download(["https://x.com/user/status/1234567890"])

批量下载用户时间线

# 批量下载(将链接放入文件)
echo "https://x.com/user/status/111111" > twitter-urls.txt
echo "https://x.com/user/status/222222" >> twitter-urls.txt
yt-dlp -a twitter-urls.txt

# 统一命名
yt-dlp -a twitter-urls.txt -o "%(uploader)s - %(id)s.%(ext)s"

yt-dlp 不支持直接抓取用户主页的所有视频,只能逐条推文下载。如需批量获取用户推文链接,需要借助第三方工具(如 gallery-dl 或 Twitter API)。

常见问题

报错 HTTP Error 403: Forbidden

Twitter 经常更新 API,确保使用最新版 yt-dlp:

yt-dlp -U

如果更新后仍然报错,尝试加上 Cookies:

yt-dlp --cookies-from-browser chrome "URL"

GIF 下载

Twitter 上的「GIF」本质上是短循环 MP4 视频,yt-dlp 会以视频格式下载:

yt-dlp "https://x.com/user/status/GIF_TWEET_ID"
# 输出为 .mp4 文件

On this page