From 21719a13d927b433bf743a8e961f3cb7e26ad2fc Mon Sep 17 00:00:00 2001 From: NobyDa <53217160+NobyDa@users.noreply.github.com> Date: Mon, 31 Aug 2020 06:35:02 +0800 Subject: [PATCH] Fixed the problem of TikTok China --- QuantumultX/Js.conf | 10 +- QuantumultX/Js_local_WorkingCopy.conf | 6 +- Surge/JS/Aweme.js | 254 +++++++++++++++++++++----- Surge/Module/TikTokChinaAds.sgmodule | 12 ++ 4 files changed, 222 insertions(+), 60 deletions(-) create mode 100644 Surge/Module/TikTokChinaAds.sgmodule diff --git a/QuantumultX/Js.conf b/QuantumultX/Js.conf index a599114..f609b8c 100644 --- a/QuantumultX/Js.conf +++ b/QuantumultX/Js.conf @@ -28,14 +28,8 @@ https://api.bilibili.com/x/v2/reply/main?access_key url script-response-body htt https://api.live.bilibili.com/xlive/app-room/v1/index/getInfoByRoom?access_key url script-response-body https://raw.githubusercontent.com/onewayticket255/Surge-Script/master/surge%20bilibili%20live.js # 抖音去广告去水印 (By Choler) -^https?:\/\/.+?\.amemv\.com\/aweme\/v\d\/feed\/ url 302 https://aweme.snssdk.com/aweme/v1/feed/ -^https?:\/\/.+?\.amemv\.com\/aweme\/v\d\/aweme\/post\/ url 302 https://aweme.snssdk.com/aweme/v1/aweme/post/ -^https?:\/\/.+?\.amemv\.com\/aweme\/v\d\/follow\/feed\/ url 302 https://aweme.snssdk.com/aweme/v1/follow/feed/ -^https?:\/\/.+?\.amemv\.com\/aweme\/v\d\/nearby\/feed\/ url 302 https://aweme.snssdk.com/aweme/v1/nearby/feed/ -^https?:\/\/.+?\.amemv\.com\/aweme\/v\d\/search\/item\/ url 302 https://aweme.snssdk.com/aweme/v1/search/item/ -^https?:\/\/.+?\.amemv\.com\/aweme\/v\d\/general\/search\/single\/ url 302 https://aweme.snssdk.com/aweme/v1/general/search/single/ -^https?:\/\/.+?\.amemv\.com\/aweme\/v\d\/hot/search\/video\/list\/ url 302 https://aweme.snssdk.com/aweme/v1/hot/search/video/list/ -^https?:\/\/aweme\.snssdk\.com\/aweme\/v1\/(feed|aweme\/post|follow\/feed|nearby\/feed|search\/item|general\/search\/single|hot\/search\/video\/list)\/ url script-response-body https://Choler.github.io/Surge/Script/douyin.js +^https?:\/\/.+?\.amemv\.com\/aweme\/v\d\/(feed|aweme\/post|follow\/feed|nearby\/feed|search\/item|general\/search\/single|hot\/search\/video\/list)\/ url script-request-header https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Aweme.js +^https?:\/\/.+?\.amemv\.com\/aweme\/v\d\/(feed|aweme\/post|follow\/feed|nearby\/feed|search\/item|general\/search\/single|hot\/search\/video\/list)\/ url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Aweme.js # 酷我音乐SVIP (By yxiaocai) ^https?:\/\/vip1\.kuwo\.cn\/(vip\/v2\/user\/vip|vip\/spi/mservice) url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Kuwo.js diff --git a/QuantumultX/Js_local_WorkingCopy.conf b/QuantumultX/Js_local_WorkingCopy.conf index b0097f5..3385a12 100644 --- a/QuantumultX/Js_local_WorkingCopy.conf +++ b/QuantumultX/Js_local_WorkingCopy.conf @@ -1,4 +1,4 @@ -hostname = api.weibo.cn, mapi.weibo.com, *.uve.weibo.com, mp.weixin.qq.com, api.bilibili.com, app.bilibili.com, *.zhihu.com, aweme*.snssdk.com, *.kuwo.cn, *.xiaoxiao*.com, api*.tiktokv.com, *.musical.ly, *.amemv.com, p.du.163.com, getuserinfo.321mh.com, getuserinfo-globalapi.zymk.cn, ios.fuliapps.com, vsco.co, api.vnision.com, *.my10api.com, sp.kaola.com, r.inews.qq.com, apple.fuliapps.com, newdrugs.dxy.cn, app101.avictown.cc, api.hlo.xyz, api.ijo.xyz, www.luqijianggushi.com, account.wps.cn, u.kanghuayun.com, api1.dobenge.cn, api.mvmtv.com, mitaoapp.yeduapp.com, origin-prod-phoenix.jibjab.com, www.3ivf.com, pay.guoing.com, api.bjxkhc.com, viva.v21xy.com, biz.caiyunapp.com, ap*.intsig.net, mp.bybutter.com, api.vuevideo.net, api.picsart.c*, api.meiease.c*, api.gamer.com.tw, ios.xiangjiaoapps.com, apple.xiangjiaoapps.com, *.xiangxiangapps.com +hostname = api.weibo.cn, mapi.weibo.com, *.uve.weibo.com, mp.weixin.qq.com, api.bilibili.com, app.bilibili.com, *.zhihu.com, aweme*.snssdk.com, *.kuwo.cn, *.xiaoxiao*.com, *.amemv.com, p.du.163.com, getuserinfo.321mh.com, getuserinfo-globalapi.zymk.cn, ios.fuliapps.com, vsco.co, api.vnision.com, *.my10api.com, sp.kaola.com, r.inews.qq.com, apple.fuliapps.com, newdrugs.dxy.cn, app101.avictown.cc, api.hlo.xyz, api.ijo.xyz, www.luqijianggushi.com, account.wps.cn, u.kanghuayun.com, api1.dobenge.cn, api.mvmtv.com, mitaoapp.yeduapp.com, origin-prod-phoenix.jibjab.com, www.3ivf.com, pay.guoing.com, api.bjxkhc.com, viva.v21xy.com, biz.caiyunapp.com, ap*.intsig.net, mp.bybutter.com, api.vuevideo.net, api.picsart.c*, api.meiease.c*, api.gamer.com.tw, ios.xiangjiaoapps.com, apple.xiangjiaoapps.com, *.xiangxiangapps.com # 去微博应用内广告 (By yichahucha) @@ -8,7 +8,9 @@ ^https?:\/\/mp\.weixin\.qq\.com\/mp\/getappmsgad url script-response-body NobyDa/QuantumultX/File/Wechat.js # 抖音去广告去水印 (By Choler) -^https://aweme-eagle(.*)\.snssdk\.com\/aweme/.+/(feed|aweme/post|follow/feed)/ url script-response-body NobyDa/Surge/JS/Aweme.js +^https?:\/\/.+?\.amemv\.com\/aweme\/v\d\/(feed|aweme\/post|follow\/feed|nearby\/feed|search\/item|general\/search\/single|hot\/search\/video\/list)\/ url script-request-header NobyDa/Surge/JS/Aweme.js + +^https?:\/\/.+?\.amemv\.com\/aweme\/v\d\/(feed|aweme\/post|follow\/feed|nearby\/feed|search\/item|general\/search\/single|hot\/search\/video\/list)\/ url script-response-body NobyDa/Surge/JS/Aweme.js # 酷我音乐SVIP (By yxiaocai) ^https?:\/\/vip1\.kuwo\.cn\/(vip\/v2\/user\/vip|vip\/spi/mservice) url script-response-body NobyDa/Surge/JS/Kuwo.js diff --git a/Surge/JS/Aweme.js b/Surge/JS/Aweme.js index 15e1cbc..78771a7 100644 --- a/Surge/JS/Aweme.js +++ b/Surge/JS/Aweme.js @@ -1,61 +1,215 @@ /* -by choler -[URL Rewrite] -^https://aweme-eagle(.*)\.snssdk\.com/aweme/v2/ https://aweme-eagle$1.snssdk.com/aweme/v1/ 302 +抖音去广告, 去水印. 改自https://github.com/Choler/Surge/blob/master/Script/douyin.js + +*************************** +Surge 4.2+ : [Script] -http-response ^https://[\s\S]*\/aweme/v1/(feed|aweme/post|follow/feed)/ requires-body=1,max-size=-1,script-path=https://Choler.github.io/Surge/Script/Aweme.js +抖音去广告&水印req = type=http-request,pattern=^https?:\/\/.+?\.amemv\.com\/aweme\/v\d\/(feed|aweme\/post|follow\/feed|nearby\/feed|search\/item|general\/search\/single|hot\/search\/video\/list)\/,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Aweme.js + +抖音去广告&水印res = type=http-response,pattern=^https?:\/\/.+?\.amemv\.com\/aweme\/v\d\/(feed|aweme\/post|follow\/feed|nearby\/feed|search\/item|general\/search\/single|hot\/search\/video\/list)\/,requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Aweme.js [MITM] -hostname = *.amemv.com, *.snssdk.com +hostname = *.amemv.com + +*************************** +*************************** +QuantumultX 1.0.10+ : + +[rewrite_local] +^https?:\/\/.+?\.amemv\.com\/aweme\/v\d\/(feed|aweme\/post|follow\/feed|nearby\/feed|search\/item|general\/search\/single|hot\/search\/video\/list)\/ url script-request-header https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Aweme.js + +^https?:\/\/.+?\.amemv\.com\/aweme\/v\d\/(feed|aweme\/post|follow\/feed|nearby\/feed|search\/item|general\/search\/single|hot\/search\/video\/list)\/ url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Aweme.js + +[mitm] +hostname = *.amemv.com +*************************** */ -let arr = { - "allow_download": true, - "share_type": 0, - "show_progress_bar": 0, - "draft_progress_bar": 0, - "allow_duet": true, - "allow_react": true, - "prevent_download_type": 2, - "allow_dynamic_wallpaper": false -}; -let body = $response.body.replace(/watermark=1/g, "watermark=0"); -var obj = JSON.parse(body); -if (obj.aweme_list) { - for (var i = obj.aweme_list.length - 1; i >= 0; i--) { - if (obj.aweme_list[i].raw_ad_data) { - obj.aweme_list.splice(i, 1); - } - if (obj.aweme_list[i].poi_info) { - delete obj.aweme_list[i].poi_info; - } - if (obj.aweme_list[i].sticker_detail) { - delete obj.aweme_list[i].sticker_detail; - } - if (obj.aweme_list[i].simple_promotions) { - delete obj.aweme_list[i].simple_promotions; - } - obj.aweme_list[i].status.reviewed = 1; - obj.aweme_list[i].video_control = arr; - } - $done({body: JSON.stringify(obj)}); -} else if (obj.data) { - for (var i = obj.data.length - 1; i >= 0; i--) { - if (obj.data[i].aweme) { - if (obj.data[i].aweme.poi_info) { - delete obj.data[i].aweme.poi_info; - } - if (obj.data[i].aweme.simple_promotions) { - delete obj.data[i].aweme.simple_promotions; - } - obj.data[i].aweme.status.reviewed = 1; - obj.data[i].aweme.video_control = arr; +const path1 = "/feed/"; // 推荐 +const path2 = "/aweme/post/"; //作品 +const path3 = "/follow/feed/"; // 关注 +const path4 = "/nearby/feed/"; // 同城 +const path5 = "/search/item/"; // 视频 +const path6 = "/general/search/"; // 综合 +const path7 = "/hot/search/video/"; // 热搜 + +try { + if (typeof $response != "undefined") { + if ($request.url.indexOf(path1) != -1) { + feed(); + } else if ($request.url.indexOf(path2) != -1) { + post(); + } else if ($request.url.indexOf(path3) != -1) { + follow(); + } else if ($request.url.indexOf(path4) != -1) { + nearby(); + } else if ($request.url.indexOf(path5) != -1) { + item(); + } else if ($request.url.indexOf(path6) != -1) { + search(); + } else if ($request.url.indexOf(path7) != -1) { + hot(); } else { - obj.data.splice(i, 1); + $done({}); + } + } else { + $done({ + url: $request.url.replace(/\/v\d\//, "/v1/") + }); + } +} catch { + $done({}); +} + +function feed() { + let obj = JSON.parse($response.body); + let arr = obj.aweme_list; + for (var i = arr.length - 1; i >= 0; i--) { + if (arr[i].is_ads != false) { + arr.splice(i, 1); + } + let play = arr[i].video.play_addr.url_list; + arr[i].video.download_addr.url_list = play; + let download = arr[i].video.download_addr; + arr[i].video.download_suffix_logo_addr = download; + arr[i].status.reviewed = 1; + arr[i].video_control.allow_download = true; + arr[i].author.room_id = 0; + arr[i].video.misc_download_addrs = {}; + } + $done({ + body: JSON.stringify(obj) + }); +} + +function post() { + let obj = JSON.parse($response.body); + let arr = obj.aweme_list; + if (arr != null) { + for (var i = arr.length - 1; i >= 0; i--) { + arr[i].status.reviewed = 1; + arr[i].video_control.allow_download = true; + let play = arr[i].video.play_addr.url_list; + arr[i].video.download_addr.url_list = play; + let download = arr[i].video.download_addr; + arr[i].video.download_suffix_logo_addr = download; } } - $done({body: JSON.stringify(obj)}); -} else { - $done({body}); + $done({ + body: JSON.stringify(obj) + }); +} + +function follow() { + let obj = JSON.parse($response.body); + let arr = obj.data; + for (var i = arr.length - 1; i >= 0; i--) { + arr[i].aweme.status.reviewed = 1; + arr[i].aweme.video_control.allow_download = true; + let play = arr[i].aweme.video.play_addr.url_list; + arr[i].aweme.video.download_addr.url_list = play; + let download = arr[i].aweme.video.download_addr; + arr[i].aweme.video.download_suffix_logo_addr = download; + } + $done({ + body: JSON.stringify(obj) + }); +} + +function nearby() { + let obj = JSON.parse($response.body); + if (obj.aweme_list) { + for (var i = obj.aweme_list.length - 1; i >= 0; i--) { + if (obj.aweme_list[i].video) { + if (obj.aweme_list[i].status.reviewed != 1) { + obj.aweme_list[i].status.reviewed = 1; + obj.aweme_list[i].video_control.allow_download = true; + } + if (obj.aweme_list[i].video.download_addr) { + let play = obj.aweme_list[i].video.play_addr.url_list; + obj.aweme_list[i].video.download_addr.url_list = play; + } + if (obj.aweme_list[i].video.download_suffix_logo_addr) { + let download = obj.aweme_list[i].video.download_addr; + obj.aweme_list[i].video.download_suffix_logo_addr = download; + } + } else { + obj.aweme_list.splice(i, 1); + } + } + } + $done({ + body: JSON.stringify(obj) + }); +} + +function item() { + let obj = JSON.parse($response.body); + if (obj.aweme_list) { + for (var i = obj.aweme_list.length - 1; i >= 0; i--) { + if (obj.aweme_list[i].video) { + if (obj.aweme_list[i].status.reviewed != 1) { + obj.aweme_list[i].status.reviewed = 1; + obj.aweme_list[i].video_control.allow_download = true; + } + if (obj.aweme_list[i].video.download_addr) { + let play = obj.aweme_list[i].video.play_addr.url_list; + obj.aweme_list[i].video.download_addr.url_list = play; + } + if (obj.aweme_list[i].video.download_suffix_logo_addr) { + let download = obj.aweme_list[i].video.download_addr; + obj.aweme_list[i].video.download_suffix_logo_addr = download; + } + } + } + } + $done({ + body: JSON.stringify(obj) + }); +} + +function search() { + let obj = JSON.parse($response.body); + let arr = obj.data; + for (var i = arr.length - 1; i >= 0; i--) { + if (arr[i].type == 1) { + if (arr[i].aweme_info.is_ads) { + arr.splice(i, 1); + } + if (arr[i].aweme_info.video) { + let play = arr[i].aweme_info.video.play_addr.url_list; + arr[i].aweme_info.video.download_addr.url_list = play; + let download = arr[i].aweme_info.video.download_addr; + arr[i].aweme_info.video.download_suffix_logo_addr = download; + arr[i].aweme_info.status.reviewed = 1; + arr[i].aweme_info.video_control.allow_download = true; + } + } + } + $done({ + body: JSON.stringify(obj) + }); +} + +function hot() { + let obj = JSON.parse($response.body); + if (obj.aweme_list) { + for (var i = obj.aweme_list.length - 1; i >= 0; i--) { + if (obj.aweme_list[i].video.download_addr) { + let play = obj.aweme_list[i].video.play_addr.url_list; + obj.aweme_list[i].video.download_addr.url_list = play; + } + if (obj.aweme_list[i].video.download_suffix_logo_addr) { + let download = obj.aweme_list[i].video.download_addr; + obj.aweme_list[i].video.download_suffix_logo_addr = download; + } + if (obj.aweme_list[i].video.misc_download_addrs) { + obj.aweme_list[i].video.misc_download_addrs = {}; + } + } + } + $done({ + body: JSON.stringify(obj) + }); } \ No newline at end of file diff --git a/Surge/Module/TikTokChinaAds.sgmodule b/Surge/Module/TikTokChinaAds.sgmodule new file mode 100644 index 0000000..e97e2a7 --- /dev/null +++ b/Surge/Module/TikTokChinaAds.sgmodule @@ -0,0 +1,12 @@ +#!name=抖音 +#!desc=去广告,去水印. +#!system=ios + +[Script] + +抖音去广告&水印req = type=http-request,pattern=^https?:\/\/.+?\.amemv\.com\/aweme\/v\d\/(feed|aweme\/post|follow\/feed|nearby\/feed|search\/item|general\/search\/single|hot\/search\/video\/list)\/,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Aweme.js + +抖音去广告&水印res = type=http-response,pattern=^https?:\/\/.+?\.amemv\.com\/aweme\/v\d\/(feed|aweme\/post|follow\/feed|nearby\/feed|search\/item|general\/search\/single|hot\/search\/video\/list)\/,requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Aweme.js + +[MITM] +hostname = %APPEND% *.amemv.com \ No newline at end of file