[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-teng-lin--notebooklm-py":3,"tool-teng-lin--notebooklm-py":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",147882,2,"2026-04-09T11:32:47",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108111,"2026-04-08T11:23:26",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":79,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":88,"forks":89,"last_commit_at":90,"license":91,"difficulty_score":32,"env_os":92,"env_gpu":93,"env_ram":93,"env_deps":94,"category_tags":99,"github_topics":100,"view_count":32,"oss_zip_url":115,"oss_zip_packed_at":115,"status":17,"created_at":116,"updated_at":117,"faqs":118,"releases":147},5999,"teng-lin\u002Fnotebooklm-py","notebooklm-py","Unofficial Python API and agentic skill for Google NotebookLM. Full programmatic access to NotebookLM's features—including capabilities the web UI doesn't expose—via Python, CLI, and AI agents like Claude Code, Codex, and OpenClaw.","notebooklm-py 是一个非官方的 Python 库，旨在为谷歌 NotebookLM 提供全面的程序化访问能力。它突破了网页版界面的功能限制，让用户能通过代码、命令行或 AI 智能体（如 Claude Code、Codex）直接操控 NotebookLM 的核心功能。\n\n该工具主要解决了自动化研究与内容生成的痛点。用户不仅可以批量导入各类资料源（如 PDF、YouTube 视频、Google _drive），还能以编程方式执行深度研究查询、生成播客音频概览、制作视频、幻灯片、测验及思维导图，并支持将结果批量导出为多种格式（如 MP3、JSON、CSV），实现了研究流程的自动化与定制化。\n\nnotebooklm-py 特别适合开发者、数据研究人员及希望构建自动化工作流的进阶用户。对于需要重复处理大量文献或集成 AI 能力的团队，它能显著提升效率。其独特亮点在于提供了网页端未暴露的高级接口，例如批量下载生成物、提取思维导图数据结构以及无缝对接主流 AI 编程助手。需要注意的是，由于调用的是谷歌未公开的内部 API，该项目适用于原型开发、学术研究及个人实验，使用时需留意潜在的接口变","notebooklm-py 是一个非官方的 Python 库，旨在为谷歌 NotebookLM 提供全面的程序化访问能力。它突破了网页版界面的功能限制，让用户能通过代码、命令行或 AI 智能体（如 Claude Code、Codex）直接操控 NotebookLM 的核心功能。\n\n该工具主要解决了自动化研究与内容生成的痛点。用户不仅可以批量导入各类资料源（如 PDF、YouTube 视频、Google _drive），还能以编程方式执行深度研究查询、生成播客音频概览、制作视频、幻灯片、测验及思维导图，并支持将结果批量导出为多种格式（如 MP3、JSON、CSV），实现了研究流程的自动化与定制化。\n\nnotebooklm-py 特别适合开发者、数据研究人员及希望构建自动化工作流的进阶用户。对于需要重复处理大量文献或集成 AI 能力的团队，它能显著提升效率。其独特亮点在于提供了网页端未暴露的高级接口，例如批量下载生成物、提取思维导图数据结构以及无缝对接主流 AI 编程助手。需要注意的是，由于调用的是谷歌未公开的内部 API，该项目适用于原型开发、学术研究及个人实验，使用时需留意潜在的接口变动风险。","# notebooklm-py\n\u003Cp align=\"left\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fteng-lin_notebooklm-py_readme_df8741a9cb5f.png\" alt=\"notebooklm-py logo\" width=\"128\">\n\u003C\u002Fp>\n\n**A Comprehensive NotebookLM Skill & Unofficial Python API.** Full programmatic access to NotebookLM's features—including capabilities the web UI doesn't expose—via Python, CLI, and AI agents like Claude Code, Codex, and OpenClaw.\n\n[![PyPI version](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fnotebooklm-py.svg)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fnotebooklm-py\u002F)\n[![Python Version](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.10%20%7C%203.11%20%7C%203.12%20%7C%203.13%20%7C%203.14-blue)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fnotebooklm-py\u002F)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n[![Tests](https:\u002F\u002Fgithub.com\u002Fteng-lin\u002Fnotebooklm-py\u002Factions\u002Fworkflows\u002Ftest.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fteng-lin\u002Fnotebooklm-py\u002Factions\u002Fworkflows\u002Ftest.yml)\n\u003Cp>\n  \u003Ca href=\"https:\u002F\u002Ftrendshift.io\u002Frepositories\u002F19116\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fteng-lin_notebooklm-py_readme_17f4a7d6fa98.png\" alt=\"teng-lin%2Fnotebooklm-py | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n**Source & Development**: \u003Chttps:\u002F\u002Fgithub.com\u002Fteng-lin\u002Fnotebooklm-py>\n\n> **⚠️ Unofficial Library - Use at Your Own Risk**\n>\n> This library uses **undocumented Google APIs** that can change without notice.\n>\n> - **Not affiliated with Google** - This is a community project\n> - **APIs may break** - Google can change internal endpoints anytime\n> - **Rate limits apply** - Heavy usage may be throttled\n>\n> Best for prototypes, research, and personal projects. See [Troubleshooting](docs\u002Ftroubleshooting.md) for debugging tips.\n\n## What You Can Build\n\n🤖 **AI Agent Tools** - Integrate NotebookLM into Claude Code, Codex, and other LLM agents. Ships with a root [NotebookLM skill](SKILL.md) for GitHub and `npx skills add` discovery, local `notebooklm skill install` support for Claude Code and `.agents` skill directories, and repo-level Codex guidance in [`AGENTS.md`](AGENTS.md).\n\n📚 **Research Automation** - Bulk-import sources (URLs, PDFs, YouTube, Google Drive), run web\u002FDrive research queries with auto-import, and extract insights programmatically. Build repeatable research pipelines.\n\n🎙️ **Content Generation** - Generate Audio Overviews (podcasts), videos, slide decks, quizzes, flashcards, infographics, data tables, mind maps, and study guides. Full control over formats, styles, and output.\n\n📥 **Downloads & Export** - Download all generated artifacts locally (MP3, MP4, PDF, PNG, CSV, JSON, Markdown). Export to Google Docs\u002FSheets. **Features the web UI doesn't offer**: batch downloads, quiz\u002Fflashcard export in multiple formats, mind map JSON extraction.\n\n## Three Ways to Use\n\n| Method | Best For |\n|--------|----------|\n| **Python API** | Application integration, async workflows, custom pipelines |\n| **CLI** | Shell scripts, quick tasks, CI\u002FCD automation |\n| **Agent Integration** | Claude Code, Codex, LLM agents, natural language automation |\n\n## Features\n\n### Complete NotebookLM Coverage\n\n| Category | Capabilities |\n|----------|--------------|\n| **Notebooks** | Create, list, rename, delete |\n| **Sources** | URLs, YouTube, files (PDF, text, Markdown, Word, audio, video, images), Google Drive, pasted text; refresh, get guide\u002Ffulltext |\n| **Chat** | Questions, conversation history, custom personas |\n| **Research** | Web and Drive research agents (fast\u002Fdeep modes) with auto-import |\n| **Sharing** | Public\u002Fprivate links, user permissions (viewer\u002Feditor), view level control |\n\n### Content Generation (All NotebookLM Studio Types)\n\n| Type | Options | Download Format |\n|------|---------|-----------------|\n| **Audio Overview** | 4 formats (deep-dive, brief, critique, debate), 3 lengths, 50+ languages | MP3\u002FMP4 |\n| **Video Overview** | 3 formats (explainer, brief, cinematic), 9 visual styles, plus a dedicated `cinematic-video` CLI alias | MP4 |\n| **Slide Deck** | Detailed or presenter format, adjustable length; individual slide revision | PDF, PPTX |\n| **Infographic** | 3 orientations, 3 detail levels | PNG |\n| **Quiz** | Configurable quantity and difficulty | JSON, Markdown, HTML |\n| **Flashcards** | Configurable quantity and difficulty | JSON, Markdown, HTML |\n| **Report** | Briefing doc, study guide, blog post, or custom prompt | Markdown |\n| **Data Table** | Custom structure via natural language | CSV |\n| **Mind Map** | Interactive hierarchical visualization | JSON |\n\n### Beyond the Web UI\n\nThese features are available via API\u002FCLI but not exposed in NotebookLM's web interface:\n\n- **Batch downloads** - Download all artifacts of a type at once\n- **Quiz\u002FFlashcard export** - Get structured JSON, Markdown, or HTML (web UI only shows interactive view)\n- **Mind map data extraction** - Export hierarchical JSON for visualization tools\n- **Data table CSV export** - Download structured tables as spreadsheets\n- **Slide deck as PPTX** - Download editable PowerPoint files (web UI only offers PDF)\n- **Slide revision** - Modify individual slides with natural-language prompts\n- **Report template customization** - Append extra instructions to built-in format templates\n- **Save chat to notes** - Save Q&A answers or conversation history as notebook notes\n- **Source fulltext access** - Retrieve the indexed text content of any source\n- **Programmatic sharing** - Manage permissions without the UI\n\n## Installation\n\n```bash\n# Basic installation\npip install notebooklm-py\n\n# With browser login support (required for first-time setup)\npip install \"notebooklm-py[browser]\"\nplaywright install chromium\n```\n\nIf `playwright install chromium` fails with `TypeError: onExit is not a function`, see the Linux workaround in [Troubleshooting](docs\u002Ftroubleshooting.md#linux).\n\n### Development Installation\n\nFor contributors or testing unreleased features:\n\n```bash\npip install git+https:\u002F\u002Fgithub.com\u002Fteng-lin\u002Fnotebooklm-py@main\n```\n\n⚠️ The main branch may contain unstable changes. Use PyPI releases for production.\n\n## Quick Start\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fasciinema.org\u002Fa\u002F767284\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fasciinema.org\u002Fa\u002F767284.svg\" width=\"600\" \u002F>\u003C\u002Fa>\n  \u003Cbr>\n  \u003Cem>16-minute session compressed to 30 seconds\u003C\u002Fem>\n\u003C\u002Fp>\n\n### CLI\n\n```bash\n# 1. Authenticate (opens browser)\nnotebooklm login\n# Or use Microsoft Edge (for orgs that require Edge for SSO)\n# notebooklm login --browser msedge\n\n# 2. Create a notebook and add sources\nnotebooklm create \"My Research\"\nnotebooklm use \u003Cnotebook_id>\nnotebooklm source add \"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FArtificial_intelligence\"\nnotebooklm source add \".\u002Fpaper.pdf\"\n\n# 3. Chat with your sources\nnotebooklm ask \"What are the key themes?\"\n\n# 4. Generate content\nnotebooklm generate audio \"make it engaging\" --wait\nnotebooklm generate video --style whiteboard --wait\nnotebooklm generate cinematic-video \"documentary-style summary\" --wait\nnotebooklm generate quiz --difficulty hard\nnotebooklm generate flashcards --quantity more\nnotebooklm generate slide-deck\nnotebooklm generate infographic --orientation portrait\nnotebooklm generate mind-map\nnotebooklm generate data-table \"compare key concepts\"\n\n# 5. Download artifacts\nnotebooklm download audio .\u002Fpodcast.mp3\nnotebooklm download video .\u002Foverview.mp4\nnotebooklm download cinematic-video .\u002Fdocumentary.mp4\nnotebooklm download quiz --format markdown .\u002Fquiz.md\nnotebooklm download flashcards --format json .\u002Fcards.json\nnotebooklm download slide-deck .\u002Fslides.pdf\nnotebooklm download infographic .\u002Finfographic.png\nnotebooklm download mind-map .\u002Fmindmap.json\nnotebooklm download data-table .\u002Fdata.csv\n```\n\nOther useful CLI commands:\n\n```bash\nnotebooklm auth check --test         # Diagnose auth\u002Fcookie issues\nnotebooklm agent show codex          # Print bundled Codex instructions\nnotebooklm agent show claude         # Print bundled Claude Code skill template\nnotebooklm language list             # List supported output languages\nnotebooklm metadata --json           # Export notebook metadata and sources\nnotebooklm share status              # Inspect sharing state\nnotebooklm source add-research \"AI\"  # Start web research and import sources\nnotebooklm skill status              # Check local agent skill installation\n```\n\n### Python API\n\n```python\nimport asyncio\nfrom notebooklm import NotebookLMClient\n\nasync def main():\n    async with await NotebookLMClient.from_storage() as client:\n        # Create notebook and add sources\n        nb = await client.notebooks.create(\"Research\")\n        await client.sources.add_url(nb.id, \"https:\u002F\u002Fexample.com\", wait=True)\n\n        # Chat with your sources\n        result = await client.chat.ask(nb.id, \"Summarize this\")\n        print(result.answer)\n\n        # Generate content (podcast, video, quiz, etc.)\n        status = await client.artifacts.generate_audio(nb.id, instructions=\"make it fun\")\n        await client.artifacts.wait_for_completion(nb.id, status.task_id)\n        await client.artifacts.download_audio(nb.id, \"podcast.mp3\")\n\n        # Generate quiz and download as JSON\n        status = await client.artifacts.generate_quiz(nb.id)\n        await client.artifacts.wait_for_completion(nb.id, status.task_id)\n        await client.artifacts.download_quiz(nb.id, \"quiz.json\", output_format=\"json\")\n\n        # Generate mind map and export\n        result = await client.artifacts.generate_mind_map(nb.id)\n        await client.artifacts.download_mind_map(nb.id, \"mindmap.json\")\n\nasyncio.run(main())\n```\n\n### Agent Setup\n\n**Option 1 — CLI install**:\n\n```bash\nnotebooklm skill install\n```\n\nInstalls the skill into `~\u002F.claude\u002Fskills\u002Fnotebooklm` and `~\u002F.agents\u002Fskills\u002Fnotebooklm`.\n\n**Option 2 — `npx` install** (via the open skills ecosystem):\n\n```bash\nnpx skills add teng-lin\u002Fnotebooklm-py\n```\n\nFetches the canonical [SKILL.md](SKILL.md) directly from GitHub.\n\n\n## Documentation\n\n- **[CLI Reference](docs\u002Fcli-reference.md)** - Complete command documentation\n- **[Python API](docs\u002Fpython-api.md)** - Full API reference\n- **[Configuration](docs\u002Fconfiguration.md)** - Storage and settings\n- **[Release Guide](docs\u002Freleasing.md)** - Release checklist and packaging verification\n- **[Troubleshooting](docs\u002Ftroubleshooting.md)** - Common issues and solutions\n- **[API Stability](docs\u002Fstability.md)** - Versioning policy and stability guarantees\n\n### For Contributors\n\n- **[Development Guide](docs\u002Fdevelopment.md)** - Architecture, testing, and releasing\n- **[RPC Development](docs\u002Frpc-development.md)** - Protocol capture and debugging\n- **[RPC Reference](docs\u002Frpc-reference.md)** - Payload structures\n- **[Changelog](CHANGELOG.md)** - Version history and release notes\n- **[Security](SECURITY.md)** - Security policy and credential handling\n\n## Platform Support\n\n| Platform | Status | Notes |\n|----------|--------|-------|\n| **macOS** | ✅ Tested | Primary development platform |\n| **Linux** | ✅ Tested | Fully supported |\n| **Windows** | ✅ Tested | Tested in CI |\n\n## Star History\n\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fteng-lin_notebooklm-py_readme_04c8c9c3993c.png)](https:\u002F\u002Fwww.star-history.com\u002F?repos=teng-lin%2Fnotebooklm-py&type=timeline&legend=top-left)\n\n## License\n\nMIT License. See [LICENSE](LICENSE) for details.\n","# notebooklm-py\n\u003Cp align=\"left\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fteng-lin_notebooklm-py_readme_df8741a9cb5f.png\" alt=\"notebooklm-py logo\" width=\"128\">\n\u003C\u002Fp>\n\n**一个全面的 NotebookLM 技能与非官方 Python API。** 通过 Python、CLI 以及 Claude Code、Codex 和 OpenClaw 等 AI 代理，实现对 NotebookLM 功能的完全程序化访问——包括那些网页界面未公开的能力。\n\n[![PyPI version](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fnotebooklm-py.svg)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fnotebooklm-py\u002F)\n[![Python Version](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.10%20%7C%203.11%20%7C%203.12%20%7C%203.13%20%7C%203.14%20%7C%203.15-blue)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fnotebooklm-py\u002F)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n[![Tests](https:\u002F\u002Fgithub.com\u002Fteng-lin\u002Fnotebooklm-py\u002Factions\u002Fworkflows\u002Ftest.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fteng-lin\u002Fnotebooklm-py\u002Factions\u002Fworkflows\u002Ftest.yml)\n\u003Cp>\n  \u003Ca href=\"https:\u002F\u002Ftrendshift.io\u002Frepositories\u002F19116\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fteng-lin_notebooklm-py_readme_17f4a7d6fa98.png\" alt=\"teng-lin%2Fnotebooklm-py | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n**源代码与开发**: \u003Chttps:\u002F\u002Fgithub.com\u002Fteng-lin\u002Fnotebooklm-py>\n\n> **⚠️ 非官方库 - 请自担风险使用**\n>\n> 本库使用了**未经文档化的 Google API**，这些 API 可能会在未事先通知的情况下发生变化。\n>\n> - **与 Google 无关联** - 这是一个社区项目\n> - **API 可能会失效** - Google 随时可能更改内部端点\n> - **存在速率限制** - 大量使用可能会被限流\n>\n> 最适合用于原型开发、研究和个人项目。有关调试技巧，请参阅 [故障排除](docs\u002Ftroubleshooting.md)。\n\n## 您可以构建什么\n\n🤖 **AI 代理工具** - 将 NotebookLM 集成到 Claude Code、Codex 等大型语言模型代理中。随附一个适用于 GitHub 的根 [NotebookLM 技能](SKILL.md)，支持 `npx skills add` 发现功能、本地 `notebooklm skill install` 对 Claude Code 的支持，以及 `.agents` 技能目录，并在 [`AGENTS.md`](AGENTS.md) 中提供了仓库级别的 Codex 指导。\n\n📚 **研究自动化** - 批量导入来源（URL、PDF、YouTube、Google Drive），运行带有自动导入功能的网络或云端研究查询，并以编程方式提取见解。构建可重复的研究流程。\n\n🎙️ **内容生成** - 生成音频概览（播客）、视频、幻灯片演示文稿、测验、抽认卡、信息图、数据表格、思维导图和学习指南。完全控制格式、风格和输出。\n\n📥 **下载与导出** - 将所有生成的成果本地下载（MP3、MP4、PDF、PNG、CSV、JSON、Markdown）。导出至 Google 文档\u002F表格。**网页界面未提供的功能**：批量下载、以多种格式导出测验\u002F抽认卡、提取思维导图的 JSON 数据。\n\n## 三种使用方式\n\n| 方法 | 最适合 |\n|--------|----------|\n| **Python API** | 应用程序集成、异步工作流、自定义流程 |\n| **CLI** | Shell 脚本、快速任务、CI\u002FCD 自动化 |\n| **代理集成** | Claude Code、Codex、LLM 代理、自然语言自动化 |\n\n## 功能\n\n### 完整覆盖 NotebookLM\n\n| 类别 | 功能 |\n|----------|--------------|\n| **笔记本** | 创建、列出、重命名、删除 |\n| **来源** | URL、YouTube、文件（PDF、文本、Markdown、Word、音频、视频、图片）、Google Drive、粘贴的文本；刷新、获取指南\u002F全文 |\n| **聊天** | 提问、对话历史、自定义角色 |\n| **研究** | 网络和云端研究代理（快速\u002F深度模式），支持自动导入 |\n| **分享** | 公开\u002F私有链接、用户权限（查看者\u002F编辑者）、视图级别控制 |\n\n### 内容生成（所有 NotebookLM Studio 类型）\n\n| 类型 | 选项 | 下载格式 |\n|------|---------|-----------------|\n| **音频概览** | 4 种格式（深度解读、简短版、评论版、辩论版）、3 种时长、50 多种语言 | MP3\u002FMP4 |\n| **视频概览** | 3 种格式（讲解版、简短版、电影级）、9 种视觉风格，另有一个专门的 `cinematic-video` CLI 别名 | MP4 |\n| **幻灯片演示文稿** | 详细版或演讲者版，长度可调；可单独修改每一张幻灯片 | PDF、PPTX |\n| **信息图** | 3 种方向、3 种细节层次 | PNG |\n| **测验** | 可配置数量和难度 | JSON、Markdown、HTML |\n| **抽认卡** | 可配置数量和难度 | JSON、Markdown、HTML |\n| **报告** | 简报、学习指南、博客文章，或自定义提示 | Markdown |\n| **数据表** | 通过自然语言自定义结构 | CSV |\n| **思维导图** | 交互式层级可视化 | JSON |\n\n### 超越网页界面\n\n以下功能可通过 API\u002FCLI 使用，但在 NotebookLM 的网页界面上并未公开：\n\n- **批量下载** - 一次性下载某一类型的所有成果\n- **测验\u002F抽认卡导出** - 获取结构化的 JSON、Markdown 或 HTML（网页界面仅显示交互式视图）\n- **思维导图数据提取** - 导出层级化的 JSON 数据，供可视化工具使用\n- **数据表 CSV 导出** - 将结构化表格下载为电子表格\n- **幻灯片以 PPTX 格式下载** - 下载可编辑的 PowerPoint 文件（网页界面仅提供 PDF）\n- **幻灯片修订** - 使用自然语言提示修改单张幻灯片\n- **报告模板定制** - 在内置格式模板的基础上添加额外说明\n- **将聊天记录保存为笔记** - 将问答答案或对话历史保存为笔记本笔记\n- **来源全文访问** - 检索任何来源的索引文本内容\n- **程序化分享** - 无需通过界面即可管理权限\n\n## 安装\n\n```bash\n# 基本安装\npip install notebooklm-py\n\n# 带浏览器登录支持（首次设置必需）\npip install \"notebooklm-py[browser]\"\nplaywright install chromium\n```\n\n如果 `playwright install chromium` 出现 `TypeError: onExit is not a function` 错误，请参阅 [故障排除](docs\u002Ftroubleshooting.md#linux) 中的 Linux 解决方案。\n\n### 开发环境安装\n\n适用于贡献者或测试未发布的功能：\n\n```bash\npip install git+https:\u002F\u002Fgithub.com\u002Fteng-lin\u002Fnotebooklm-py@main\n```\n\n⚠️ 主分支可能包含不稳定的变化。生产环境中请使用 PyPI 发布版本。\n\n## 快速入门\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fasciinema.org\u002Fa\u002F767284\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fasciinema.org\u002Fa\u002F767284.svg\" width=\"600\" \u002F>\u003C\u002Fa>\n  \u003Cbr>\n  \u003Cem>16 分钟会话压缩至 30 秒\u003C\u002Fem>\n\u003C\u002Fp>\n\n### CLI\n\n```bash\n# 1. 认证（打开浏览器）\nnotebooklm login\n# 或使用 Microsoft Edge（对于需要 Edge 进行 SSO 的组织）\n# notebooklm login --browser msedge\n\n# 2. 创建笔记本并添加来源\nnotebooklm create \"我的研究\"\nnotebooklm use \u003C笔记本ID>\nnotebooklm source add \"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FArtificial_intelligence\"\nnotebooklm source add \".\u002Fpaper.pdf\"\n\n# 3. 与您的来源进行对话\nnotebooklm ask \"主要主题有哪些？\"\n\n# 4. 生成内容\nnotebooklm generate audio \"make it engaging\" --wait\nnotebooklm generate video --style whiteboard --wait\nnotebooklm generate cinematic-video \"documentary-style summary\" --wait\nnotebooklm generate quiz --difficulty hard\nnotebooklm generate flashcards --quantity more\nnotebooklm generate slide-deck\nnotebooklm generate infographic --orientation portrait\nnotebooklm generate mind-map\nnotebooklm generate data-table \"compare key concepts\"\n\n# 5. 下载成果\nnotebooklm download audio .\u002Fpodcast.mp3\nnotebooklm download video .\u002Foverview.mp4\nnotebooklm download cinematic-video .\u002Fdocumentary.mp4\nnotebooklm download quiz --format markdown .\u002Fquiz.md\nnotebooklm download flashcards --format json .\u002Fcards.json\nnotebooklm download slide-deck .\u002Fslides.pdf\nnotebooklm download infographic .\u002Finfographic.png\nnotebooklm download mind-map .\u002Fmindmap.json\nnotebooklm download data-table .\u002Fdata.csv\n```\n\n其他有用的 CLI 命令：\n\n```bash\nnotebooklm auth check --test         # 诊断认证\u002Fcookie 问题\nnotebooklm agent show codex          # 打印捆绑的 Codex 指令\nnotebooklm agent show claude         # 打印捆绑的 Claude Code 技能模板\nnotebooklm language list             # 列出支持的输出语言\nnotebooklm metadata --json           # 导出笔记本元数据和来源\nnotebooklm share status              # 检查共享状态\nnotebooklm source add-research \"AI\"  # 开始网络研究并导入来源\nnotebooklm skill status              # 检查本地代理技能安装情况\n```\n\n### Python API\n\n```python\nimport asyncio\nfrom notebooklm import NotebookLMClient\n\nasync def main():\n    async with await NotebookLMClient.from_storage() as client:\n        # 创建笔记本并添加来源\n        nb = await client.notebooks.create(\"Research\")\n        await client.sources.add_url(nb.id, \"https:\u002F\u002Fexample.com\", wait=True)\n\n        # 与你的资料源对话\n        result = await client.chat.ask(nb.id, \"总结一下这个\")\n        print(result.answer)\n\n        # 生成内容（播客、视频、测验等）\n        status = await client.artifacts.generate_audio(nb.id, instructions=\"让内容更有趣\")\n        await client.artifacts.wait_for_completion(nb.id, status.task_id)\n        await client.artifacts.download_audio(nb.id, \"podcast.mp3\")\n\n        # 生成测验并以 JSON 格式下载\n        status = await client.artifacts.generate_quiz(nb.id)\n        await client.artifacts.wait_for_completion(nb.id, status.task_id)\n        await client.artifacts.download_quiz(nb.id, \"quiz.json\", output_format=\"json\")\n\n        # 生成思维导图并导出\n        result = await client.artifacts.generate_mind_map(nb.id)\n        await client.artifacts.download_mind_map(nb.id, \"mindmap.json\")\n\nasyncio.run(main())\n```\n\n### 代理设置\n\n**选项 1 — CLI 安装**：\n\n```bash\nnotebooklm skill install\n```\n\n将技能安装到 `~\u002F.claude\u002Fskills\u002Fnotebooklm` 和 `~\u002F.agents\u002Fskills\u002Fnotebooklm`。\n\n**选项 2 — 使用 `npx` 安装**（通过开放技能生态系统）：\n\n```bash\nnpx skills add teng-lin\u002Fnotebooklm-py\n```\n\n直接从 GitHub 获取规范的 [SKILL.md](SKILL.md)。\n\n\n## 文档\n\n- **[CLI 参考](docs\u002Fcli-reference.md)** - 完整的命令文档\n- **[Python API](docs\u002Fpython-api.md)** - 完整的 API 参考\n- **[配置](docs\u002Fconfiguration.md)** - 存储与设置\n- **[发布指南](docs\u002Freleasing.md)** - 发布检查清单和打包验证\n- **[故障排除](docs\u002Ftroubleshooting.md)** - 常见问题及解决方案\n- **[API 稳定性](docs\u002Fstability.md)** - 版本控制策略和稳定性保证\n\n### 贡献者须知\n\n- **[开发指南](docs\u002Fdevelopment.md)** - 架构、测试和发布\n- **[RPC 开发](docs\u002Frpc-development.md)** - 协议捕获和调试\n- **[RPC 参考](docs\u002Frpc-reference.md)** - 数据负载结构\n- **[变更日志](CHANGELOG.md)** - 版本历史和发布说明\n- **[安全](SECURITY.md)** - 安全策略和凭据处理\n\n## 平台支持\n\n| 平台 | 状态 | 备注 |\n|----------|--------|-------|\n| **macOS** | ✅ 已测试 | 主要开发平台 |\n| **Linux** | ✅ 已测试 | 完全支持 |\n| **Windows** | ✅ 已测试 | 在 CI 中已测试 |\n\n## 星标历史\n\n[![星标历史图表](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fteng-lin_notebooklm-py_readme_04c8c9c3993c.png)](https:\u002F\u002Fwww.star-history.com\u002F?repos=teng-lin%2Fnotebooklm-py&type=timeline&legend=top-left)\n\n## 许可证\n\nMIT 许可证。详情请参阅 [LICENSE](LICENSE)。","# notebooklm-py 快速上手指南\n\n`notebooklm-py` 是一个功能全面的 NotebookLM 非官方 Python API 和命令行工具。它允许你通过代码、CLI 或 AI 代理（如 Claude Code） programmatically 访问 NotebookLM 的所有功能，包括网页界面未暴露的高级特性（如批量下载、思维导图数据提取、PPTX 导出等）。\n\n> **⚠️ 重要提示**：本项目为非官方库，使用的是 Google 未公开的内部 API。API 接口可能随时变更，且存在速率限制。建议仅用于原型开发、研究或个人项目，生产环境请谨慎使用。\n\n## 环境准备\n\n- **操作系统**：macOS、Linux 或 Windows\n- **Python 版本**：3.10, 3.11, 3.12, 3.13 或 3.14\n- **前置依赖**：\n  - 若需使用浏览器登录功能（首次设置必需），需安装 `playwright` 及其浏览器内核。\n  - 确保网络环境可访问 Google 服务。\n\n## 安装步骤\n\n### 1. 基础安装\n通过 pip 安装核心库：\n\n```bash\npip install notebooklm-py\n```\n\n### 2. 安装浏览器支持（推荐）\n若需使用 `notebooklm login` 进行认证，请安装带浏览器支持的版本并配置 Playwright：\n\n```bash\npip install \"notebooklm-py[browser]\"\nplaywright install chromium\n```\n\n> **注意**：如果在 Linux 上执行 `playwright install chromium` 时遇到 `TypeError: onExit is not a function` 错误，请参考项目文档中的 Linux 变通方案。\n\n### 3. 国内加速方案（可选）\n如果直接连接 PyPI 较慢，可使用国内镜像源加速安装：\n\n```bash\npip install notebooklm-py -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\npip install \"notebooklm-py[browser]\" -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n*注：Playwright 的浏览器内核下载可能需要单独配置国内镜像或代理，具体视网络环境而定。*\n\n## 基本使用\n\n### 方式一：命令行 (CLI)\n\n这是最快捷的使用方式，适合脚本自动化和快速任务。\n\n**1. 认证登录**\n运行以下命令将打开浏览器进行 Google 账号授权：\n\n```bash\nnotebooklm login\n```\n\n**2. 创建笔记本并添加资料**\n创建一个新笔记本，添加网页链接或本地文件作为知识源：\n\n```bash\n# 创建名为 \"My Research\" 的笔记本\nnotebooklm create \"My Research\"\n\n# 使用刚创建的笔记本 (替换 \u003Cnotebook_id> 为实际 ID)\nnotebooklm use \u003Cnotebook_id>\n\n# 添加来源：可以是 URL 或本地文件 (PDF, TXT 等)\nnotebooklm source add \"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FArtificial_intelligence\"\nnotebooklm source add \".\u002Fpaper.pdf\"\n```\n\n**3. 对话与内容生成**\n基于资料进行提问，或生成播客、测验、幻灯片等内容：\n\n```bash\n# 提问\nnotebooklm ask \"What are the key themes?\"\n\n# 生成音频概览 (播客)\nnotebooklm generate audio \"make it engaging\" --wait\n\n# 生成测验并下载为 Markdown\nnotebooklm generate quiz --difficulty hard\nnotebooklm download quiz --format markdown .\u002Fquiz.md\n\n# 生成思维导图数据\nnotebooklm generate mind-map\nnotebooklm download mind-map .\u002Fmindmap.json\n```\n\n### 方式二：Python API\n\n适合集成到应用程序或构建复杂的异步工作流。\n\n```python\nimport asyncio\nfrom notebooklm import NotebookLMClient\n\nasync def main():\n    # 从存储加载认证信息初始化客户端\n    async with await NotebookLMClient.from_storage() as client:\n        # 1. 创建笔记本\n        nb = await client.notebooks.create(\"Research\")\n        \n        # 2. 添加来源 (等待上传完成)\n        await client.sources.add_url(nb.id, \"https:\u002F\u002Fexample.com\", wait=True)\n\n        # 3. 对话查询\n        result = await client.chat.ask(nb.id, \"Summarize this\")\n        print(result.answer)\n\n        # 4. 生成内容 (例如：生成测验并下载 JSON)\n        status = await client.artifacts.generate_quiz(nb.id)\n        # 等待任务完成\n        await client.artifacts.wait_for_completion(nb.id, status.task_id)\n        # 下载结果\n        await client.artifacts.download_quiz(nb.id, \"quiz.json\", output_format=\"json\")\n\nasyncio.run(main())\n```\n\n### 方式三：AI 代理集成\n\n若你使用 Claude Code 或其他支持 Skill 的 AI 代理，可一键安装技能以通过自然语言控制 NotebookLM：\n\n```bash\n# 本地安装技能\nnotebooklm skill install\n\n# 或者通过 npx 直接从 GitHub 获取\nnpx skills add teng-lin\u002Fnotebooklm-py\n```\n\n安装后，你可以在代理对话中直接使用如“帮我把这个 PDF 上传到 NotebookLM 并生成一个播客”之类的指令。","某教育科技公司的课程研发专员需要每周从数十篇最新学术论文和 YouTube 讲座中提取核心观点，并快速生成多格式的学习资料供内部团队复习。\n\n### 没有 notebooklm-py 时\n- **手动操作繁琐**：必须逐个打开网页上传 PDF 或粘贴链接，无法批量导入来源，耗时且容易出错。\n- **功能受限严重**：Web 界面不支持批量下载生成的思维导图 JSON 或测验卡片，只能截图或手动复制，难以二次编辑。\n- **流程无法自动化**：无法将“资料导入 - 分析 - 生成播客\u002F幻灯片”的过程集成到现有的 CI\u002FCD 流水线或 Python 脚本中。\n- **格式单一僵化**：难以程序化控制音频概述的语言、风格或视频的详细程度，每次调整都需人工重新点击配置。\n- **协作效率低下**：缺乏通过代码自动设置分享权限或生成特定用户组访问链接的能力，分发资料依赖人工邮件。\n\n### 使用 notebooklm-py 后\n- **批量处理高效**：编写几行 Python 代码即可遍历文件夹，自动上传数十个 PDF、URL 和 YouTube 视频到指定笔记本。\n- **深度数据提取**：直接调用 API 批量导出 Web 界面隐藏的思维导图 JSON 数据和多格式测验题，无缝接入内部题库系统。\n- **全流程自动化**：将资料处理管道嵌入日常脚本，实现从源文件更新到生成学习指南的全自动触发，无需人工干预。\n- **精细化内容定制**：通过参数灵活定义生成 50 多种语言的深度辩论式播客或电影级风格视频，精准匹配不同学员需求。\n- **智能权限管理**：代码自动根据团队成员角色创建带有特定查看\u002F编辑权限的分享链接，并即时分发给相关人员。\n\nnotebooklm-py 将原本碎片化、手工化的知识加工过程，转变为可编程、可扩展的自动化智能生产流。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fteng-lin_notebooklm-py_df8741a9.png","teng-lin","Teng Lin","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fteng-lin_9f3fa317.jpg","SWE, Product Manager, and BD Exec. Combining domain expertise in Life Science with scalable software and business acumen. Actively building agentic AI tools.","XtalPi Inc.","New York","teng.lin@gmail.com","teng_lin","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Flinteng\u002F","https:\u002F\u002Fgithub.com\u002Fteng-lin",[84],{"name":85,"color":86,"percentage":87},"Python","#3572A5",100,9674,1270,"2026-04-09T17:51:27","MIT","Linux, macOS, Windows","未说明",{"notes":95,"python":96,"dependencies":97},"这是一个非官方的 Python API 库，用于通过程序访问 Google NotebookLM 的功能，本身不运行大型本地模型，因此无特殊 GPU 或大内存需求。若需使用浏览器自动登录功能，需安装 'notebooklm-py[browser]' 并执行 'playwright install chromium'。在 Linux 上若遇到 Playwright 安装错误，需参考文档中的变通方案。该库依赖未公开的 Google API，可能存在不稳定风险。","3.10, 3.11, 3.12, 3.13, 3.14",[98],"playwright (可选，用于浏览器登录支持)",[52,14,13,16],[101,102,103,104,105,106,107,108,109,110,111,112,113,114],"api","claude","python","sdk","skills","google-notebooklm","notebooklm","notebooklm-api","podcast-generator","python-api","agentic-skill","claude-skills","openclaw-skills","notebooklm-skill",null,"2026-03-27T02:49:30.150509","2026-04-10T06:34:43.338566",[119,124,129,134,139,143],{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},27191,"在 Windows 上运行 `notebooklm skill install` 时出现 UnicodeDecodeError 怎么办？","这是由于 Windows 上 Python 的 `pathlib.read_text()` 默认使用 CP1252 编码而非 UTF-8 导致的。解决方案是升级库到修复版本（PR #93 合并后），该版本已在所有文件 I\u002FO 操作中显式添加了 `encoding=\"utf-8\"` 参数。临时解决方法是使用命令：`python -X utf8 -m notebooklm.notebooklm_cli skill install`。如果问题仍存在于认证或其他 CLI 命令中，请确保升级到最新版本以包含对 `cli\u002Fskill.py`, `auth.py`, `cli\u002Fhelpers.py` 和 `cli\u002Fsession.py` 的编码修复。","https:\u002F\u002Fgithub.com\u002Fteng-lin\u002Fnotebooklm-py\u002Fissues\u002F83",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},27192,"CLI 显示“Authentication expired”错误，但 Cookie 实际上未过期且有效，如何解决？","这通常是由于旧版本（如 v0.2.0）处理存储状态的方式有误导致的。解决步骤如下：\n1. 强制升级到最新版本（例如 v0.2.1 或更高）：`uv tool install notebooklm-py --force` 或 `pip install --upgrade notebooklm-py`。\n2. 升级后必须重新执行登录命令：`notebooklm login`。\n注意：仅升级或仅重新登录可能无效，必须结合两者。此问题在 PR #34 中得到了修复，改进了 Cookie 和 Token 的结构化处理。","https:\u002F\u002Fgithub.com\u002Fteng-lin\u002Fnotebooklm-py\u002Fissues\u002F39",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},27193,"英国或非 .com 域名区域的用户登录后所有命令都提示认证失败，原因是什么？","这是因为登录过程中 Cookie 被设置在了区域域名（如 `.google.co.uk`）上，而 CLI 工具默认查找 `.google.com` 的 Cookie。维护者已确认这是一个已知问题（Issue #146），通常需要通过更新到包含区域域名支持的修复版本来解决。如果当前版本仍未修复，建议检查是否有针对区域性 Google 域名的特定配置选项，或暂时手动将 Cookie 导出并调整为通用域名格式（需参考最新代码库的修复补丁）。","https:\u002F\u002Fgithub.com\u002Fteng-lin\u002Fnotebooklm-py\u002Fissues\u002F146",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},27194,"通过 API 进行深度研究（Deep Research）后，导入来源时研究报告在 Web UI 中消失，如何保留报告？","该问题已在 PR #193 中修复。现在的正确工作流如下：\n1. 启动研究：`client.research.start(notebook_id, query, mode=\"deep\")`\n2. 轮询直到完成：`client.research.poll(notebook_id)`（确保获取完整的任务 ID 和报告内容）\n3. 导入来源：`client.research.import_sources(notebook_id, task_id, sources)`\n修复后的 `import_sources()` 会使用轮询得到的 `research_task_id`，并在导入常规网页来源之前，先将特殊的报告条目添加到内部列表中，从而确保报告内容在 Web UI 中可见。请确保升级到包含此修复的版本。","https:\u002F\u002Fgithub.com\u002Fteng-lin\u002Fnotebooklm-py\u002Fissues\u002F180",{"id":140,"question_zh":141,"answer_zh":142,"source_url":123},27195,"Windows 用户在使用 `notebooklm login` 时浏览器打开后立即崩溃或报错，如何处理？","这通常与 Windows 控制台的 Unicode 编码问题有关（UnicodeEncodeError）。首先尝试使用 `python -X utf8` 标志运行命令来强制使用 UTF-8 编码。如果问题涉及持久化配置文件（browser_profile），请尝试删除 `C:\\Users\\\u003C用户名>\\.notebooklm\\browser_profile` 目录后重新登录。此外，确保已安装包含编码修复的最新版本（参考 Issue #83 的修复），因为旧版本在处理包含非 ASCII 字符的路径或配置时会失败。",{"id":144,"question_zh":145,"answer_zh":146,"source_url":128},27196,"如何验证保存的 Cookie 是否真的有效，还是 CLI 本身的误报？","可以通过 Python 脚本直接使用保存的 Cookie 发送 HTTP 请求来验证。加载 `storage_state.json` 文件，提取 cookies 字段，将其格式化为 Cookie 字符串，然后使用 `urllib.request` 或 `requests` 库访问 `https:\u002F\u002Fnotebooklm.google.com\u002F`。如果返回状态码 200，说明 Cookie 有效，问题出在 CLI 工具的解析逻辑上（需升级 CLI）；如果返回重定向或 401，则说明 Cookie 确实已失效，需要重新运行 `notebooklm login`。",[148,153,158,163,168,173,178,183],{"id":149,"version":150,"summary_zh":151,"released_at":152},180289,"v0.3.4","### 新增\n- **笔记本元数据导出** - 新增笔记本元数据 API 和 CLI 导出功能，并简化了来源列表\n  - 新增 `notebooklm metadata` 命令，支持人类可读格式和 `--json` 输出\n  - 新增 `NotebookMetadata` 和 `SourceSummary` 公开类型\n  - 新增 `client.notebooks.get_metadata()` 辅助方法\n- **电影级视频概览支持** - 新增电影级视频生成和下载流程\n  - `notebooklm generate video --format cinematic`\n- **信息图样式** - 新增通过 CLI 选择信息图视觉风格的支持\n- **`source delete-by-title`** - 新增用于按精确标题删除来源的显式命令\n\n### 修复\n- **研究导入超时问题** - CLI 研究导入现在会在超时后采用退避策略重试\n- **元数据命令行为** - 将元数据输出和实现与当前 CLI 风格保持一致\n- **地区登录 Cookie** - 改进了对地区性 Google 域名的浏览器登录处理\n- **笔记本摘要解析** - 修复了笔记本摘要响应的解析问题\n- **删除来源的用户体验** - 改进了删除来源的确认流程、歧义处理以及标题与 ID 混淆的错误提示\n- **空文件下载** - 现在会抛出错误，而不是生成零字节文件\n- **模块执行** - 新增 `python -m notebooklm` 支持\n\n### 变更\n- **文档更新** - 更新了发布说明、开发文档、CLI 文档、README 以及 Python API 文档，以反映当前的命令、API 和 `uv` 工作流\n- **公共 API 接口** - 导出了 `NotebookMetadata`、`SourceSummary` 和 `InfographicStyle`","2026-03-12T03:05:20",{"id":154,"version":155,"summary_zh":156,"released_at":157},180290,"v0.3.3","## [0.3.3] - 2026-03-03\n\n### 新增功能\n- **`ask --save-as-note`** - 直接从命令行将聊天回答保存为笔记本笔记 (#135)\n  - `notebooklm ask \"question\" --save-as-note` - 将回复保存为笔记\n  - `notebooklm ask \"question\" --save-as-note --note-title \"Title\"` - 使用自定义标题保存\n- **`history --save`** - 将完整对话历史保存为笔记本笔记 (#135)\n  - `notebooklm history --save` - 使用默认标题保存历史\n  - `notebooklm history --save --note-title \"Title\"` - 使用自定义标题保存\n  - `notebooklm history --show-all` - 显示完整的问答内容，而非预览\n- **`generate report --append`** - 将自定义指令追加到内置报告格式模板中 (#134)\n  - 适用于“简报文档”、“学习指南”和“博客文章”格式（对“自定义”格式无效）\n  - 示例：`notebooklm generate report --format study-guide --append \"目标受众：初学者\"`\n- **`generate revise-slide`** - 修改现有幻灯片演示文稿中的单个幻灯片 (#129)\n  - `notebooklm generate revise-slide \"prompt\" --artifact \u003Cid> --slide 0`\n- **幻灯片演示文稿的 PPTX 下载** - 可将幻灯片演示文稿下载为可编辑的 PowerPoint 文件 (#129)\n  - `notebooklm download slide-deck --format pptx`（仅网页界面提供 PDF 格式）\n\n### 修复\n- **下载命令中的部分工件 ID** - 下载命令现支持部分工件 ID (#130)\n- **聊天空回复问题** - 修复了当 API 响应标记发生变化时，`ask` 命令返回空回复的问题 (#123)\n- **X.com\u002FTwitter 内容解析** - 修复了 X.com\u002FTwitter 来源内容的解析问题 (#119)\n- **登录时的语言同步** - 在执行 `notebooklm login` 后，将服务器端语言设置同步到本地配置 (#124)\n- **Python 版本检查** - 添加了运行时检查，并针对 Python \u003C 3.10 提供清晰的错误提示 (#125)\n- **RPC 错误诊断** - 改进了 GET_NOTEBOOK 和认证健康检查失败时的错误报告 (#126, #127)\n- **对话持久化** - 聊天对话现可在服务器端持久化；`history` 输出中会显示对话 ID (#138)\n- **历史问答预览** - 修复了使用对话轮次 API 填充问答预览的问题 (#136)\n- **`generate report --language`** - 修复了报告生成缺少 `--language` 选项的问题 (#109)\n\n### 变更\n- **聊天历史 API** - 简化了历史记录的获取方式；通过并行请求改进了对话分组 (#140, #141)\n- **对话 ID 跟踪** - 由新的 `hPTbtc` RPC（`GET_LAST_CONVERSATION_ID`）进行服务器端对话查找，取代了本地交换 ID 跟踪\n- **历史问答填充** - 现在使用 `khqZz` RPC（`GET_CONVERSATION_TURNS`）来获取完整的问答轮次，并提供准确的预览 (#136)\n\n### 基础设施\n- 将 `actions\u002Fupload-artifact` 从 v6 升级至 v7 (#131)","2026-03-03T19:18:36",{"id":159,"version":160,"summary_zh":161,"released_at":162},180291,"v0.3.2","## 修复\n- **CLI 对话重置** - 修复切换笔记本时对话 ID 未重置的问题 (#97)\n- **UTF-8 文件编码** - 在所有文件 I\u002FO 操作中显式添加 UTF-8 编码 (#93)\n- **Windows 上的 Playwright 登录** - 恢复了 Windows 系统下 Playwright 登录使用的 ProactorEventLoop (#91)\n\n## 基础设施\n- 修复了端到端测试的清理钩子，以兼容 pytest 8.x 版本 (#101)\n- 在端到端生成测试之间增加了 15 秒的延迟，以避免触发速率限制 (#95)\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fteng-lin\u002Fnotebooklm-py\u002Fcompare\u002Fv0.3.1...v0.3.2","2026-01-26T15:47:17",{"id":164,"version":165,"summary_zh":166,"released_at":167},180292,"v0.3.1","## 变更内容\n\n### 修复\n- **Windows CLI 卡死** - 修复了 asyncio ProactorEventLoop 不兼容问题，该问题导致 CLI 在 Windows 上卡死 (#79)\n- **Unicode 编码错误** - 修复了非英语 Windows 系统上的编码问题 (#80)\n- **流式下载** - 下载现使用临时文件进行流式处理，以防止部分下载损坏 (#82)\n- **部分 ID 匹配** - 所有 CLI 命令现在支持对笔记本、源和工件的部分 ID 匹配 (#84)\n- **源操作** - 修复了空数组处理以及 `add_drive` 的嵌套问题 (#73)\n- **指南响应解析** - 修复了 `get_guide` 响应中的三层嵌套问题 (#72)\n- **RPC 健康检查** - 处理健康检查脚本中的空响应 (#71)\n- **脚本清理** - 确保在失败或中断时清理临时笔记本文件\n\n### 基础设施\n- 在夜间端到端测试中添加了 develop 分支，并采用错峰调度\n- 在夜间端到端工作流中增加了自定义分支支持，用于发布测试\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fteng-lin\u002Fnotebooklm-py\u002Fcompare\u002Fv0.3.0...v0.3.1","2026-01-23T22:30:38",{"id":169,"version":170,"summary_zh":171,"released_at":172},180293,"v0.3.0","## 新增内容\n\n### 新功能\n- **语言设置** - 配置生成成果的输出语言（支持80多种语言）\n- **分享API** - 通过编程方式管理笔记本分享（`client.sharing.*`）\n- **`SourceType` 和 `ArtifactType` 枚举** - 提供类型安全的源文件\u002F成果识别\n- **`.kind` 属性** - 在 Source、Artifact、SourceFulltext 中统一访问类型\n- **`--retry` 标志** - 在遇到速率限制时自动进行指数退避重试\n- **集中式异常层级结构** - 所有错误均继承自 `NotebookLMError`\n- **CLI `share` 命令组** - 通过命令行分享笔记本\n\n### 已弃用（将在 v0.4.0 中移除）\n- `Source.source_type` → 请改用 `.kind`\n- `Artifact.artifact_type` → 请改用 `.kind`\n- `Artifact.variant` → 请改用 `.kind`、`.is_quiz` 或 `.is_flashcards`\n- `SourceFulltext.source_type` → 请改用 `.kind`\n- `StudioContentType` → 请改用 `ArtifactType`\n\n升级说明请参阅[迁移指南](https:\u002F\u002Fgithub.com\u002Fteng-lin\u002Fnotebooklm-py\u002Fblob\u002Fv0.3.0\u002Fdocs\u002Fstability.md#migrating-from-v02x-to-v030)。\n\n### 修复\n- CLI 中的静默失败现在会正确报告错误\n- 源文件类型表情符号显示的一致性问题已解决\n\n### 变更\n- 源文件类型检测使用 API 提供的类型代码\n- CLI 文件处理简化为使用 `add_file()`\n\n### 移除\n- `detect_source_type()` - 已被 `Source.kind` 取代\n- `ARTIFACT_TYPE_DISPLAY` - 已被 `get_artifact_type_display()` 取代\n\n---\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fteng-lin\u002Fnotebooklm-py\u002Fblob\u002Fv0.3.0\u002FCHANGELOG.md\n\n**安装**：`pip install notebooklm-py==0.3.0`","2026-01-21T15:37:50",{"id":174,"version":175,"summary_zh":176,"released_at":177},180294,"v0.2.1","## 新增功能\n- **身份验证诊断** - 新增 `notebooklm auth check` 命令，用于排查身份验证问题\n  - 显示存储文件的位置及有效性\n  - 列出当前存在的 Cookie 及其所属域名\n  - 检测是否使用了 `NOTEBOOKLM_AUTH_JSON` 和 `NOTEBOOKLM_HOME` 环境变量\n  - 使用 `--test` 标志可执行网络连通性验证\n  - 使用 `--json` 标志输出机器可读格式（适合 CI\u002FCD 流程）\n- **结构化日志记录** - 整个库全面启用 DEBUG 级别日志记录\n  - 提供 `NOTEBOOKLM_LOG_LEVEL` 环境变量配置（DEBUG、INFO、WARNING、ERROR）\n  - 记录 RPC 调用的耗时与方法调用轨迹\n  - 旧版 `NOTEBOOKLM_DEBUG_RPC=1` 配置仍兼容\n- **RPC 健康监测** - 每晚自动检查 Google API 是否有变更\n  - 在 RPC 方法 ID 不匹配导致故障前进行检测\n  - 检测到问题时会自动创建带有 `rpc-breakage` 标签的 GitHub 问题\n\n## 修复内容\n- **Cookie 域名优先级** - 将 `.google.com` 域名的 Cookie 优先级设为高于地区性域名（如 `.google.co.uk`），以提高身份验证的可靠性\n- **YouTube URL 解析** - 改进了对 YouTube 视频 URL 边界情况的处理\n\n## 文档更新\n- 在 CLI 参考文档和故障排除指南中新增了 `auth check` 相关内容\n- 将 CI\u002FCD 故障排除内容整合至开发指南\n- 在 SKILL.md 中添加了 Claude Code 的安装说明\n- 明确了版本号命名规则（PATCH 与 MINOR 的区别）\n\n---\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fteng-lin\u002Fnotebooklm-py\u002Fcompare\u002Fv0.2.0...v0.2.1","2026-01-15T17:54:39",{"id":179,"version":180,"summary_zh":181,"released_at":182},180295,"v0.2.0","## [0.2.0] - 2026-01-14\n\n### 新增功能\n- **源文档全文提取** - 检索任意来源的完整索引文本内容\n  - 新增 `client.sources.get_fulltext(notebook_id, source_id)` Python API\n  - 新增 `source fulltext \u003Csource_id>` CLI 命令，支持 `--json` 和 `-o` 输出选项\n  - 返回包含内容、标题、URL 和字符数的 `SourceFulltext` 数据类\n- **聊天引用参考** - 获取聊天回答的详细来源引用信息\n  - `AskResult.references` 字段包含 `ChatReference` 对象列表\n  - 每个引用包括 `source_id`、`引用文本`、`起始字符位置`、`结束字符位置` 和 `分块 ID`\n  - 使用 `notebooklm ask \"question\" --json` 可在 CLI 输出中查看引用信息\n- **源状态辅助函数** - 新增 `source_status_to_str()` 函数，用于统一显示源状态\n- **测验与闪卡下载** - 支持以多种格式导出互动式学习材料\n  - 新增 `download quiz` 和 `download flashcards` CLI 命令\n  - 通过 `--format` 标志支持 JSON、Markdown 和 HTML 输出格式\n  - Python API：`client.artifacts.download_quiz()` 和 `client.artifacts.download_flashcards()`\n- **扩展型成果物下载** - 支持下载更多类型的成果物\n  - 新增 `download report` 命令（导出为 Markdown）\n  - 新增 `download mind-map` 命令（导出为 JSON）\n  - 新增 `download data-table` 命令（导出为 CSV）\n  - 所有下载命令均支持 `--all`、`--latest`、`--name` 和 `--artifact` 筛选选项\n\n### 修复问题\n- **区域 Google 域名认证** - SID Cookie 提取现可在除 google.com 外的区域 Google 域名（如 google.co.uk、google.de、google.cn）上正常工作\n- **成果物完成度检测** - 现在会在报告成果物已完成之前验证媒体 URL 的可用性，从而避免过早标记为“就绪”状态\n- **URL 主机名验证** - 采用正确的 URL 解析方法，而非字符串操作，以提升安全性\n\n### 变更\n- **预提交检查** - 在必需的 pre-commit 工作流中添加了 mypy 类型检查\n\n---\n\n**安装命令：** `pip install notebooklm-py==0.2.0`\n\n**完整变更日志：** https:\u002F\u002Fgithub.com\u002Fteng-lin\u002Fnotebooklm-py\u002Fcompare\u002Fv0.1.4...v0.2.0","2026-01-14T15:18:00",{"id":184,"version":185,"summary_zh":186,"released_at":187},180296,"v0.1.4","## 变更内容\n\n### 新增\n- **聊天和成果的来源选择** - 使用 `ask` 或 `generate` 命令时，可通过新的 `--sources` 标志选择特定来源\n- **研究来源表格** - `research status` 现在以格式化表格的形式显示来源\n\n### 修复\n- **TTY 终端中 JSON 输出损坏** - `--json` 标志输出曾包含 ANSI 颜色代码\n- **警告堆栈级别** - `warnings.warn` 调用现在会报告正确的源代码位置\n\n### 基础设施\n- **Windows CI 测试** - Windows 现已纳入每晚的端到端测试矩阵\n- **VCR.py 集成** - 添加了录制的 HTTP 卡带支持，以实现更快、确定性的集成测试\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fteng-lin\u002Fnotebooklm-py\u002Fcompare\u002Fv0.1.3...v0.1.4","2026-01-11T12:21:28"]