I'm reading tweets using the following code, it works fine but the media object is always empty even if the tweet has a picture but it works fine if the tweet has a video instead of picture!
var stream = userClient.Streams.CreateFilteredStream();
stream.TweetMode = Tweetinvi.TweetMode.Extended;
var twitterUser = await userClient.Users.GetUserAsync(username);
stream.AddFollow(twitterUser);
stream.MatchingTweetReceived += (sender, eventReceived) =>
{
if(!eventReceived.Tweet.Retweeted)
Console.WriteLine(eventReceived.Tweet);
};
await stream.StartMatchingAllConditionsAsync();
I was debugging every tweets and verify that each one has a picture in twitter website.

The
Mediamember ofITweetis aList<IMediaEntity>. It's possible for this list to be empty. Using the below code, I was able to receive tweets with theirMediamember containingIMediaEntityobjects:Console Output:
You can check the
IMediaEntity.MediaTypemember to see what kind of media it is. I haven't been able to find documentation of what values this can be set to, but so far, I've seen:photovideoanimated_gifNote that the
URLmember of theIMediaEntityobject is the link to the tweet itself. If you are after the picture itself,MediaURLorMediaURLHttpswill contain the link to only the picture (for videos and animated GIFs, these members are the link to the thumbnail picture instead).