tiktok最新风控算法以及视频播放量问题研究

Posted qq517348412

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tiktok最新风控算法以及视频播放量问题研究相关的知识,希望对你有一定的参考价值。

应客户需求,今天来研究下tiktok的一些算法风控和视频播放量检测的问题。以安卓版为例,这里我们用的是tiktok 25.9.4的较新版本

一、抓包预准备

抓包对于绝大多数海外tt玩家是一件比较头疼的事。android的,网络通信协议绕不过去,好不容易xposed能搞定的绕过去了,发现手机参数搞不定,不展示大陆区内容,直接黑屏。ios的改改手机参数倒是能用,然鹅,新系统新版本一律不让抓包。

对此,笔者提供2个目前来看最完美的解决方案“思路”,android的so魔改和ios的升级策略,可以避开国区检测,也可以避开通讯协议检测。so魔改涉及的东西太多,包括jada逆向、ida反编译、adb操作。大致跟各位分享下过程:

android:使用重编译的apk,加上修改的libsscronet.so,可完美避开检测和断网

ios:登录账号后,升级ipa的策略对于抓包来说,可直接通过缓存证书无视网络检测

二、抓包进行时

1、风控算法

(1)设备注册算法

跟国内某音的设备算法不一样。某音再某些接口对设备的要求极高,得正确加密register接口+点击确认接口+活动范库接口+日志或者监控接口+配置接口+激活策略之一,才能做一些比较高端的操作(播放、点赞、关注等,采集之类的接口可仅保留头尾策略即可),而tiktok相对简洁,只需要正确加密register接口+mac绑定+google频道绑定+激活策略之一即可,相比流程少了很多

 


'device_id': 7165349508607477253, 
'install_id': 7165350779095746309

(2)加密算法

早期的加密算法只有x-gorgon和x-khronos两个核心参数,新版本加上了x-argus和x-ladon,并且在jadx里面通过关键字已经无法定位到算法入口了。对于绝大部分的接口,其实可以不需要这两个参数,比如feed、视频post、search等,但是user、stats、follow、digg之类的是需要新的加密参数的


