美拍解析去水印原理,sign签名算法,获得无水印播放地址

本文探讨如何在美拍APP中获取无水印视频地址,由于网页端不再提供,作者转向分析APP网络请求。通过抓包发现返回视频信息的接口,并解析关键参数sign的生成过程,包括获取时间戳、字符串拼接、MD5加密及值互换等步骤,为获取无水印播放地址提供了方法。
摘要由CSDN通过智能技术生成
QQ_qun= "1020598620";

不知道在看这篇文章前,是否有看到网上很多逆向js拿美拍美拍视频地址的方法,因为现在美拍网页端已经不返回无水印地址了,所以这个方法也就无用了,因此只有从APP下手。

先随便那一个分享链接

奶奶教你不花一分Q吃火锅!#传递正能量# http://www.meipai.com/media/1202978302?client_id=1089857299&utm_media_id=1202978302&utm_source=meipai_share&utm_term=meipai_ios&gid=2101594306

因为网页上已经没有无水印地址了,就不浪费时间,直接抓手机包。

通过抓包发现了返回视频地址的接口

http://api.meipai.com/medias/show.json?is_from_scroll=0&teenager_status=0&scroll_num=0&mac=00:81:e8:3e:2f:6a&resolution=1080*1920&client_id=1089857302&lon=116.410254&id=1202978302&from=13&local_time=1592463419&stat_gid=24465787&lat=39.916409&os=5.1.1&version=8.15&imei=865166025541999&device_id=865166025541999&iccid=89860075053102816171&channel=baidu&origin_channel=baidu&android_id=c697c427f5801f39&network=wifi&model=xiaomi&language=zh-Hans&sigTime=1592463419&sig=78527a8a6f00435e0fa3118f42c65a68&sigVersion=1.3

通过接口可以返回如下信息

