PS:2021年11月1号验证可行,之后我也不确定

前言

我之前有一个开源项目里面也集成了头条和西瓜视频的去水印,由于自己工作问题,没时间去更新这个项目,本身这个项目我也找不到能够提升我技术的意义。所以不再进行太多更新。

测试链接

分析过程

直接用PC打开上面的链接(打开开发者工具) alt 可以看到的是播放所播放的视频是没有水印的,这离我们得到无水印的视频近了一步。这时候我们需要看到开发者工具,找找这个视频所在的接口(也有可能是在js)。

看了一会儿,没找到接口,那么我们现在只能看看页面的html代码是否有相关的信息 alt 直接搜索main_url,发现确实有内容。发现是json(拿正则去匹配出来) alt 看到main_url是这个base64,先解看看

打开视频地址后是没有声音的。我预先看了一下发现没有有声音的无水印的视频。(完)

总结

  • 直接打开短链接提取视频地址是没有声音的视频地址
  • 视频地址和音频地址是分开的
  • 只能通过工具进行合成

阳光宽频网(可行方案)

分析一下阳光宽频,这个也是西瓜视频旗下的。 先打开一个视频看看 alt 发现播放也是没有水印的,这时候可以确认的是这个网站可行

如何查找我就不教了 下面是我写的获取详情的代码

// 真实URL(舍弃参数):https://www.toutiao.com/a7006882589550379527/
// 真实URL: https://www.ixigua.com/7012806264887443976?app=video_article&timestamp=1634989648&utm_source=copy_link&utm_medium=android&utm_campaign=client_share
// https://www.365yg.com/xigua/play/?GroupID=7012806264887443976
// 视频id获取方法,在短链接302定向之后可以得到
url := "https://www.365yg.com/xigua/play/?GroupID=" + videoId
bs, errs := shttp.Get(url).
    UserAgent(UserAgentAndroid).
    Bytes()
if len(errs) != nil {
    return nil, serrors.Error(HttpErrCode, errs.FirstError())
}

如何得到视频地址? PackedJson json反序列化后,video_play_info再次json反序列化。可以得到视频播放详情界面 里面也有一个main_url,进行base64解码后即可获得无水印视频

得到的视频地址是无水印且有声音

再次总结

  • 通过阳光宽频网得到的视频是无水印且有声音
  • 但是视频只有到720p,没办法得到1080p,很可惜

看到这里就结束了,如果你有其他方案可以进行讨论!

说点什么
支持Markdown语法
一个能打的评论都没有,要不我留一条试试?
Loading...