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; sessKey=3b37839a-6d91-4dda-8fbd-664b496becfa; _gcl_au=1.1.1821231707.1762172484; exelbid-uid=qVFTcrM1jStgSWsCjnsl; userLoginIdx=17217562; userLoginYN=Y; partner=winktv; __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; _gid=GA1.3.1542007801.1764675462; 79b0c6d4081955eb1c9b2417b9015e73b776b816f05c1f6e3cbf8c71c57259ee=hkXgymG8df%2BHQJeuAPwM5CJJvEQ8u934L9dv4t%2B0d3ETS6VH4yhFLDqDEfTVMzIGPxLaMZfX0JuOavYCK1HiySWk9kUfoG4Sv0MXR2ViP345hn48aAYJR4SfzYcr4QQe; _ga_W91XDLC3YE=GS2.1.s1764675461$o21$g1$t1764675532$j59$l0$h646732215; _gat_UA-193540779-1=1; _gat_gtag_UA_194444882_2=1; _ga=GA1.1.1926602821.1746534365; _ga_NGSHFJTQS1=GS2.1.s1764675462$o21$g1$t1764675532$j53$l0$h0; _ga_0J8HGTPY46=GS2.1.s1764675462$o15$g1$t1764675532$j60$l0$h0; _ga_ZJ51R4C39H=GS2.3.s1764675462$o20$g1$t1764675532$j60$l0$h0; _ga_Z58JX68TPR=GS2.1.s1764675460$o21$g1$t1764675535$j47$l0$h1770090577; ttcsid_CPNT7B3C77U5K3OPINOG=1764675463028::qQg7o480IRIFZIgskB69.18.1764675535333.0; ttcsid=1764675463029::2UTGLMwei0BSk4qdZUBu.18.1764675535333.0'
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()
