/*** Thanks to & modified from 1、https://gist.githubusercontent.com/Hyseen/b06e911a41036ebc36acf04ddebe7b9a/raw/nf_check.js 2、https://github.com/AtlantisGawrGura/Quantumult-X-Scripts/blob/main/media.js For Quantumult-X 598+ [task_local] event-interaction https://raw.githubusercontent.com/KOP-XIAO/QuantumultX/master/Scripts/streaming-ui-check.js, tag=流媒体-解锁查询, img-url=checkmark.seal.system, enabled=true @XIAO_KOP **/ const BASE_URL = 'https://www.netflix.com/title/'; const BASE_URL_YTB = "https://www.youtube.com/premium"; const BASE_URL_DISNEY = 'https://www.disneyplus.com'; const BASE_URL_Dazn = "https://www.dazn.com/"; //var BASE_URL_BLBL = "https://api.bilibili.com/pgc/player/web/playurl?avid=18281381&cid=29892777&qn=0&type=&otype=json&ep_id=183799&fourk=1&fnver=0&fnval=16&session=" + randomString(20) + "&module=bangumi"; //const BASE_URL_BahamutAnime = 'https://ani.gamer.com.tw/ajax/token.php?adID=89422&sn=14667'; //const BASE_URL_HULUJP = 'https://id.hulu.jp'; //const BASE_URL_HBOMAX = 'https://www.hbomax.com'; //const BASE_URL_NICONICO = 'https://www.nicovideo.jp/watch/so23017073'; //const BASE_URL_KKTV = "https://api.kktv.me/v3/ipcheck"; //const BASE_URL_TVBANYWHERE = "https://uapisfm.tvbanywhere.com.sg/geoip/check/platform/android"; var D_region; const FILM_ID = 81215567 const link = { "media-url": "https://raw.githubusercontent.com/KOP-XIAO/QuantumultX/master/img/southpark/7.png" } const policy_name = "Netflix" //填入你的 netflix 策略组名 const arrow = "➟" var output = "" var opts = { policy: $environment.params }; var opts1 = { policy: $environment.params, redirection: false }; function randomString(e) { e = e || 32; var t = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890", a = t.length, n = ""; for (i=0;i { console.log("nf:"+response.statusCode) if (response.statusCode === 404) { //resolve('Not Found') result["Netflix"] = "Netflix: 支持自制剧集" } else if (response.statusCode === 403) { //resolve('Not Available') //console.log("nfnf") result["Netflix"] = "Netflix: 未支持" } else if (response.statusCode === 200) { let url = response.headers['X-Originating-URL'] let region = url.split('/')[3] region = region.split('-')[0] if (region == 'title') { region = 'us' } console.log("nf:"+region) //resolve(region) result["Netflix"] = "Netflix: 完整支持"+ "⟦"+flags.get(region.toUpperCase())+"⟧" } //reject('Error') }, reason => { //resolve("timeout") result["Netflix"] = "Netflix: 检测超时" } ) } function testYTB() { let option = { url: BASE_URL_YTB, opts: opts, timeout: 4000, headers: { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36' }, } $task.fetch(option).then(response=> { let data = response.body console.log("ytb:"+response.statusCode) if (response.statusCode !== 200) { //reject('Error') result["YouTube"] = "YouTube Premium: 检测失败" } else if (data.indexOf('Premium is not available in your country') !== -1) { //resolve('Not Available') result["YouTube"] = "YouTube Premium: 未支持" } else if (data.indexOf('Premium is not available in your country') == -1) {//console.log(data.split("countryCode")[1]) let region = '' let re = new RegExp('"GL":"(.*?)"', 'gm') let ret = re.exec(data) if (ret != null && ret.length === 2) { region = ret[1] } else if (data.indexOf('www.google.cn') !== -1) { region = 'CN' } else { region = 'US' } //resolve(region) result["YouTube"] = "YouTube Premium: 支持"+ "⟦"+flags.get(region.toUpperCase())+"⟧" console.log("ytb:"+region+ result["YouTube"]) } }, reason => { result["YouTube"] = "YouTube Premium: 检测超时" //resolve("timeout") }) } function testDisney(){ let option = { url: BASE_URL_DISNEY, opts: opts, headers: { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36' }, } $task.fetch(option).then(response => { console.log("Disney+ :" + response.statusCode); //console.log(response.body) let DisneyURL = response.headers['Location']; if(response.statusCode === 200) { if(response.body.indexOf("Sorry, Star+ is not available in your region") !== -1) // 无服务 { result["Disney"]= "Disney+: 未支持" } else if(response.body.indexOf("【公式】Disney+ (ディズニープラス)") !== -1) // 日本版 { D_region = "JP" result["Disney"]= "Disney+: 已支持"+ "⟦"+flags.get(D_region.toUpperCase())+"⟧" } else if(response.body.indexOf(' { result["Disney"]= "Disney+: 检测超时" }) } function testDazn() { let option = { url: BASE_URL_Dazn, opts: opts, timeout: 4000, headers: { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36' }, } $task.fetch(option).then(response=> { let data = response.body let header = JSON.stringify(response.headers) console.log("Dazn:"+response.statusCode) console.log("Dazn:"+header) if (response.statusCode !== 200) { //reject('Error') result["Dazn"] = "Dazn: 检测失败" } else if (data.indexOf('Premium is not available in your country') !== -1) { //resolve('Not Available') result["Dazn"] = "Dazn: 未支持" } else if (data.indexOf('Premium is not available in your country') == -1) {//console.log(data.split("countryCode")[1]) let region = '' let re = new RegExp('"GL":"(.*?)"', 'gm') let ret = re.exec(data) if (ret != null && ret.length === 2) { region = ret[1] } else if (data.indexOf('www.google.cn') !== -1) { region = 'CN' } else { region = 'US' } //resolve(region) result["Dazn"] = "Dazn: 支持"+ "⟦"+flags.get(region.toUpperCase())+"⟧" console.log("Dazn:"+region+ result["Dazn"]) } }, reason => { result["Dazn"] = "Dazn: 检测超时" //resolve("timeout") }) }