public IMedia WaitForMediaProcessingToGetAllMetadata(IMedia media) { var isProcessed = IsMediaProcessed(media.UploadedMediaInfo); if (isProcessed) { return(media); } var processingInfoDelay = media.UploadedMediaInfo.ProcessingInfo.CheckAfterInMilliseconds; var dateWhenProcessingCanBeChecked = media.UploadedMediaInfo.CreatedDate.Add(TimeSpan.FromMilliseconds(processingInfoDelay)); var timeToWait = (int)DateTime.Now.Subtract(dateWhenProcessingCanBeChecked).TotalMilliseconds; IUploadedMediaInfo mediaStatus = null; while (!isProcessed) { _threadHelper.Sleep(timeToWait); // The second parameter (false) informs Tweetinvi that you are manually awaiting the media to be ready mediaStatus = _uploadQueryExecutor.GetMediaStatus(media, false); isProcessed = IsMediaProcessed(mediaStatus.ProcessingInfo); timeToWait = mediaStatus.ProcessingInfo.CheckAfterInMilliseconds; } media = media.CloneWithoutUploadInfo(); media.UploadedMediaInfo = mediaStatus; return(media); }