我正在使用Twitter Media API将视频上传到Twitter,然后尝试调用FINALIZE。 继续得到: "大文件无法同步完成。"
result = new RequestBuilder(oauth, "POST", "https://upload.twitter.com/1.1/media/upload.json")
.AddParameter("command", "FINALIZE")
.AddParameter("media_id", media_id)
.Execute().Result;
//code from Execute
try
{
response = await request.GetResponseAsync().ConfigureAwait(false);
using (var stream = response.GetResponseStream())
{
using (var reader = new StreamReader(stream))
{
content = reader.ReadToEnd();
}
}
}
catch (WebException ex)
{
using (var stream = ex.Response.GetResponseStream())
{
using (var reader = new StreamReader(stream))
{
content = reader.ReadToEnd();
}
}
throw;
}
finally
{
if (response != null)
{
((IDisposable)response).Dispose();
}
}
答案 0 :(得分:0)
我从未收到此异常。您是否尝试过使用tweetinvi并查看它是否适用于同一个文件?
请注意,Twitter仅支持15MB视频。
视频上传的Wiki:https://github.com/linvi/tweetinvi/wiki/Upload#upload-videos。视频会自动分块以满足Twitter要求(视频每块5MB)。
var video = File.ReadAllBytes("path");
var media = Upload.UploadVideo(video);
var tweet = Tweet.PublishTweet("hello", new PublishTweetOptionalParameters
{
Medias = { media }
});
如果您真的想手动执行此操作,仍然可以使用ChunkUploader
:
https://github.com/linvi/tweetinvi/wiki/Upload#chunked-uploads
答案 1 :(得分:0)
Twitter确实支持最大512Mb的较大视频,可以在以下页面找到要求:https://developer.twitter.com/en/docs/media/upload-media/uploading-media/media-best-practices
要上传较大的文件,必须在INIT调用中将media_category参数设置为“ tweet_video”。然后FINALIZE调用将为您提供您需要跟进STATUS命令调用的processing_info。
.post("media/upload", {
command: "INIT",
total_bytes: mediaSize,
media_type: mediaType,
media_category: 'tweet_video'
})