'x-gorgon': '0404009200006554a694efece28b9e104bd2b035e5534edb1039', 
'x-khronos': '1668316731', 
'x-ladon': '3ZUzVd9TsVZQCYAqzNTkcjcz/7VFZsvgPfl/euzI2zqogVdX', 
'x-argus': 'Sk1EW3Y8M+z+iSOS1j3+TvvcbwKOpgxMksDXdntgvzV6bNlX77GQhPewX1FqhUb/ufeSl8IEvSUe1GkRYiwXyPVaWbmMSL0rYcWuIL+3gHV0J2SPjhLBQsG8qlDwn8CHBWbrS5ensYnQw0n3wTVcX65g9M0tQnTSTpZRcJa+JL5lRxQx5ru2IHpaA0Be39O5ZNLqxKayJQ2j7DOfhrXMSI/kIk/xWDQUw9HKEzLcQIi+5eIV8g2lhu9UCsd8+gklnA2sgcJk167lREK0laBMVV0h'

 


  "log_pb": 
    "impr_id": "202211130520592109A770F334650DD710"
  ,
  "status_code": 0,
  "user": 
    "ad_virtual": false,
    "avatar_medium": 
      "url_list": [
        "https://p16-sign-sg.tiktokcdn.com/tos-alisg-avt-0068/9eda8ac4a89de8afa23fdefe99f42ac2~tplv-tiktok-shrink:282:282.jpeg?x-expires\\u003d1668337200\\u0026x-signature\\u003dB3vl0lpZN0Dh5JpXH2VHAC2Upbs%3D\\u0026s\\u003dPACK_GO_API\\u0026se\\u003dfalse\\u0026sh\\u003d282_282\\u0026sc\\u003davatar\\u0026l\\u003d202211130520592109A770F334650DD710",
        "https://p16-sign-sg.tiktokcdn.com/aweme/720x720/tos-alisg-avt-0068/9eda8ac4a89de8afa23fdefe99f42ac2.webp?x-expires\\u003d1668488400\\u0026x-signature\\u003dG2MwwtSHLG707Id9hXGJmADuil8%3D",
        "https://p16-sign-sg.tiktokcdn.com/aweme/720x720/tos-alisg-avt-0068/9eda8ac4a89de8afa23fdefe99f42ac2.jpeg?x-expires\\u003d1668488400\\u0026x-signature\\u003dd1hTbqRFLjHBuU8IHGWBzJ3f%2BDk%3D"
      ],
      "uri": "tos-alisg-avt-0068/9eda8ac4a89de8afa23fdefe99f42ac2"
    ,
    "avatar_300x300": 
      "uri": "tos-alisg-avt-0068/9eda8ac4a89de8afa23fdefe99f42ac2",
      "url_list": [
        "https://p16-sign-sg.tiktokcdn.com/tos-alisg-avt-0068/9eda8ac4a89de8afa23fdefe99f42ac2~tplv-tiktok-shrink:282:282.jpeg?x-expires\\u003d1668337200\\u0026x-signature\\u003dB3vl0lpZN0Dh5JpXH2VHAC2Upbs%3D\\u0026s\\u003dPACK_GO_API\\u0026se\\u003dfalse\\u0026sh\\u003d282_282\\u0026sc\\u003davatar\\u0026l\\u003d202211130520592109A770F334650DD710",
        "https://p16-sign-sg.tiktokcdn.com/tos-alisg-avt-0068/9eda8ac4a89de8afa23fdefe99f42ac2~c5_300x300.webp?x-expires\\u003d1668488400\\u0026x-signature\\u003dIbM9MHdGvc7WW0Jast4uZoCbcNQ%3D",
        "https://p16-sign-sg.tiktokcdn.com/tos-alisg-avt-0068/9eda8ac4a89de8afa23fdefe99f42ac2~c5_300x300.jpeg?x-expires\\u003d1668488400\\u0026x-signature\\u003dHv3J8TK0fD2kGORSlh%2FioTMcO%2F0%3D"
      ]
    ,
    "avatar_168x168": 
      "url_list": [
        "https://p16-sign-sg.tiktokcdn.com/tos-alisg-avt-0068/9eda8ac4a89de8afa23fdefe99f42ac2~tplv-tiktok-shrink:282:282.jpeg?x-expires\\u003d1668337200\\u0026x-signature\\u003dB3vl0lpZN0Dh5JpXH2VHAC2Upbs%3D\\u0026s\\u003dPACK_GO_API\\u0026se\\u003dfalse\\u0026sh\\u003d282_282\\u0026sc\\u003davatar\\u0026l\\u003d202211130520592109A770F334650DD710",
        "https://p16-sign-sg.tiktokcdn.com/tos-alisg-avt-0068/9eda8ac4a89de8afa23fdefe99f42ac2~c5_168x168.webp?x-expires\\u003d1668488400\\u0026x-signature\\u003d2zVQsGCz38Lng1sajUTxzogN%2FSk%3D",
        "https://p16-sign-sg.tiktokcdn.com/tos-alisg-avt-0068/9eda8ac4a89de8afa23fdefe99f42ac2~c5_168x168.jpeg?x-expires\\u003d1668488400\\u0026x-signature\\u003dL3f1peRZhFCpeNGHNKsb7HaO28w%3D"
      ],
      "uri": "tos-alisg-avt-0068/9eda8ac4a89de8afa23fdefe99f42ac2"
    ,
    "message_chat_entry": false,
    "recommend_reason_relation": "",
    "profile_tab_type": 0,
    "is_star": false,
    "twitter_name": "",
    "mplatform_followers_count": 0,
    "follower_count": 4549,
    "supporting_ngo": ,
    "is_effect_artist": false,
    "account_type": 3,
    "avatar_larger": 
      "url_list": [
        "https://p16-sign-sg.tiktokcdn.com/aweme/1080x1080/tos-alisg-avt-0068/9eda8ac4a89de8afa23fdefe99f42ac2.webp?x-expires\\u003d1668488400\\u0026x-signature\\u003dRdSqFnSIdUOdpRzJp0Cay32Lphc%3D",
        "https://p16-sign-sg.tiktokcdn.com/aweme/1080x1080/tos-alisg-avt-0068/9eda8ac4a89de8afa23fdefe99f42ac2.jpeg?x-expires\\u003d1668488400\\u0026x-signature\\u003dxdXdDGH7%2BCceLYN0Miuxs%2BsMlEc%3D"
      ],
      "uri": "tos-alisg-avt-0068/9eda8ac4a89de8afa23fdefe99f42ac2"
    ,
    "commerce_user_info": 
      "ad_experience_entry": true,
      "ad_experience_text": "Ads",
      "ad_revenue_rits": []
    ,
    "is_blocked": false,
    "twitter_id": "",
    "qa_status": 0,
    "video_icon": 
      "uri": "",
      "url_list": []
    ,
    "verification_type": 0,
    "enterprise_verify_reason": "",
    "sec_uid": "MS4wLjABAAAAzVo22dPcsRtqwQ1zBz1pwFUg0dm_V7XdfWAjfUfcMvJuAS6HrFufw48PIzSYOYIT",
    "with_commerce_entry": false,
    "category": "Personal Blog",
    "watch_status": false,
    "with_new_goods": false,
    "aweme_count": 127,
    "commerce_user_level": 0,
    "apple_account": 0,
    "unique_id": "monirul1382",
    "favoriting_count": 0,
    "total_favorited": 21040,
    "follower_status": 0,
    "following_count": 7259,
    "youtube_channel_id": "",
    "ins_id": "",
    "live_push_notification_status": 2,
    "nudge_guide_info": 
      "guide_time": 0,
      "show_guide": false
    ,
    "tab_settings": 
      "private_tab": 
        "show_private_tab": false,
        "private_tab_style": 1
      
    ,
    "follow_status": 0,
    "youtube_channel_title": "",
    "nickname": "p.k",
    "share_info": 
      "share_desc": "Check out p.k! #TikTok",
      "share_image_url": 
        "uri": "tos-alisg-p-0037/d1a5001fa23541b2ab34fcd17f2cc3fe_1668310237",
        "url_list": [
          "https://p16-sign-sg.tiktokcdn.com/obj/tos-alisg-p-0037/d1a5001fa23541b2ab34fcd17f2cc3fe_1668310237?x-expires\\u003d1668337200\\u0026x-signature\\u003dUDs6%2FX8aiEIP7QzD83pSGn%2FBKg8%3D"
        ]
      ,
      "bool_persist": 1,
      "share_title_myself": "This TikTok app is soooooo fun! Follow me @monirul1382 on TikTok and check out my videos!",
      "share_url": "https://www.tiktok.com/@monirul1382?_r\\u003d1\\u0026_d\\u003de4m574m23g7672\\u0026language\\u003den\\u0026sec_uid\\u003dMS4wLjABAAAAzVo22dPcsRtqwQ1zBz1pwFUg0dm_V7XdfWAjfUfcMvJuAS6HrFufw48PIzSYOYIT\\u0026share_author_id\\u003d6927144936274412545\\u0026source\\u003dh5_m",
      "share_title_other": "This TikTok user is really cool. Follow @monirul1382 on TikTok and check out those amazing videos!",
      "share_title": "Join TikTok and see what I\\u0027ve been up to!",
      "share_desc_info": "TikTok: Make Every Second Count"
    ,
    "is_block": false,
    "short_id": "0",
    "with_commerce_enterprise_tab_entry": false,
    "secret": 0,
    "avatar_thumb": 
      "uri": "tos-alisg-avt-0068/9eda8ac4a89de8afa23fdefe99f42ac2",
      "url_list": [
        "https://p16-sign-sg.tiktokcdn.com/tos-alisg-avt-0068/9eda8ac4a89de8afa23fdefe99f42ac2~tplv-tiktok-shrink:282:282.jpeg?x-expires\\u003d1668337200\\u0026x-signature\\u003dB3vl0lpZN0Dh5JpXH2VHAC2Upbs%3D\\u0026s\\u003dPACK_GO_API\\u0026se\\u003dfalse\\u0026sh\\u003d282_282\\u0026sc\\u003davatar\\u0026l\\u003d202211130520592109A770F334650DD710",
        "https://p16-sign-sg.tiktokcdn.com/aweme/100x100/tos-alisg-avt-0068/9eda8ac4a89de8afa23fdefe99f42ac2.webp?x-expires\\u003d1668488400\\u0026x-signature\\u003dfNikR946UDcPIUj2JDqbZIEZWiY%3D",
        "https://p16-sign-sg.tiktokcdn.com/aweme/100x100/tos-alisg-avt-0068/9eda8ac4a89de8afa23fdefe99f42ac2.jpeg?x-expires\\u003d1668488400\\u0026x-signature\\u003dvqam8wUbb6URwcIekbNdZk0eSwM%3D"
      ]
    ,
    "signature": "",
    "signature_language": "un",
    "show_favorite_list": false,
    "room_id": 0,
    "privacy_setting": 
      "following_visibility": 1
    ,
    "live_commerce": false,
    "story_status": 0,
    "uid": "6927144936274412545",
    "biz_account_info": 
      "permission_list": [
        "001002",
        "001003",
        "002001",
        "002002",
        "004001",
        "004006",
        "007001",
        "007003",
        "007004",
        "008001",
        "010001",
        "010002",
        "015001",
        "015002"
      ],
      "leads_gen": 
        "action_name": "",
        "page_id": 0,
        "business_data": "",
        "schema_url": "",
        "has_leads_gen": false
      
    ,
    "custom_verify": "",
    "original_musician": 
      "music_count": 0,
      "music_used_count": 0,
      "digg_count": 0
    ,
    "forward_count": 0
  ,
  "extra": 
    "now": 1668316859000,
    "fatal_item_ids": [],
    "logid": "202211130520592109A770F334650DD710"
  

