60 lines
2.0 KiB
C#
60 lines
2.0 KiB
C#
using System;
|
|
using System.Diagnostics;
|
|
using System.Net;
|
|
|
|
namespace TeleTok
|
|
{
|
|
public class VidDownload
|
|
{
|
|
// Takes the scraped TikTok URL and appends it to the proxy downloader link then returns it
|
|
public static string TikTokURL(string videourl)
|
|
{
|
|
string url = videourl;
|
|
string proxyUrl;
|
|
|
|
TeleTok.LogMessage("Video for " + videourl + " processing..");
|
|
|
|
if(url.Contains("vm.tiktok.com"))
|
|
{
|
|
url = UnshortenUrl(url);
|
|
}
|
|
|
|
proxyUrl = CreateDownloadLink(url);
|
|
|
|
TeleTok.LogMessage("Sending video link for " + proxyUrl);
|
|
|
|
return proxyUrl;
|
|
}
|
|
|
|
// Runs the URL through a web request then returns the full url
|
|
static string UnshortenUrl(string videourl)
|
|
{
|
|
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(videourl);
|
|
req.AllowAutoRedirect = false;
|
|
var resp = req.GetResponse();
|
|
string realUrl = resp.Headers["Location"];
|
|
|
|
return realUrl;
|
|
}
|
|
|
|
//Breaks apart the URL and extracts the User and Video ID to be processed into a working download link
|
|
static string CreateDownloadLink(string videourl)
|
|
{
|
|
Uri segmentedUri = new Uri(videourl);
|
|
segmentedUri = new Uri(segmentedUri.AbsoluteUri.Replace(segmentedUri.Query, string.Empty));
|
|
|
|
string videoUser = segmentedUri.Segments[1];
|
|
videoUser = videoUser.Replace(@"/", "");
|
|
string videoID = segmentedUri.Segments[3];
|
|
|
|
string fixedUrl = "https://www.tiktok.com/" + videoUser + "/video/" + videoID + @"&id=" + videoID + @"&user=" + videoUser.Remove(0, 1);
|
|
|
|
string proxyLink = TeleTok.ptInstance + "/download?url=" + fixedUrl;
|
|
|
|
TeleTok.LogMessage("Input User ID is: " + videoUser);
|
|
TeleTok.LogMessage("Input video ID is: " + videoID);
|
|
|
|
return proxyLink;
|
|
}
|
|
}
|
|
} |