Skip to content

Commit 2cbf1e5

Browse files
authored
Fixed Netflix and some others OTT plaforms check
1 parent bb4a8ad commit 2cbf1e5

1 file changed

Lines changed: 26 additions & 30 deletions

File tree

check.sh

Lines changed: 26 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -403,19 +403,17 @@ function MediaUnlockTest_BBCiPLAYER() {
403403
}
404404

405405
function MediaUnlockTest_Netflix() {
406-
local tmpresult1=$(curl $useNIC $usePROXY $xForward -${1} -fsL --max-time 10 "https://www.netflix.com/title/81280792" 2>&1)
407-
local tmpresult2=$(curl $useNIC $usePROXY $xForward -${1} -fsL --max-time 10 "https://www.netflix.com/title/70143836" 2>&1)
408-
local result1=$(echo $tmpresult1 | grep -oP '"isPlayable":\K(true|false)')
409-
local result2=$(echo $tmpresult2 | grep -oP '"isPlayable":\K(true|false)')
406+
local result1=$(curl $useNIC $usePROXY $xForward -${1} -fsL --write-out %{http_code} --output /dev/null --max-time 10 "https://www.netflix.com/title/81280792" -H 'host: www.netflix.com' -H 'connection: keep-alive' -H 'sec-ch-ua: "Chromium";v="122", "Not(A:Brand";v="24", "Microsoft Edge";v="122"' -H 'sec-ch-ua-mobile: ?0' -H 'sec-ch-ua-platform: "Windows"' -H 'upgrade-insecure-requests: 1' -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0' -H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7' -H 'sec-fetch-site: none' -H 'sec-fetch-mode: navigate' -H 'sec-fetch-user: ?1' -H 'sec-fetch-dest: document' -H 'accept-language: zh-CN,zh;q=0.9' 2>&1)
407+
local result2=$(curl $useNIC $usePROXY $xForward -${1} -fsL --write-out %{http_code} --output /dev/null --max-time 10 "https://www.netflix.com/title/70143836" -H 'host: www.netflix.com' -H 'connection: keep-alive' -H 'sec-ch-ua: "Chromium";v="122", "Not(A:Brand";v="24", "Microsoft Edge";v="122"' -H 'sec-ch-ua-mobile: ?0' -H 'sec-ch-ua-platform: "Windows"' -H 'upgrade-insecure-requests: 1' -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0' -H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7' -H 'sec-fetch-site: none' -H 'sec-fetch-mode: navigate' -H 'sec-fetch-user: ?1' -H 'sec-fetch-dest: document' -H 'accept-language: zh-CN,zh;q=0.9' 2>&1)
410408

411-
if [[ "$result1" == "false" ]] && [[ "$result2" == "false" ]]; then
409+
if [[ "$result1" == "404" ]] && [[ "$result2" == "404" ]]; then
412410
echo -n -e "\r Netflix:\t\t\t\t${Font_Yellow}Originals Only${Font_Suffix}\n"
413411
return
414-
elif [ -z "$result1" ] && [ -z "$result2" ]; then
412+
elif [[ "$result1" == "403" ]] && [[ "$result2" == "403" ]]; then
415413
echo -n -e "\r Netflix:\t\t\t\t${Font_Red}No${Font_Suffix}\n"
416414
return
417-
elif [[ "$result1" == "true" ]] || [[ "$result2" == "true" ]]; then
418-
local region=$(echo $tmpresult1 | grep -oP '"requestCountry":{"id":"\K\w\w' | head -n 1)
415+
elif [[ "$result1" == "200" ]] || [[ "$result2" == "200" ]]; then
416+
local region=$(curl -fsL --max-time 10 "https://www.netflix.com/title/70143836" 2>&1 | grep -oP '"requestCountry":{"id":"\K\w\w' | head -n 1)
419417
echo -n -e "\r Netflix:\t\t\t\t${Font_Green}Yes (Region: ${region})${Font_Suffix}\n"
420418
return
421419
else
@@ -725,7 +723,7 @@ function MediaUnlockTest_PlutoTV() {
725723
}
726724

727725
function MediaUnlockTest_HBOMax() {
728-
local tmpresult=$(curl $useNIC $usePROXY $xForward -${1} ${ssll} -sS -o /dev/null -L --max-time 10 -w '%{url_effective}\n' "https://www.hbomax.com/" 2>&1)
726+
local tmpresult=$(curl $useNIC $usePROXY $xForward -${1} ${ssll} -sS -o /dev/null -L --max-time 10 -w '%{url_effective}\n' "https://www.max.com/" 2>&1)
729727
if [[ "$tmpresult" == "curl"* ]]; then
730728
echo -n -e "\r HBO Max:\t\t\t\t${Font_Red}Failed (Network Connection)${Font_Suffix}\n"
731729
return
@@ -1405,29 +1403,27 @@ function MediaUnlockTest_HBOGO_EUROPE() {
14051403
}
14061404

14071405
function MediaUnlockTest_EPIX() {
1408-
tmpToken=$(curl $useNIC $usePROXY $xForward -${1} ${ssll} -s -X POST --max-time 10 "https://api.epix.com/v2/sessions" -H "Content-Type: application/json" -d '{"device":{"guid":"e2add88e-2d92-4392-9724-326c2336013b","format":"console","os":"web","app_version":"1.0.2","model":"browser","manufacturer":"google"},"apikey":"f07debfcdf0f442bab197b517a5126ec","oauth":{"token":null}}' 2>&1)
1406+
tmpToken=$(curl $useNIC $usePROXY $xForward -${1} ${ssll} -s -X POST --max-time 10 'https://api.epix.com/v2/sessions' -X POST -H 'host: api.epix.com' -H 'connection: keep-alive' -H 'sec-ch-ua: "Chromium";v="122", "Not(A:Brand";v="24", "Microsoft Edge";v="122"' -H 'traceparent: 00-000000000000000015b7efdb572b7bf2-4aefaea90903bd1f-01' -H 'sec-ch-ua-mobile: ?0' -H 'x-datadog-origin: rum' -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0' -H 'x-datadog-sampling-priority: 1' -H 'accept: application/json' -H 'x-datadog-trace-id: 1564983120873880562' -H 'x-datadog-parent-id: 5399726519264460063' -H 'sec-ch-ua-platform: "Windows"' -H 'origin: https://www.mgmplus.com' -H 'sec-fetch-site: cross-site' -H 'sec-fetch-mode: cors' -H 'sec-fetch-dest: empty' -H 'referer: https://www.mgmplus.com/' -H 'accept-language: zh-CN,zh;q=0.9' -H 'content-type: application/json' -d '{"device":{"guid":"7a0baaaf-384c-45cd-a21d-310ca5d3002a","format":"console","os":"web","display_width":1865,"display_height":942,"app_version":"1.0.2","model":"browser","manufacturer":"google"},"apikey":"53e208a9bbaee479903f43b39d7301f7"}' 2>&1)
14091407
if [ -z "$tmpToken" ]; then
1410-
echo -n -e "\r Epix:\t\t\t\t\t${Font_Red}Failed (Network Connection)${Font_Suffix}\n"
1408+
echo -n -e "\r MGM+:\t\t\t\t\t${Font_Red}Failed (Network Connection)${Font_Suffix}\n"
14111409
elif [[ "$tmpToken" == "error code"* ]]; then
1412-
echo -n -e "\r Epix:\t\t\t\t\t${Font_Red}No${Font_Suffix}\n"
1410+
echo -n -e "\r MGM+:\t\t\t\t\t${Font_Red}No${Font_Suffix}\n"
14131411
return
14141412
fi
14151413

14161414
EpixToken=$(echo $tmpToken | python -m json.tool 2>/dev/null | grep 'session_token' | cut -f4 -d'"')
1417-
local tmpresult=$(curl $useNIC $usePROXY $xForward -${1} ${ssll} -X POST -s --max-time 10 "https://api.epix.com/v2/movies/16921/play" -d '{}' -H "X-Session-Token: $EpixToken" 2>&1)
1415+
local tmpresult=$(curl $useNIC $usePROXY $xForward -${1} ${ssll} -X POST -s --max-time 10 'https://api.epix.com/graphql' -X POST -H 'host: api.epix.com' -H 'connection: keep-alive' -H 'sec-ch-ua: "Chromium";v="122", "Not(A:Brand";v="24", "Microsoft Edge";v="122"' -H 'traceparent: 00-0000000000000000603047c112148412-32d64f8c890631ef-01' -H 'sec-ch-ua-mobile: ?0' -H 'x-datadog-origin: rum' -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0' -H 'x-datadog-sampling-priority: 1' -H 'accept: application/json' -H "x-session-token: ${EpixToken}" -H 'x-datadog-trace-id: 6931118721080787986' -H 'x-datadog-parent-id: 3663202811925377519' -H 'sec-ch-ua-platform: "Windows"' -H 'origin: https://www.mgmplus.com' -H 'sec-fetch-site: cross-site' -H 'sec-fetch-mode: cors' -H 'sec-fetch-dest: empty' -H 'referer: https://www.mgmplus.com/' -H 'accept-language: zh-CN,zh;q=0.9' -H 'content-type: application/json' -d '{"operationName":"PlayFlow","variables":{"id":"c2VyaWVzOzEwMTc=","supportedActions":["open_url","show_notice","start_billing","play_content","log_in","noop","confirm_provider","unlinked_provider"],"streamTypes":[{"encryptionScheme":"CBCS","packagingSystem":"DASH"},{"encryptionScheme":"CENC","packagingSystem":"DASH"},{"encryptionScheme":"NONE","packagingSystem":"HLS"},{"encryptionScheme":"SAMPLE_AES","packagingSystem":"HLS"}]},"query":"fragment ShowNotice on ShowNotice {\n type\n actions {\n continuationContext\n text\n __typename\n }\n description\n title\n __typename\n}\n\nfragment OpenUrl on OpenUrl {\n type\n url\n __typename\n}\n\nfragment Content on Content {\n title\n __typename\n}\n\nfragment Movie on Movie {\n id\n shortName\n __typename\n}\n\nfragment Episode on Episode {\n id\n series {\n shortName\n __typename\n }\n seasonNumber\n number\n __typename\n}\n\nfragment Preroll on Preroll {\n id\n __typename\n}\n\nfragment ContentUnion on ContentUnion {\n ...Content\n ...Movie\n ...Episode\n ...Preroll\n __typename\n}\n\nfragment PlayContent on PlayContent {\n type\n continuationContext\n heartbeatToken\n currentItem {\n content {\n ...ContentUnion\n __typename\n }\n __typename\n }\n nextItem {\n content {\n ...ContentUnion\n __typename\n }\n showNotice {\n ...ShowNotice\n __typename\n }\n showNoticeAt\n __typename\n }\n amazonPlaybackData {\n pid\n playbackToken\n materialType\n __typename\n }\n playheadPosition\n vizbeeStreamInfo {\n customStreamInfo\n __typename\n }\n closedCaptions {\n ttml {\n location\n __typename\n }\n vtt {\n location\n __typename\n }\n xml {\n location\n __typename\n }\n __typename\n }\n hints {\n duration\n seekAllowed\n trackingEnabled\n trackingId\n __typename\n }\n streams(types: $streamTypes) {\n playlistUrl\n closedCaptionsEmbedded\n packagingSystem\n encryptionScheme\n videoQuality {\n height\n width\n __typename\n }\n widevine {\n authenticationToken\n licenseServerUrl\n __typename\n }\n playready {\n authenticationToken\n licenseServerUrl\n __typename\n }\n fairplay {\n authenticationToken\n certificateUrl\n licenseServerUrl\n __typename\n }\n __typename\n }\n __typename\n}\n\nfragment StartBilling on StartBilling {\n type\n __typename\n}\n\nfragment LogIn on LogIn {\n type\n __typename\n}\n\nfragment Noop on Noop {\n type\n __typename\n}\n\nfragment PreviewContent on PreviewContent {\n type\n title\n description\n stream {\n sources {\n hls {\n location\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n}\n\nfragment ConfirmProvider on ConfirmProvider {\n type\n __typename\n}\n\nfragment UnlinkedProvider on UnlinkedProvider {\n type\n __typename\n}\n\nquery PlayFlow($id: String!, $supportedActions: [PlayFlowActionEnum!]!, $context: String, $behavior: BehaviorEnum = DEFAULT, $streamTypes: [StreamDefinition!]) {\n playFlow(\n id: $id\n supportedActions: $supportedActions\n context: $context\n behavior: $behavior\n ) {\n ...ShowNotice\n ...OpenUrl\n ...PlayContent\n ...StartBilling\n ...LogIn\n ...Noop\n ...PreviewContent\n ...ConfirmProvider\n ...UnlinkedProvider\n __typename\n }\n}"}' 2>&1)
14181416

1419-
local result=$(echo $tmpresult | python -m json.tool 2>/dev/null | grep status | cut -f4 -d'"')
1420-
if [[ "$result" == "PROXY_DETECTED" ]]; then
1421-
echo -n -e "\r Epix:\t\t\t\t\t${Font_Red}No${Font_Suffix}\n"
1422-
return
1423-
elif [[ "$result" == "GEO_BLOCKED" ]]; then
1424-
echo -n -e "\r Epix:\t\t\t\t\t${Font_Red}No${Font_Suffix}\n"
1417+
local isBlocked=$(echo $tmpresult | grep 'MGM+ is only available in the United States')
1418+
local isOK=$(echo $tmpresult | grep StartBilling)
1419+
if [ -n "$isBlocked" ]; then
1420+
echo -n -e "\r MGM+:\t\t\t\t\t${Font_Red}No${Font_Suffix}\n"
14251421
return
1426-
elif [[ "$result" == "NOT_SUBSCRIBED" ]]; then
1427-
echo -n -e "\r Epix:\t\t\t\t\t${Font_Green}Yes${Font_Suffix}\n"
1422+
elif [ -n "$isOK" ]; then
1423+
echo -n -e "\r MGM+:\t\t\t\t\t${Font_Green}Yes${Font_Suffix}\n"
14281424
return
14291425
else
1430-
echo -n -e "\r Epix:\t\t\t\t\t${Font_Red}Failed${Font_Suffix}\n"
1426+
echo -n -e "\r MGM+:\t\t\t\t\t${Font_Red}Failed${Font_Suffix}\n"
14311427
return
14321428
fi
14331429

@@ -3321,7 +3317,7 @@ function NA_UnlockTest() {
33213317
MediaUnlockTest_HBOMax ${1} &
33223318
)
33233319
wait
3324-
local array=("FOX:" "Hulu:" "NFL+" "ESPN+:" "Epix:" "Starz:" "Philo:" "FXNOW:")
3320+
local array=("FOX:" "Hulu:" "NFL+" "ESPN+:" "MGM+:" "Starz:" "Philo:" "FXNOW:")
33253321
echo_Result ${result} ${array}
33263322
MediaUnlockTest_TLCGO ${1}
33273323
echo "$result" | grep "HBO Max:"
@@ -3354,12 +3350,12 @@ function NA_UnlockTest() {
33543350
MediaUnlockTest_Popcornflix ${1} &
33553351
MediaUnlockTest_Crunchyroll ${1} &
33563352
MediaUnlockTest_ATTNOW ${1} &
3357-
MediaUnlockTest_KBSAmerican ${1} &
3353+
#MediaUnlockTest_KBSAmerican ${1} &
33583354
MediaUnlockTest_KOCOWA ${1} &
3359-
MediaUnlockTest_MathsSpot ${1} &
3355+
#MediaUnlockTest_MathsSpot ${1} &
33603356
)
33613357
wait
3362-
local array=("Sling TV:" "Pluto TV:" "Acorn TV:" "SHOWTIME:" "encoreTVB:" "Funimation:" "Discovery" "Paramount+:" "Peacock TV:" "Popcornflix:" "Crunchyroll:" "Directv Stream:" "KBS American:" "KOCOWA:" "Maths Spot:")
3358+
local array=("Sling TV:" "Pluto TV:" "Acorn TV:" "SHOWTIME:" "encoreTVB:" "Funimation:" "Discovery" "Paramount+:" "Peacock TV:" "Popcornflix:" "Crunchyroll:" "Directv Stream:" "KOCOWA:")
33633359
echo_Result ${result} ${array}
33643360
ShowRegion CA
33653361
local result=$(
@@ -3379,12 +3375,12 @@ function EU_UnlockTest() {
33793375
MediaUnlockTest_Funimation ${1} &
33803376
MediaUnlockTest_SkyShowTime ${1} &
33813377
MediaUnlockTest_HBOMax ${1} &
3382-
MediaUnlockTest_MathsSpot ${1} &
3378+
#MediaUnlockTest_MathsSpot ${1} &
33833379
# MediaUnlockTest_HBO_Nordic ${1}
33843380
# MediaUnlockTest_HBOGO_EUROPE ${1}
33853381
)
33863382
wait
3387-
local array=("Rakuten TV:" "Funimation:" "SkyShowTime:" "HBO Max:" "Maths Spot:")
3383+
local array=("Rakuten TV:" "Funimation:" "SkyShowTime:" "HBO Max:")
33883384
echo_Result ${result} ${array}
33893385
ShowRegion GB
33903386
local result=$(
@@ -3401,15 +3397,15 @@ function EU_UnlockTest() {
34013397
echo_Result ${result} ${array}
34023398
ShowRegion FR
34033399
local result=$(
3404-
MediaUnlockTest_Salto ${1} &
3400+
#MediaUnlockTest_Salto ${1} &
34053401
MediaUnlockTest_CanalPlus ${1} &
34063402
MediaUnlockTest_Molotov ${1} &
34073403
MediaUnlockTest_Joyn ${1} &
34083404
MediaUnlockTest_SKY_DE ${1} &
34093405
MediaUnlockTest_ZDF ${1} &
34103406
)
34113407
wait
3412-
local array=("Salto:" "Canal+:" "Molotov:")
3408+
local array=("Canal+:" "Molotov:")
34133409
echo_Result ${result} ${array}
34143410
ShowRegion DE
34153411
local array=("Joyn:" "Sky:" "ZDF:")

0 commit comments

Comments
 (0)