notebooklm-py / get_auth_selenium.py
ASEM12345's picture
Upload folder using huggingface_hub
aaee22d verified
"""
使用 Selenium 获取 NotebookLM 认证
Selenium 通过 Chrome 用户数据目录共享已有登录状态
"""
import json
import os
import time
try:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
except ImportError:
print("请先安装: pip install selenium webdriver-manager")
exit(1)
def get_auth_with_selenium():
storage_path = os.path.expanduser("~/.notebooklm/storage_state.json")
os.makedirs(os.path.dirname(storage_path), exist_ok=True)
# Chrome 用户数据目录
user_data_dir = r"C:\Users\asemx\AppData\Local\Google\Chrome\User Data"
print("正在启动 Chrome(使用你的已登录账号)...")
print("请确保之前的 Chrome 已完全关闭!")
options = Options()
options.add_argument(f"--user-data-dir={user_data_dir}")
options.add_argument("--profile-directory=Default")
options.add_argument("--no-first-run")
options.add_argument("--no-default-browser-check")
# 使用你的 Chrome
options.binary_location = r"C:\Users\asemx\AppData\Local\Google\Chrome\Application\chrome.exe"
try:
driver = webdriver.Chrome(options=options)
except Exception as e:
print(f"❌ 无法启动 Chrome: {e}")
print("\n请安装 chromedriver:")
print(" pip install webdriver-manager")
return None
try:
print("正在访问 NotebookLM...")
driver.get("https://notebooklm.google.com")
print("\n等待页面加载...(10秒)")
time.sleep(10)
# 获取 cookies
cookies = driver.get_cookies()
print(f"\n获取到 {len(cookies)} 个 cookies")
# 转换为 Playwright storage_state 格式
storage_state = {
"cookies": cookies,
"origins": []
}
# 保存
with open(storage_path, "w", encoding="utf-8") as f:
json.dump(storage_state, f, indent=2)
print(f"\n✅ 认证信息已保存到: {storage_path}")
content = json.dumps(storage_state, indent=2)
print("\n" + "=" * 60)
print("复制以下内容作为 HF Space Secret (NOTEBOOKLM_AUTH_JSON):")
print("=" * 60)
print(content)
return storage_state
finally:
driver.quit()
if __name__ == "__main__":
get_auth_with_selenium()