又来一个!去水印工具再添火山小视频,比破解抖音简单太多

程序员内点事

共 2553字,需浏览 6分钟

 ·

2020-10-01 16:48

节前的最后一天班,整点没用的知识吧!

这不是前些天和女朋友赌气,做了个抖音去水印工具嘛,《手写一个抖音视频去水印工具,千万别刚一个程序员》,后来把它部署到线上让小伙伴们体验了下,结果反响还挺好,不少人对去抖音水印有了个新的认识,还有不少好心的小伙伴担心我被抖音爸爸收拾了,哈哈~ 感谢大家关心目前暂时安全。

尽管不是什么太有技术含量的东西,但做出来有人用有人赏识,心里多少还是有点小成就感。

既然抖音去水印是这样,那其他平台是不是原理也差不多呢?在好奇心的驱动下,我开始对火山小视频下手了!

(建议用谷歌浏览器),工具线上预览效果:http://47.93.6.5:8888/index

在这里插入图片描述

找了一个火山小视频的分享链接,还按照抖音去水印的思路来分析,我们来看看它会不会也有一个像抖音一样的视频详情接口?

https://share.huoshan.com/hotsoon/s/Ig5POVmqLb8/

URL 贴到浏览器上, F12 进入控制台发现还真有一个详情接口,判断item_id 就是视频的唯一ID。

https://share.huoshan.com/api/item/info?item_id=6873627998554164487&t=1601453437526&_signature=pcZzzAAgEAVNHFGxrDixf6XGc9AAPrB
在这里插入图片描述

再看它的返回结果,发现只有封面 cover 和 水印视频地址 URL 信息并不是很详细。上次分析抖音的无水印视频 URL 运气的成分比较大,这次火山的鼓捣了挺长时间,真是无从下手,最后没办法只能咨询百度了。

https://api.huoshan.com/hotsoon/item/video/_reflow/?video_id=v0200c3e0000bti0gft6aoef18eb3k0g&line=0&app_id=0&vquality=normal&watermark=2&long_video=0&sf=5&ts=1601453598&item_id=6873627998554164487

网上说把_reflow 替换成 _playback 就可以,我尝试了一下替换没生效,水印依然在。但我看到有一个眼熟的参数 watermark,这不就是水印的意思嘛,去掉这个参数又试了一下成功了。

https://api.huoshan.com/hotsoon/item/video/_playback/?video_id=v0200c3e0000bti0gft6aoef18eb3k0g&line=0&app_id=0&vquality=normal&watermark=2&long_video=0&sf=5&ts=1601453598&item_id=6873627998554164487

后台的代码比抖音的少很多,因为这个步骤并没有那么复杂。

    @Override
    public ResultDto hsParseUrl(String redirectUrl) throws Exception {

        redirectUrl = CommonUtils.getLocation(redirectUrl);

        ResultDto dyDto = new ResultDto();

        if (!StringUtils.isEmpty(redirectUrl)) {

            /**
             * 1、拿到itemId
             */

            String itemId = CommonUtils.hSMatchNo(redirectUrl);

            StringBuilder sb = new StringBuilder();
            sb.append(CommonUtils.HUO_SHAN_BASE_URL).append(itemId);

            /**
             * 2、itemId 拼接视频详情接口
             */

            String videoResult = CommonUtils.httpGet(sb.toString());

            HSResult hsResult = JSON.parseObject(videoResult, HSResult.class);

            dyDto.setVideoPic(hsResult.getData().getItem_info().getCover());

            /**
             * 3、替换URL地址
             */

            String replace = hsResult.getData().getItem_info().getUrl().replace("_reflow""_playback");

            dyDto.setVideoUrl(replace.substring(0, replace.indexOf("&")));

            dyDto.setDesc("火山小视频");
        }
        return dyDto;
    }

好了今天就到这,本文源码在 公众号回复【源码】自取


如果对你有用,欢迎 在看、点赞、转发 ,您的认可是我最大的动力。

整理了几百本各类技术电子书,送给小伙伴们。关注公号回复【666】自行领取。和一些小伙伴们建了一个技术交流群,一起探讨技术、分享技术资料,旨在共同学习进步,如果感兴趣就加入我们吧!


关注,迈开成长的第一步


浏览 23
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报