import asyncio from bilibili_api import login_v2 async def main(): print("请使用 Bilibili 手机 App 扫描二维码登录") print("=" * 40) qr = login_v2.QrCodeLogin() await qr.generate_qrcode() print(qr.get_qrcode_terminal()) print("=" * 40) print("等待扫码...") while True: state = await qr.check_state() if state == login_v2.QrCodeLoginEvents.DONE: print("登录成功!") break elif state == login_v2.QrCodeLoginEvents.SCAN: print("已扫描,请确认登录...") elif state == login_v2.QrCodeLoginEvents.TIMEOUT: print("二维码已过期,请重新运行") return await asyncio.sleep(1) credential = qr.get_credential() print() print("请将以下凭证添加到 config.toml 的 [bilibili] 配置块中:") print(f'sessdata = "{credential.sessdata}"') print(f'bili_jct = "{credential.bili_jct}"') print(f'buvid3 = "{credential.buvid3 if credential.buvid3 else ""}"') print(f'dedeuserid = "{credential.dedeuserid}"') if __name__ == '__main__': asyncio.run(main())