Hook抖音用户信息id,secUid

本文详细介绍了如何使用Xposed框架的hook技术来获取抖音APP中用户登录的userId和sec_uid。通过解析com.bytedance.android.live.base.model.user.User实体类的相关方法,展示了在安卓应用层动态拦截并分析接口数据的过程,揭示了客户端生成用户标识的逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

抖音版本16.3.0,hook方式xposed

在采集APP数据的时候很多接口都会用到userId和sec_uid,通过抓取接口webcast/user可以看到id都是由客户端生成的

用户信息

实体类com.bytedance.android.live.base.model.user.User

/**
     * 获取当前登录用户ID
     * @param lpparam
     * @return
     */
    public static long getLogInUserId(XC_LoadPackage.LoadPackageParam lpparam){
        Class<?> IUserService = XposedHelpers.findClass("com.bytedance.android.live.user.IUserService", lpparam.classLoader);
        Object oIUserService = XposedHelpers.callStaticMethod(XposedHelpers.findClass("com.bytedance.android.live.j.g", lpparam.classLoader), "a", IUserService);
        Object user = XposedHelpers.callMethod(oIUserService, "user");
        Object userid = XposedHelpers.callMethod(user, "b");
        return (long) userid;
    }

    /**
     * 获取当前登录用户SEC_UID
     * @param lpparam
     * @return
     */
    public static String getLogInSecUserId(XC_LoadPackage.LoadPackageParam lpparam){
        Class<?> IUserService = XposedHelpers.findClass("com.bytedance.android.live.user.IUserService", lpparam.classLoader);
        Object oIUserService = XposedHelpers.callStaticMethod(XposedHelpers.findClass("com.bytedance.android.live.j.g", lpparam.classLoader), "a", IUserService);
        Object user = XposedHelpers.callMethod(oIUserService, "user");
        Object userid = XposedHelpers.callMethod(user, "b");
        Object secUid = XposedHelpers.callMethod(user, "a", userid);
        return secUid.toString();
    }
### Python 实现视频下载 为了实现从平台下载视频的功能,可以采用如下方法: #### 方法一:通过解析 URL 获取视频 ID 并构建请求 ```python import requests def download_douyin_video(url, output_path='output.mp4'): # 解析链接获取视频ID video_id = url.split('/')[-1].split('?')[0] # 去除可能存在的查询参数[^1] share_url = f"https://www.iesdouyin.com/share/video/{video_id}/" headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)', 'Referer': 'https://www.douyin.com/' } response = requests.get(share_url, headers=headers) play_addr = None if "playAddr" in response.text: import re match = re.search(r'playAddr: "(.*?)"', response.text) if match is not None: play_addr = match.group(1).replace('\\u002F', '/').replace('playwm', 'play') # 移除水印标志 if play_addr: r = requests.get(play_addr, stream=True, headers=headers) with open(output_path, 'wb') as fd: for chunk in r.iter_content(chunk_size=1024): fd.write(chunk) download_douyin_video("https://v.douyin.com/example/") ``` 这段代码展示了如何利用正则表达式提取网页中的实际播放地址,并去除其中的`watermark`(水印)标记。注意这里的URL需要替换为真实的分享页面链接。 #### 方法二:直接访问 API 接口获取视频信息 另一种更高效的方式是调用官方API接口来获得更加精确的数据结构: ```python from urllib.parse import urlparse, parse_qs import json def get_video_info(short_code): api_endpoint = "https://api.amemv.com/aweme/v1/feed/" params = {"sec_uid": "", "count": "1", "max_cursor": "0", "aid": "1128"} parsed = urlparse(f'https://v.douyin.com/{short_code}') query_dict = parse_qs(parsed.query) aweme_id = short_code or query_dict.get('vid',[None])[0] payload={ "device_platform":"web", "version_name":"23.5.0", "_signature":"", "iid":"", "idfa":"", "openudid":"", "uuid":"", "os_version":"", "screen_width":"", "dpi":"", "app_name":"aweme", "channel":"App%20Store", "manifest_version_code":"970", "resolution":"", "ac":"wifi", "uid":"", "vc":"2350", "language":"zh", "region":"CN", "update_version_uri":"/upgrade/?did=", "ssmix":"a", "as":"a1qwertdfghjklzxcvb", "ts":""} resp = requests.post(api_endpoint,params=params,data=payload) data = resp.json() try: item_list=data["aweme_list"] first_item=item_list[0]["video"]["play_addr"]["url_list"][0] return first_item.replace('/playwm/', '/play/') # 替换掉带水印版本 except Exception as e: print(e) return "" get_video_info("example") ``` 此函数会尝试连接至指定的服务端点并发送POST请求以检索目标短视频的相关详情。成功接收到响应之后再从中抽取所需的媒体文件路径。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值