tweetinvi Частные загрузки для больших загрузок

Я пытаюсь загрузить файл с помощью tweetinvi. Загрузка файла работает для изображения, но тот же код не работает для видео (большое видео более 20 МБ)

я тут спрашивал а теперь отвечаю

Ошибка загрузки большого видео TweetInvi с нулевой ссылкой

поэтому я ищу другое решение. Есть фрагментированные загрузки tweetinvi. Я закодировал это, но оно не работает, оно не дает ошибки, но не работает.

  if (file.ContentType.Contains("video"))//video
                        {

                            var video1 = System.IO.File.ReadAllBytes(path);
                            var chunk = Upload.CreateChunkedUploader(); //Create an instance of the ChunkedUploader class (I believe this is the only way to get this object)

                            using (FileStream fs = System.IO.File.OpenRead(path))
                            {
                                chunk.Init("video/mp4", (int)fs.Length); //Important! When initialized correctly, your "chunk" object will now have a type long "MediaId"
                                byte[] buffer = new byte[video1.Length]; //Your chunk MUST be 5MB or less or else the Append function will fail silently.
                                int bytesRead = 0;

                                while ((bytesRead = fs.Read(buffer, 0, buffer.Length)) > 0)
                                {
                                    byte[] copy = new byte[bytesRead];
                                    Buffer.BlockCopy(buffer, 0, copy, 0, bytesRead);
                                    TimeSpan s = new TimeSpan();

                                    chunk.Append(copy, chunk.NextSegmentIndex.ToString()); //The library says the NextSegment Parameter is optional, however I wasn't able to get it to work if I left it out. 
                                }
                            }

                            var video = chunk.Complete(); //This tells the API that we are done uploading.
                            listMedia.Add(video); 


                        }

person user1688401    schedule 01.06.2017    source источник
comment
Я изучу ваш вопрос. Я добавил проблему на веб-сайт github по адресу github.com/linvi/tweetinvi/issues/528   -  person Linvi    schedule 14.06.2017


Ответы (1)


Я хотел сказать, что после работы над вашей ошибкой я смог определить проблему, с которой вы столкнулись.

Проблема в том, что вы не указали media_category загрузки.

В дополнение к этому вам нужно дождаться обработки мультимедиа Twitter.

В Tweetinvi 2.1 этот процесс должен быть упрощен. Пожалуйста, используйте следующий код:

var binary = File.ReadAllBytes(@"video_path");
var media = Upload.UploadVideo(binary);

// The upload is completed but it does not mean it succeeded!
if (!media.HasBeenUploaded)
{
    // Something went wrong during the upload. 
    // Please retry or check the video type/settings.
    return;
}

// Just wait for Twitter to have processed the upload (RECOMMENDED)
Upload.WaitForMediaProcessingToGetAllMetadata(media);

// Now the media is ready to be used in a Tweet
var tweet = Tweet.PublishTweet("hello", new PublishTweetOptionalParameters
{
    Medias = { media }
});

Подробнее о загрузке можно прочитать в обновленной документации: https://github.com/linvi/tweetinvi/wiki/Upload#upload-status-video

Наконец, обратите внимание, что в версиях 2.2 и 2.3 запланированы дальнейшие улучшения загрузки.

Хорошего дня и спасибо, что сообщили об этой проблеме,

Ура Линви

person Linvi    schedule 10.10.2017