import re
import json
import time
import requests
from urllib import parse

name = input('BjId: ')

now = str(int(time.time()))

#代理服务器
sock = 'http://127.0.0.1:7890'

proxy = {
    'http': sock,
    'https': sock,
}


# address的变量
a_url = 'https://api.pandalive.co.kr/v1/live/play'
#-------panda的账号---------
a_cookie = 'userLoginSaveYN=Y; userLoginSaveID=Wm1KaVptSmpZZz09; _tt_enable_cookie=1; _ttp=01JTJS3SC1MF42KGP2DFH3B7B1_.tt.2; _gcl_au=1.1.1821231707.1762172484; exelbid-uid=qVFTcrM1jStgSWsCjnsl; __rtbh.uid=%7B%22eventType%22%3A%22uid%22%2C%22id%22%3A17217562%2C%22expiryDate%22%3A%222026-11-03T12%3A22%3A51.153Z%22%7D; __rtbh.lid=%7B%22eventType%22%3A%22lid%22%2C%22id%22%3A%22M7yRxwcKpyeBJJ6kC8ru%22%2C%22expiryDate%22%3A%222026-11-03T12%3A22%3A51.154Z%22%7D; sessKey=e11090b0-a0c6-4f62-b63e-13d798aa3972; _gid=GA1.3.1040605124.1767447731; _gat_UA-193540779-1=1; _gat_gtag_UA_194444882_2=1; _ga=GA1.1.1926602821.1746534365; _ga_ZJ51R4C39H=GS2.3.s1767447730$o28$g0$t1767447730$j60$l0$h0; userLoginIdx=17217562; userLoginYN=Y; 79b0c6d4081955eb1c9b2417b9015e73b776b816f05c1f6e3cbf8c71c57259ee=fFdlmxRNP%2FDK7aD4KVRRnV2ji2vTP17g8%2BjR2ktN9u9aOl%2FvrrIoA6dZxzvg4yz9FnwoK21wLr9M4l7nEdKb%2FCaThIbCx%2BS7bzE0TTm0EBlM8ov8tXPwb6KClaHuH1Hv; partner=winktv; ttcsid_CPNT7B3C77U5K3OPINOG=1767447732308::rm94jOuYeLoj-gs_FrEq.24.1767447752206.1; ttcsid=1767447732308::FtEE1_e65Sk3vX34uqeg.24.1767447752207.0; _ga_W91XDLC3YE=GS2.1.s1767447730$o29$g1$t1767447753$j37$l0$h408563852; _ga_NGSHFJTQS1=GS2.1.s1767447730$o29$g1$t1767447753$j37$l0$h0; _ga_0J8HGTPY46=GS2.1.s1767447730$o22$g1$t1767447758$j32$l0$h0; _ga_Z58JX68TPR=GS2.1.s1767447729$o29$g1$t1767447759$j30$l1$h722786535'
data = 'offset=0&limit=60&isLive=Y&width=280&height=158&imageResize=crop'
a_headers = {
            "Accept": "application/json, text/plain, */*",
            "Accept-Encoding": "gzip, deflate, br, zstd",
            "Accept-Language": "en-US,en;q=0.9",
            "Content-Type": "application/x-www-form-urlencoded",
            "Cookie": a_cookie,
            "Origin": "https://www.pandalive.co.kr",
            "Referer": "https://www.pandalive.co.kr/",
            "sec-ch-ua": '"Not)A;Brand";v="99", "Google Chrome";v="127", "Chromium";v="127"',
            "sec-ch-ua-mobile": "?0",
            "sec-ch-ua-platform": '"macOS"',
            "sec-fetch-dest": "empty",
            "sec-fetch-mode": "cors",
            "sec-fetch-site": "same-site",
            "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36",
            "x-device-info": '{"t":"webPc","v":"1.0","ui":17217562}',
}


def matchUrl(url):
    pattern = r'GROUP-ID="720.*\n.*\n(https?://[^\s]+)'
    headers = {
        "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
        "Origin": "https://www.pandalive.co.kr",
    }
    response = requests.get(url=url, headers=headers)
    if response.status_code == 200:
        content = response.text
        match = re.search(pattern, content)
        if match:
            url = match.group(1)
            return url
        else:
            return 'Error 4'
    else:
        print(response.text)
        return 'Error 1'


def getBjUrl(name, url, headers, proxy):
    data = f'action=watch&userId={name}&password=&shareLinkType='
    data = parse.parse_qs(data)
    try:
        response = requests.post(url=url, headers=headers, data=data, proxies=proxy)
        if response.status_code == 200:
            content = response.json()
            address = content['PlayList']['hls'][0]['url']
            return address
        else:
            return response.text
    except:
        return 'Error 3'


def main():
    address = getBjUrl(name, a_url, a_headers, proxy)
    # print('address\n'+address)
    real_address = matchUrl(address)
    print('real_address:\n' + real_address)

if __name__ == '__main__':
    main()