2、风控策略

ok,说了那么多,我们开始研究播放量的问题,我们找了一个冷门的网红、一个冷门的视频来测试:Tiktok视频链接

(我也不知道这老哥是谁)

原始播放为206,手机打开这个视频,看了一会,发现播放量变成 207

抓包发现api为:

 https://api26-normal-hl.amemv.com/aweme/v1/aweme/stats/?开头

然后再次请求该api,发现播放量变成208

 

再用我们生成的设备去请求

'device_id': 7165366997055489542, 'install_id': 7165368214708061957

'X-Gorgon': '040460910000b4fe5e5c679b1a5aca8d0565b3de7aeac3798f6d', 'X-Khronos': '1668317354', 'X-Ladon': 'tLkHbGCrhmcvTPmlKHGkTta6Ti/YLihAsfKVgFEWFRiQV9YD', 'X-Argus': 'sCyeoOH45ibTP/CRUzAMJV1RJ337mffXnKw7lg4DOesS3htUSiUzUQy8i/csmSpKh/1ZqlycbmpLBsQEcHhXAY/jvNc6LkhmqBjn6xrYmSXrqL3JCb09o04fAaXQesxY2PBU3+JeBznMpjU1Gd7mRSEYEIXomcoH/CAyLAaoCcBGvB+DMH3xRm1TKLwj0/qorwsi6iO5x8w3t9MKpj1TX9raqMDo591OBvpEXG29XJR1gVd4bpgJeP6Ckc01p+2hfm8gpvKy1Y7MDeYXo6UDFQA0'

