import re
import json
import requests
from urllib import parse

name = input('BjId: ')

pre_add = 'https://live-global-cdn-v02.sooplive.co.kr/live-stm-06/auth_master_playlist.m3u8?aid='
pre_real = 'https://live-global-cdn-v02.sooplive.co.kr/live-stm-06/'

# address的变量
a_url = 'https://live.sooplive.co.kr/afreeca/player_live_api.php'
#-------panda的账号---------
a_cookie = 'AbroadChk=OK;AbroadVod=OK;_au=4d6aa158118cd5dff535bd0d21555885;_au3rd=4d6aa158118cd5dff535bd0d21555885;_ausb=0x7031f1aa;AuthTicket=.A32.7bbT56vyHM9fKZk.iM4PPyz3cUIKiKzSap8QAZtZmz3JnhJofPJM4FYc0aj-iKM3q0ducDRR3onp2YrBxRYGeik4gWHsj8rFWK3oJ1cr57F-XqPB7I32P6EZGy93Q2XXDJMIWEqp-5FKxhOvwY26lFnaQ553ENA-7AgNhzSifE75giAXl-3lJ_56McoS4lS0SOPkpO97q3lIdtnDF2_VCydG5F3aCiMa-xFJ24l5wxJp9amTybvKXC_FqVWVmIeOtRaCnrvaKBOpa3_ikVINrdqsSKy7shJHG92_H4mekiHOLuBJy4yVz6K--4fgyfPYZbzGvu0KhPgiE1B22XHH1g-rcStoh5F3ikpQDUYBxaZ4E1MUgs6Ex-alpZovkvwd1mjKZ9Mth7ajkHU9Y2DiK_tzZofORtsvWSXj8U6-rg_r2mWRvmlO5rPWW6XDSrAUKZ0QuoujBld2VljUOmcT5tTZrdG-JwGw7EWIhxyZkiXACWEckc0Opj6O8D0TLA2FlO_sJ9_ggCn9CNgOSK86qjNMsSN-ZPJomb7L5A7wSodHsUVVKntiwpndHbagbWMxV3kYGFiR9pIFHAJqKMQ-JOH-A6SjNuACN5k9Jvl1edYRHtVZk73AhFBrcrw;BbsTicket=n2n44660;UserTicket=uid%3Dn2n44660%26uno%3D40127086%26age%3D30%26sex%3DA%26A%3DAAE%26B%3DBADA%26unick%3Dn2n44660%26apply_date%3D1537192696%26name_chk%3D1%26sess_adult_chk%3D1%26broad_name_chk%3D1%26change_password%3D1%26chnnl_cd%3D1%26chnnl_name_chk%3D1;isBbs=1;RDB=c8030000000000434e000000000000000000000000000000010000001e1e0000000000000001;BbsSaveTicket=.A32.7bbT56vyHM9fKZk.nN6avj-4CyAOkfCGXXMpCA;NextChangePwd=1;laravel_session=OjeV1BhV3zkFrO6DnO691qDAHs2MNdpEsRNPk6qi;_gid=GA1.3.1600738917.1736195209;_ausa=0x35dc3d38;bjStationHistory=%0216210449%0217432725%021442303;FCNEC=%5B%5B%22AKsRol9aORWpKyoA2_4_MTIZi_mrP6YwAaseGLQ0oSGLj4IIilycDOPiOOJPkoqIhETnfw3nIDI1pNHestWUZA2LbuKQdVS6L5RUapgRkocs-lYAwhA8SzV5jtKpDYWSxOJikcCX9SCn3wvZKtJa_mIlQugt4KCBfg%3D%3D%22%5D%5D;_ga_5EYT9PM505=GS1.1.1736195208.1.1.1736196719.0.0.0;_ga_KV34D9945N=GS1.3.1736196638.3.1.1736196722.0.0.0;_ga=GA1.1.1112772364.1736195113;_ga_9PY781H32Y=GS1.1.1736195112.1.1.1736196798.55.0.0'
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,
            # "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"RESOLUTION=1280x720.*?(auto.*?#)"
    response = requests.get(url=url)
    if response.status_code == 200:
        content = response.text
        # print(content)
        # match = re.search(pattern, content)
        # if match:
        #     url = match.group(1)
        #     return url
        # else:
        #     return 'Error 4'
        lines = content.splitlines()
        for i, line in enumerate(lines):
            if "RESOLUTION=1280x720" in line:
                if i + 1 < len(lines):
                    return lines[i + 1]
        return 'Error 4'
    else:
        print(response.text)
        return 'Error 1'


def getBjUrl(name, url, headers):
    data = f'bid={name}&type=aid'
    data = parse.parse_qs(data)
    try:
        response = requests.post(url=url, headers=headers, data=data)
        if response.status_code == 200:
            content = response.json()
            address = content['CHANNEL']['AID']
            return address
        else:
            return response.text
    except:
        return 'Error 3'


def main():
    address = getBjUrl(name, a_url, a_headers)
    address = pre_add+address
    # print('address\n'+address)
    real_address = matchUrl(address)
    real_address = pre_real+real_address
    response = requests.get(url=real_address)
    response = requests.get(url=real_address) # 两遍
    print('real_address:\n' + real_address)
    print('response:\n' + response.text)

if __name__ == '__main__':
    main()