{
    "id":1202978302,
    "client_id":1089857302,
    "caption":"奶奶教你不花一分Q吃火锅!#传递正能量#",
    "entry_info":null,
    "weibo_share_caption":"#美拍#奶奶教你不花一分Q吃火锅!#传递正能量#",
    "facebook_share_caption":"",
    "weixin_share_caption":"分享@猪屁登 的美拍",
    "weixin_friendfeed_share_caption":"奶奶教你不花一分Q吃火锅!#传递正能量#",
    "qzone_share_caption":"奶奶教你不花一分Q吃火锅!#传递正能量#",
    "qq_share_caption":"奶奶教你不花一分Q吃火锅!#传递正能量#",
    "instagram_share_caption":"分享猪屁登的美拍“奶奶教你不花一分Q吃火锅!#传递正能量#”,快来看看!",
    "weixin_share_sub_caption":"来跟我一起玩美拍吧~",
    "weixin_friendfeed_share_sub_caption":"来跟我一起玩美拍吧~",
    "qzone_share_sub_caption":"来跟我一起玩美拍吧~",
    "qq_share_sub_caption":"来跟我一起玩美拍吧~",
    "geo":null,
    "video":"http://mvvideo11.meitudata.com/5eacf279d5595tpm0f7wsl8930_H264_1_6c722f87a4874.mp4?k=a3e7f7a29a80b0679032bee10eca7827&t=5eef04e6",
    "url":"http://www.meipai.com/media/1202978302?client_id=1089857302&utm_media_id=1202978302&utm_source=meipai_share&utm_term=meipai_android&gid=24465787",
    "cover_pic":"http://mvimg10.meitudata.com/5eab9ed9b1cefmfx158imz4077.jpg",
    "pic_size":"720*1280",
    "category":3,
    "time":149,
    "is_long":true,
    "show_controls":true,
    "created_at":"1588392604",
    "comments_count":102,
    "likes_count":3314,
    "reposts_count":2,
    "user":{
        "id":1706927454,
        "screen_name":"猪屁登",
        "country":2630000,
        "province":2631700,
        "city":2631710,
        "avatar":"http://maavatar1.meitudata.com/5d8d8206f396e7081.jpg",
        "gender":"m",
        "birthday":"1999-01-02",
        "age":21,
        "constellation":"魔羯座",
        "verified":true,
        "verified_reason":"美拍达人",
        "followers_count":165638,
        "friends_count":0,
        "reposts_count":0,
        "videos_count":293,
        "courses_count":0,
        "real_videos_count":293,
        "photos_count":0,
        "locked_videos_count":0,
        "real_locked_videos_count":0,
        "locked_photos_count":0,
        "be_liked_count":1555248,
        "following":false,
        "followed_by":false,
        "url":"http://www.meipai.com/user/1706927454?client_id=1089857302&gid=24465787&uid=0&utm_user_id=1706927454&utm_content=test&utm_source=meipai_share&utm_term=meipai_android",
        "created_at":1563353716,
        "has_password":false,
        "status":"5",
        "is_funy_core_user":false,
        "funy_core_user_created_at":0,
        "last_publish_time":0,
        "income_daily":0,
        "level":1,
        "has_assoc_phone":false,
        "decorate_avatar_user":"",
        "decorate_avatar_comment":"",
        "prefer_media_id":0,
        "member_info":{
            "is_member":0,
            "expired_at":0
        },
        "core_user_category":7,
        "weibo_share_caption":"猪屁登在美拍获得了1555248个赞,快来看看",
        "facebook_share_caption":"@猪屁登在美拍获得了1555248个赞,快来看看",
        "weixin_share_caption":"@猪屁登在美拍获得了1555248个赞,快来看看",
        "weixin_friendfeed_share_caption":"@猪屁登在美拍获得了1555248个赞,快来看看",
        "qzone_share_caption":"@猪屁登在美拍获得了1555248个赞,快来看看",
        "qq_share_caption":"@猪屁登在美拍获得了1555248个赞,快来看看",
        "instagram_share_caption":"@猪屁登在美拍获得了1555248个赞,快来看看",
        "weixin_share_sub_caption":"来跟我一起玩美拍吧~",
        "weixin_friendfeed_share_sub_caption":"来跟我一起玩美拍吧~",
        "qzone_share_sub_caption":"来跟我一起玩美拍吧~",
        "qq_share_sub_caption":"来跟我一起玩美拍吧~",
        "collection_permission":1
    },
    "cur_lives_id":"",
    "cur_lives_type":0,
    "cur_lives_stream_type":0,
    "cur_lives_scheme":"",
    "cur_yy_actid":"",
    "feed_id":"6662201454402235027",
    "locked":false,
    "type":5,
    "caption_url_params":[

    ],
    "privacy_config":{
        "allow_save_medias":1,
        "forbid_stranger_comment":0,
        "forbid_address_book":0,
        "forbid_using_user_profile":0,
        "forbid_comment":0,
        "forbid_repost":0
    },
    "has_watermark":0,
    "refuse_gift":true,
    "refuse_gift_reason":"送礼功能已下线",
    "hide_gift_btn":true,
    "convert_cover_pic":"http://mvimg10.meitudata.com/5eacf2a1f09791695.jpg",
    "ar_magic_info":null,
    "aside_info":null,
    "convert_pic_size":"720*1055",
    "cover_pic_resize":"0,225,1010,1346",
    "m_plan":false,
    "first_frame_pic":"http://mvimg10.meitudata.com/5ed9953658bdc2239.jpg",
    "first_frame_pic_size":"720*1280",
    "is_safe":1,
    "is_safe2":1,
    "miniprogram_data":{
        "path":"/pages/index/index?from=app&vid=1202978302&uid=&utm_source=meipai_share&utm_term=meipai_android&viewCount=1&shareCount=1&gid=&utm_media_id=1202978302&utm_user_id=1706927454&utm_target_uid=&utm_target_gid=24465787",
        "title":"奶奶教你不花一分Q吃火锅!#传递正能量#",
        "desc":"",
        "pic":"http://mvimg10.meitudata.com/5eab9ed9b1cefmfx158imz4077.jpg"
    },
    "cover_title":"",
    "dangerous_action":false,
    "category_tag_id":0,
    "recommend_caption":null,
    "recommend_cover_pic":null,
    "recommend_cover_pic_size":null,
    "user_recommend_cover_pic":"http://mvimg10.meitudata.com/5eacf279ef00ercuf7e5fv686.jpg",
    "user_recommend_cover_pic_size":"720*958",
    "comments_list":[
        {
            "id":1508560602,
            "content":"奶奶👵每次都是厉害👍[捂脸][捂脸]",
            "picture":"",
            "picture_thumb":"",
            "created_at":1588393276,
            "user":{
                "id":1726984648,
                "screen_name":"🙈教查优-蕙-卷🙈"
            }
        },
        {
            "id":1508559244,
            "content":"太爽了",
            "picture":"",
            "picture_thumb":"",
            "created_at":1588393139,
            "user":{
                "id":1654783106,
                "screen_name":"毕木痒深X"
            }
        }
    ],
    "is_prefer":0,
    "like_users_info":[
        {
            "id":"1491171443",
            "avatar":"http://mvavatar10.meitudata.com/5c6a14fb920d7aa0yhg8sr2986.jpg",
            "screen_name":"楠🍀🍀🍀"
        },
        {
            "id":1768897756,
            "avatar":"http://mvimg11.meitudata.com/5eead9258615abf2t247nn3418.jpg",
            "screen_name":"琳花寻爱"
        }
    ],
    "collection":{
        "id":1167,
        "title":"猪屁登的世界",
        "medias_count":246,
        "plays_count":65746758,
        "index":209,
        "user":{
            "id":1706927454
        },
        "cover_pic":"",
        "recommend_cover_pic":"http://mvimg11.meitudata.com/5ea53c055ee2f9459.jpg",
        "status":1
    },
    "liked":false,
    "plays_count":161752,
    "show_plays_count":true,
    "shares_count":27,
    "ip":"114.235.64.232"
}

