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"
}
筛选掉无用的参数后来分析下面的参数
参数 | 值 | 说明 |
---|---|---|
id | 1202978302 | 视频id |
sigTime | 1592463652 | 参与加密的时间戳 |
sig | ee53d98e26dd2e04105fcaaf95021e45 | 请求前签名 |
sigVersion | 1.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();
}
}
分析如下:
- 获取时间戳
- 拼接字符串进行md5加密
- 将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();