本帖最后由 dpc520 于 2022-10-25 22:36 编辑
皮皮虾无水印解析源码
微视无水印解析源码
皮皮搞笑无水印解析
抖音无水印解析源码
快手无水印解析源码
快手抖音都写出来了 给个免费的评分支持一下
直接调用简单粗暴
[C#] 纯文本查看 复制代码 Xg x = new Xg("https://www.ixigua.com/7136468208252355102?logTag=73864750a7ab63812068");
// Console.WriteLine(x.GetHeightMp4()); 得到视频质量最高的视频地址
// x.Get2160(); //得4k视频 如无返回空
// x.Get1080Mp4(); 得到1080分辨率视频 无返回空 ""
// x.GetTitle 得到视频标题
这是封装好的类[C#] 纯文本查看 复制代码 using HtmlAgilityPack;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Net;
using System.Text.RegularExpressions;
using System.Net.Http;
namespace Xg
{
public class Xg
{
HtmlDocument Doc; //html
JObject Json;//作品信息的JSON
public Xg(string url)
{
if (url.Trim().Length == 29) GetHtml(ref url);
//得到长链接
GetHtml(ref url);
FormatJson( url);
//构造函数 初始化json
}
public void GetHtml(ref string url)
{
HttpWebRequest Beg = (HttpWebRequest)WebRequest.Create(url) ;
HttpWebResponse Ret;
Beg.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9";
Beg.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36";
Beg.Headers.Add("Cookie", "ixigua-a-s=1; support_webp=true; support_avif=true; __ac_nonce=063454b6b00d4f78b8c1d; __ac_signature=_02B4Z6wo00f01f4IbSQAAIDCNrSkOsNVka3-KGmAABzJw2Jh8-UbwMpJADtyfKsBlG8uSNRlG8WRe0WJiBnnELkHGl2E80Qf.kjxNadHrUn3v1W-GR26riqXDqj.K.pu2jq57uPdJk8Z3oyK9c; _tea_utm_cache_1300=undefined; MONITOR_WEB_ID=7124914227890439694; ttwid=1%7CszSdFxHrf6xg5cThiKwJhsMNpw4Kpimnyepj1FIscYc%7C1665485824%7C1d015107dbdf704a70f6fc74722077d67f482d0b2d594a0652d360fe81baa93d; msToken=9JMXTpKWpn1A4K3t7lk7zDJXp1wxyaYuTlpCHyBvk1Z8o_TEQ7Sx-cOiniYgCyWBGGyghf97aS1kZncgNsE_mITorQuoHn8o4-vsNbmGF_m5ZSXtUvrUFalMzFqFs94EZA==; tt_scid=0csR7YE-y3ussN5mJn0gntW9jOIrdQODNrv1YmNbOgtAtRZNjp1xD8xrTC.Jn.Qa8e09");
if (url.Trim().Length == 29)
{
Beg.AllowAutoRedirect = false;
Ret = (HttpWebResponse)Beg.GetResponse();
url = Ret.Headers["location"];
}
else {
Ret = (HttpWebResponse)Beg.GetResponse();
StreamReader Read = new StreamReader(Ret.GetResponseStream(), Encoding.UTF8);
url = Read.ReadToEnd();
Read.Dispose();
}
Ret.Dispose();
//得到html
}
public void FormatHtml(string str)
{
Doc = new HtmlDocument();
Doc.LoadHtml(str);
//初始化html
}
public void FormatJson(string str)
{
Doc = new HtmlDocument();
Doc.LoadHtml(str);
str = Doc.DocumentNode.SelectSingleNode("//body/script[@id='SSR_HYDRATED_DATA']").InnerText.Replace("window._SSR_HYDRATED_DATA=", "");
Json=JObject.Parse(str);
//初始化html
}
public string Get360Mp4()
{
return FormatBase64( Json["anyVideo"]["gidInformation"]["packerData"]["video"]["videoResource"]["normal"]["video_list"]["video_1"]["main_url"].ToString());
}
//360分辨率
public string Get480Mp4()
{
try {
return FormatBase64( Json["anyVideo"]["gidInformation"]["packerData"]["video"]["videoResource"]["normal"]["video_list"]["video_2"]["main_url"].ToString());
}
catch {
return string.Empty;
}
}
//480分辨率 如果上传的分辨率没超过480就返回空
public string Get720Mp4()
{
try
{
return FormatBase64(Json["anyVideo"]["gidInformation"]["packerData"]["video"]["videoResource"]["normal"]["video_list"]["video_3"]["main_url"].ToString());
}
catch
{
return string.Empty;
}
//720分辨率 如果上传的分辨率没到达就返回空
}
public string Get1080Mp4()
{
try
{
return FormatBase64(Json["anyVideo"]["gidInformation"]["packerData"]["video"]["videoResource"]["normal"]["video_list"]["video_4"]["main_url"].ToString());
}
catch
{
return string.Empty;
}
//1080分辨率 如果上传的分辨率没到达就返回空
}
public string Get2160()
{
try
{
return FormatBase64(Json["anyVideo"]["gidInformation"]["packerData"]["video"]["videoResource"]["normal"]["video_list"]["video_5"]["main_url"].ToString());
}
catch
{
return string.Empty;
}
//4K
}
public string GetHeightMp4()
{
if (Get2160() != string.Empty) return Get2160(); //4k
if (Get1080Mp4() != string.Empty) return Get1080Mp4();//1080
if(Get720Mp4()!=string.Empty) return Get720Mp4(); //720
if (Get480Mp4() != string.Empty) return Get480Mp4(); //480
//得到分辨率最高的视频
return Get360Mp4(); //360
}
public string GetAouthorHeadImage()
{
return Regex.Unescape( Json["anyVideo"]["gidInformation"]["packerData"]["video"]["user_info"]["avatar_url"].ToString());
//作者头像
}
public string GetAouthorName()
{
return Json["anyVideo"]["gidInformation"]["packerData"]["video"]["user_info"]["name"].ToString();
}//作者名称
public string GetTitle()
{
return Json["anyVideo"]["gidInformation"]["packerData"]["video"]["title"].ToString();
}//作品标题
public string GetCover()
{
return Regex.Unescape( Json["anyVideo"]["gidInformation"]["packerData"]["video"]["poster_url"].ToString());
//作品封面
}
public string FormatBase64( string str)
{
byte[] array = Convert.FromBase64String(str);
return str = Encoding.UTF8.GetString(array);
//Base64解密 获得视频的方法都需要调用他
}
}
}
|