Untitled
unknown
plain_text
2 years ago
7.0 kB
14
Indexable
public string UploadVideoPage(string PageID, string video, string waterfall_id, string entry = "reel_composer_default_sfv_banner")
{
try
{
if (string.IsNullOrEmpty(Fb_dtsg))
{
Get("https://www.facebook.com").Wait();
}
#region Load 1
RestRequest request = new RestRequest($"https://business.facebook.com/ajax/video/upload/requests/start/?av={PageID}&__a=1");
//request.Timeout = -1;
request.AddHeader("sec-fetch-site", "same-origin");
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddHeader("x-fb-lsd", LSD);
request.AddHeader("x_fb_video_waterfall_id", waterfall_id);
request.AddHeader("User-Agent", UA);
request.AddParameter("fb_dtsg", Fb_dtsg);
request.AddParameter("LSD", LSD);
request.AddParameter("file_size", new FileInfo(video).Length);
request.AddParameter("file_extension", "mp4");
request.AddParameter("target_id", PageID);
request.AddParameter("__user", UID);
request.AddParameter("__a", "1");
request.AddParameter("waterfall_id", waterfall_id);
request.AddParameter("source", "composer");
request.AddParameter("composer_entry_point_ref", entry);
request.AddParameter("supports_chunking", "true");
request.AddParameter("supports_file_api", "true");
request.AddParameter("partition_start_offset", "0");
request.AddParameter("partition_end_offset", new FileInfo(video).Length);
request.AddParameter("has_file_been_replaced", "false");
request.AddParameter("composer_dialog_version", "V2");
request.AddParameter("video_publisher_action_source[product]", "creator_studio");
request.AddParameter("video_publisher_action_source[feature]", "page_video_composer");
request.AddParameter("video_publisher_action_source[entry_point]", entry);
request.Method = Method.Post;
var response = Client.ExecuteAsync(request).Result;
var result = response.Content;
string video_id = RegexMatch(result, "\"video_id\":\"(\\d+)").Groups[1].Value;
#endregion
if (string.IsNullOrEmpty(video_id)) return "";
request = new RestRequest($"https://business.facebook.com/api/graphql/");
//request.Timeout = -1;
request.AddHeader("sec-fetch-site", "same-origin");
request.AddHeader("User-Agent", UA);
request.AddParameter("fb_dtsg", Fb_dtsg);
request.AddParameter("LSD", LSD);
request.AddParameter("variables", "{\"source_type\":\"composer\"}");
request.AddParameter("doc_id", "5166149316783263");
request.Method = Method.Post;
response = Client.ExecuteAsync(request).Result;
result = response.Content;
string link = RegexMatch(result, "\"targeted\":{\"service_name\":\"(.*?)\"").Groups[1].Value;
if (string.IsNullOrEmpty(link)) link = "rupload-lax3-2.up";
#region Load 2
request = new RestRequest($"https://{link}.facebook.com/fb_video/{RandomString(32)}??__user={UID}&__a=1&fb_dtsg={Fb_dtsg}");
//request.Timeout = -1;
request.AddHeader("sec-fetch-site", "same-origin");
request.AddHeader("offset", "0");
request.AddHeader("product_media_id", video_id);
request.AddHeader("x-entity-length", new FileInfo(video).Length.ToString());
request.AddHeader("x-entity-name", HttpUtility.UrlEncode(RegexEscape(new FileInfo(video).Name)));
request.AddHeader("x-entity-type", "video/mp4");
request.AddHeader("composer_session_id", waterfall_id);
request.AddHeader("x-total-asset-size", new FileInfo(video).Length.ToString());
request.AddHeader("Content-Type", "video/mp4");
request.AddHeader("User-Agent", UA);
request.AddParameter("video/mp4", File.ReadAllBytes(video), ParameterType.RequestBody);
request.Method = Method.Post;
response = Client.ExecuteAsync(request).Result;
result = response.Content;
string h = RegexMatch(result, "\"h\":\"(.*?)\"").Groups[1].Value;
string[] list = h.Split(new[] { "\\n" }, StringSplitOptions.RemoveEmptyEntries);
#endregion
request = new RestRequest($"https://business.facebook.com/ajax/video/upload/requests/receive/?av={PageID}&__a=1");
//request.Timeout = -1;
request.AddHeader("sec-fetch-site", "same-origin");
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddHeader("x_fb_video_waterfall_id", waterfall_id);
request.AddHeader("x-fb-lsd", LSD);
request.AddHeader("User-Agent", UA);
request.AddParameter("fb_dtsg", Fb_dtsg);
request.AddParameter("__a", "1");
request.AddParameter("waterfall_id", waterfall_id);
request.AddParameter("source", "composer");
request.AddParameter("composer_entry_point_ref", entry);
request.AddParameter("supports_chunking", "true");
request.AddParameter("supports_file_api", "true");
request.AddParameter("partition_start_offset", "0");
request.AddParameter("partition_end_offset", new FileInfo(video).Length.ToString());
request.AddParameter("start_offset", "0");
request.AddParameter("end_offset", new FileInfo(video).Length.ToString());
request.AddParameter("has_file_been_replaced", "false");
request.AddParameter("upload_speed", "0");
request.AddParameter("fbuploader_video_file_chunk", string.Join("\n", list));
request.AddParameter("target_id", PageID);
request.AddParameter("__user", UID);
request.AddParameter("video_id", video_id);
request.Method = Method.Post;
response = Client.ExecuteAsync(request).Result;
result = response.Content;
if (Regex.IsMatch(result, "\"start_offset\":(\\d+),\"end_offset\":(\\d+)"))
return video_id;
else return "";
}
catch { return ""; }
}
Editor is loading...