抖音去水印视频下载
public class AnalysisUrl
{
public int ErrorCode { get; private set; }
public string VideoUrl { get; private set; }
private HttpClient httpClient { get; set; }
public AnalysisUrl(string content)
{
using (httpClient = new HttpClient())
{
//var content = "#周杰伦 #陈赫开的火锅店 陈赫在长沙招待我们杰迷#长沙贤合庄五一广场asdf https://v.douyin.com/JhdV1kM/ a复制此链接,打开【抖音短视频】,直接观看视频!";
var url = GetUrlFromText(content).Result;
Console.WriteLine(url);
if (string.IsNullOrWhiteSpace(url))
{
Console.WriteLine("无法提取url");
this.ErrorCode = -1;
return;
}
var fullurl = GetFullUrl(url).Result;
Console.WriteLine(fullurl);
if (fullurl == null)
{
Console.WriteLine("无法提取fullurl");
this.ErrorCode = -2;
return;
}
var id = GetId(fullurl.ToString()).Result;
Console.WriteLine(id);
if (string.IsNullOrWhiteSpace(id))
{
Console.WriteLine("无法提取id");
this.ErrorCode = -3;
return;
}
var videoUrl = GetVideoUrl(id).Result;
if (string.IsNullOrWhiteSpace(videoUrl))
{
Console.WriteLine("无法提取VideoUrl");
this.ErrorCode = -4;
return;
}
this.ErrorCode = 0;
this.VideoUrl = videoUrl;
}
}
public async Task<string> GetUrlFromText(string content)
{
Match match = Regex.Match(content, @".*http([a-zA-Z0-9:/\._-]+).*");
if (match.Success)
{
return await Task.FromResult($"http{match.Groups[1].Value}");
}
return "";
}
public async Task<Uri> GetFullUrl(string shortUrl)
{
var response = await httpClient.GetAsync(shortUrl);
return response.RequestMessage.RequestUri;
}
public async Task<string> GetId(string fullurl)
{
Match match = Regex.Match(fullurl, @".*video/([\d]+).*");
if (match.Success)
{
return await Task.FromResult($"{match.Groups[1].Value}");
}
return "";
}
public async Task<string> GetVideoUrl(string id)
{
var url = $"https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids={id}";
var response = await httpClient.GetStringAsync(url);
if (string.IsNullOrWhiteSpace(response))
{
return "";
}
var data = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(response);
var videoUrl = (string)data.item_list[0].video.play_addr.url_list[0];
videoUrl = videoUrl.Replace("playwm", "play");
var requestMessage = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri(videoUrl)
};
requestMessage.Headers.Add("User-Agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1");
requestMessage.Headers.Add("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
requestMessage.Headers.Add("accept-encoding", "gzip, deflate, br");
requestMessage.Headers.Add("accept-language", "zh-CN,zh;q=0.9");
requestMessage.Headers.Add("Connection", "keep-alive");
var video_response = await httpClient.SendAsync(requestMessage);
return video_response.Headers.Location.AbsoluteUri.Replace("http","https");
}
}
写了一个抖音去水印的微信小程序,感兴趣的可以玩下

合作交流:QQ1642487217

浙公网安备 33010602011771号