post参数
pre_item_playtime=&first_install_time=1598329642&item_id=7165147705835015461&follow_status=0&sync_origin=false&follower_status=0&hide_mix_entry=true&action_time= 1668317412&tab_type=0&pre_hot_sentence=&play_delta=1&aweme_type=0&pre_item_id=

ok变成209

 

咱们新生成一个新的设备,联系请求100次,看下效果

 

掌声!!!!!

三、总结

1、经测试,要想短时间大量上,需要高并发+高频率切换device_id,要想花费少量的device_id,需要低频请求

2、高并发可以短时间单个设备完成多则12W的量,少则几千

3、风控为两种:ip和设备。好的设备上量多,好的ip上量多

利用Tiktok自动化脚本每天发布200个视频,以量取胜!




01



流量变现情况




tiktok的流量红利目前大家都看到了,目前没有比做号更加重要的事情了,在加上近日官宣的shopify合作一事,可以说未来可期!


我目前也是tiktok大航海的一员,几个月前参加了嘉伟船长举办tiktok训练营,正式踏上了这艘船。目前刚结束的第四期训练营,累计变现超过了8万美金最强的一期!


经过这几个月的摸索和尝试目前倒流到电商这块,单号流量变现一个月在$2600美元左右的,虽然不多但是起码是一个好的开始,后期可以放大去做。






02


自动化赋能增长



"放大后遇到的痛点"


上面的数据是通过一个几万粉丝的号带来的流量,接下来在放大的过程中,也陆续的增加了几十部手机来批量起号。


以前一个人操作一个账户每天发布几个视频,可能1-2个小时就解决了。但是随着视频数量、账户的增加。


光是每天把视频导入手机,然后发布打上标题,这些机械化的过程就把时间给自己掏空了,根本无法去安排时间做更重要的事情。


所以为了解决这个问题我花了有点时间把这个过程给自动化了


  • 目前解决视频导入的问题

  • 标题动态化配置

  • 数量可配的自动化发布流程

  • 自动回复评论(评论引导非常重要,加了之后转化率提高了30%)

  • 评论区防截留

  • 所有功能支持多账户