筛选掉无用的参数后来分析下面的参数

参数说明
id1202978302视频id
sigTime1592463652参与加密的时间戳
sigee53d98e26dd2e04105fcaaf95021e45请求前签名
sigVersion1.3签名版本

跳过逆向部分,总之是分析完毕,sign的计算如下(伪代码):

//(请求时间戳)
var ts =1592463652;
var md5 =("medias/show.json" + id + "bdaefd747c7d594f" + ts + "Tw5AY783H@EU3#XC").StringToMD5Hash();
//将md5相邻两个值互换位置
//例如:
//ee359de862dde24001f5acfa5920e154
//ee53d98e26dd2e04105fcaaf95021e45
var sig="";
for (int i = 0; i < md5.Length; i++)
{
	if (i % 2 == 0)
	{
		sig+= md5[i + 1].ToString() + md5[i].ToString();
	}
}

分析如下:

  1. 获取时间戳
  2. 拼接字符串进行md5加密
  3. 将md5相邻两个值互换位置

源码如下:

long ts = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
var id = url.GetQueryString("utm_media_id");
var md5 = ("medias/show.json" + id + "bdaefd747c7d594f" + ts + "Tw5AY783H@EU3#XC").StringToMD5Hash();
//将md5相邻两个值互换位置
var sig = "";
for (int i = 0; i < md5.Length; i++)
{
	if (i % 2 == 0)
	{
	sig += md5[i + 1].ToString() + md5[i].ToString();
	}
}
var query = "medias/show.json?id="+ id + "&sigTime=" + ts + "&sig=" + sig + "&sigVersion=1.3";
using var client = _httpClient.CreateClient();
client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.14 Safari/537.36 Edg/83.0.478.13");
var httpResponse = await client.GetAsync("http://api.meipai.com/" + query);
var json= await httpResponse.Content.ReadAsStringAsync();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChouYuc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值