gallery-dl
gallery-dl copied to clipboard
Use BetterTwitFix (vxtwitter) API to fetch NSFW post on Twitter/X
Vxtwitter and any (authenticated?) BetterTwitFix instances have API that can fetch NSFW tweets. They use same URL structure as original Twitter link does. This API probably could be integrated to gallery-dl code to workaround sign in requirement for NSFW tweets and maybe login-gated tweets too although i have never experienced this case.
Example (NSFW WARNING):
https://api.vxtwitter.com/nighttime_fishy/status/1925583806943133885
{
"allSameType": true,
"article": null,
"combinedMediaUrl": "https://vxtwitter.com/rendercombined.jpg?imgs=https://pbs.twimg.com/media/GrkMRBcWYAAChUM.jpg,https://pbs.twimg.com/media/GrkMRBYWcAEWUyE.jpg",
"communityNote": null,
"conversationID": "1925583806943133885",
"date": "Thu May 22 16:05:29 +0000 2025",
"date_epoch": 1747929929,
"fetched_on": 1748780699,
"hasMedia": true,
"hashtags": [],
"lang": "und",
"likes": 2107,
"mediaURLs": [
"https://pbs.twimg.com/media/GrkMRBcWYAAChUM.jpg",
"https://pbs.twimg.com/media/GrkMRBYWcAEWUyE.jpg"
],
"media_extended": [
{
"altText": null,
"size": {
"height": 1954,
"width": 2048
},
"thumbnail_url": "https://pbs.twimg.com/media/GrkMRBcWYAAChUM.jpg",
"type": "image",
"url": "https://pbs.twimg.com/media/GrkMRBcWYAAChUM.jpg"
},
{
"altText": null,
"size": {
"height": 1954,
"width": 2048
},
"thumbnail_url": "https://pbs.twimg.com/media/GrkMRBYWcAEWUyE.jpg",
"type": "image",
"url": "https://pbs.twimg.com/media/GrkMRBYWcAEWUyE.jpg"
}
],
"pollData": null,
"possibly_sensitive": true,
"qrt": {
"allSameType": true,
"article": null,
"combinedMediaUrl": null,
"communityNote": null,
"conversationID": "1925309730437603680",
"date": "Wed May 21 21:56:24 +0000 2025",
"date_epoch": 1747864584,
"fetched_on": 1748780700,
"hasMedia": true,
"hashtags": [],
"lang": "en",
"likes": 383,
"mediaURLs": [
"https://pbs.twimg.com/media/GrgS_uFWEAEgCsn.jpg"
],
"media_extended": [
{
"altText": null,
"size": {
"height": 1024,
"width": 777
},
"thumbnail_url": "https://pbs.twimg.com/media/GrgS_uFWEAEgCsn.jpg",
"type": "image",
"url": "https://pbs.twimg.com/media/GrgS_uFWEAEgCsn.jpg"
}
],
"pollData": null,
"possibly_sensitive": true,
"qrtURL": null,
"replies": 8,
"replyingTo": null,
"replyingToID": null,
"retweetURL": null,
"retweets": 32,
"text": "Would I be cancelled if i drawed him doing things",
"tweetID": "1925309730437603680",
"tweetURL": "https://twitter.com/nighttime_fishy/status/1925309730437603680",
"user_name": "Guppenis 🔞",
"user_profile_image_url": "https://pbs.twimg.com/profile_images/1729179372014174214/uPRtIlxk_normal.jpg",
"user_screen_name": "nighttime_fishy"
},
"qrtURL": "https://twitter.com/i/status/1925309730437603680",
"replies": 14,
"replyingTo": null,
"replyingToID": null,
"retweet": null,
"retweetURL": null,
"retweets": 236,
"text": ":3",
"tweetID": "1925583806943133885",
"tweetURL": "https://twitter.com/nighttime_fishy/status/1925583806943133885",
"user_name": "Guppenis 🔞",
"user_profile_image_url": "https://pbs.twimg.com/profile_images/1729179372014174214/uPRtIlxk_normal.jpg",
"user_screen_name": "nighttime_fishy"
}