"一天发布200个视频可行吗?"


关于这个我们当初我也怕,怕发布太多会成营销号。但是别人说了不算重要还是要多做测试,有句话说撑死胆大的饿死胆小的,很适合目前的tiktok。


可以看下这个靠批量剪辑,自动化发布达到150万粉丝的好物号,这个号每天都会发布一百个以上的视频,而且全部没有配置标题,甚至标签都没有,只是背景音乐会处理下。


利用Tiktok自动化脚本每天发布200个视频,以量取胜!



我们在看下这种大批量上视频效果如何,第六个视频的播放量是18M。基本上100-200个视频里面就会爆几个视频,其他的都是几k到几十k,能保持几天就爆几个视频,这样的流量获取成本太小了,转化也可想而知。


所以这套工作完全可以实现流水线了


  • 获取UP主资源

  • 批量下载无水印视频

  • 批量剪辑(掐头去尾、加速、镜像、音乐)

  • 视频资源配置

  • 视频自动化发布

  • 账户数据监测

  • 产品上架


利用Tiktok自动化脚本每天发布200个视频,以量取胜!




03


脚本搭建流程


 

前面主要分享了下这种流水线发布的可行性,下面就看一下脚本的具体运行情况和步骤。


"脚本运行环境"


一、 root手机


android需要root、苹果需要越狱


关于root/越狱的问题建议在淘宝找专业的人处理不用自己去折腾,收费10-40左右,付费后卖家会远程连接你的桌面把相关软件下载,这个时候可以认真记录一下操作的步骤,这样的话剩余的手机就可以自己操作了。



二、 支持机型


目前支持三星s7 edeg、小米note4/4x、谷歌2。由于目前还是小范围使用,所以机型先支持主流的。



三、 下载触动精灵


https://www.touchsprite.com/download


利用Tiktok自动化脚本每天发布200个视频,以量取胜!


安装好后用邮箱注册一个账户,然后进入到我的账户>文件管理>插件>官方插件下载一个 ts.so的文件




利用Tiktok自动化脚本每天发布200个视频,以量取胜!



右上角输入ID:  136583


下载脚本启动后的界面




利用Tiktok自动化脚本每天发布200个视频,以量取胜!



四、运行视频



利用Tiktok自动化脚本每天发布200个视频,以量取胜!



五、阿里云资源配置


目前利用阿里云来做为视频的存储后台


"创建Bucket存储视频"


账户申请完后我们进入到对象存储功能里面,创建一个Bucket这个是以后存放视频资源用的


利用Tiktok自动化脚本每天发布200个视频,以量取胜!



"创建文件夹编号"


  • 截图中的文件夹就是我的账户编号,每个账户对应一个文件夹,里面存储着账户需要发布的视频


利用Tiktok自动化脚本每天发布200个视频,以量取胜!



  • 视频编号从1开始命名,2.txt文件存放视频标题、视频数量等信息


利用Tiktok自动化脚本每天发布200个视频,以量取胜!


  • 标题信息、视频数量配置



JSON在线编辑

https://www.bejson.com/jsoneditoronline/


"字段解释"


字段名
作用
userCount
每日发布的个数1-200
videoTag 标题和视频编号对应,找不到默认用第一个


利用Tiktok自动化脚本每天发布200个视频,以量取胜!









04


关于费用




这样看脚本主要解决了视频发布,这一系列比较繁琐的事情,功能不也算强大适合账户多,视频发布量大的朋友


本来打算免费给大家。


但是后面想着免费的东西不长久,为了能持续的更新下去,所以决定收一杯奶茶钱,枯燥的东西交给我来做。


"奶茶价"


卡类型/1机 费用
月卡
¥15
季卡 ¥12
年卡
¥ 9
免费试用







看完记得关注@金威的小酒馆

及时收看更多好文

↓↓↓


以上是关于tiktok最新风控算法以及视频播放量问题研究的主要内容,如果未能解决你的问题,请参考以下文章

利用Tiktok自动化脚本每天发布200个视频,以量取胜!

将 tiktok 视频嵌入 Angular 7 的问题

视频不显示在 tiktok 克隆上

抖音流量这么大,为什么你视频的播放量总停在500左右?

Tiktok之推荐系统

苹果用Facebook 登录tiktok无法授权怎么办?