批量去除 NotebookLM 水印:一次处理多个文件(2026)
一个文件很简单——二十个呢?
去除单个文件的 NotebookLM 水印只需几秒钟。但如果你导出了整门课程的幻灯片、一周的视频概览,或一批项目用的 Gemini 图片,逐个处理就会变得很繁琐。
本指南涵盖三种批量去水印方案,从最简单的(浏览器工具)到全自动化流程。根据你的文件数量和技术水平选择合适的方案。
方案一:浏览器工具(1–10 个文件)
最简单的选择。NotebookLM Remover 完全在浏览器中处理文件——不上传、不经过服务器。对于少量文件,操作流程很直接:
优点:
- 零配置——任何现代浏览器即可使用
- 100% 本地处理——文件不会离开你的设备
- 支持所有格式:视频、PDF、PPTX、信息图、Gemini 图片、音频
- 免费,无需注册
缺点:
- 一次处理一个文件(顺序处理)
- 每个结果需手动下载
- 50 个以上文件不太实用
适合:清理几份讲义的教师、准备几个演示的学生、文件数量少于 10 个的用户。
方案二:Python 脚本(10–100+ 个文件)
如果你熟悉 Python,脚本能让你一条命令实现真正的批量处理。专业工具使用的相同库可以自动处理整个目录的文件。
批量 PPTX 水印去除
python-pptx 库可以打开、修改和保存 PowerPoint 文件。NotebookLM PPTX 导出中的水印是一个带有超链接的形状元素——它位于幻灯片布局和母版中,从那里删除就能清除所有幻灯片上的水印。
from pptx import Presentation
import glob, os
input_dir = "exports/"
output_dir = "cleaned/"
os.makedirs(output_dir, exist_ok=True)
for filepath in glob.glob(f"{input_dir}*.pptx"):
prs = Presentation(filepath)
removed = 0
for master in prs.slide_masters:
for layout in master.slide_layouts:
for shape in list(layout.shapes):
try:
addr = (shape.click_action.hyperlink.address or "").lower()
except Exception:
addr = ""
if "notebooklm" in addr or "google" in addr:
shape._element.getparent().remove(shape._element)
removed += 1
out = os.path.join(output_dir, os.path.basename(filepath))
prs.save(out)
print(f"{os.path.basename(filepath)}: 已移除 {removed} 个水印") 运行方式:pip install python-pptx && python batch_pptx.py
批量 PDF 水印去除
对于 PDF 幻灯片,PyMuPDF(导入名为 fitz)可以从每一页删除水印注释和图片:
import fitz # pip install PyMuPDF
import glob, os
input_dir = "exports/"
output_dir = "cleaned/"
os.makedirs(output_dir, exist_ok=True)
for filepath in glob.glob(f"{input_dir}*.pdf"):
doc = fitz.open(filepath)
removed = 0
for page in doc:
for link in page.get_links():
uri = (link.get("uri") or "").lower()
if "notebooklm" in uri or "google.com" in uri:
page.delete_link(link)
removed += 1
out = os.path.join(output_dir, os.path.basename(filepath))
doc.save(out, deflate=True, garbage=4)
doc.close()
print(f"{os.path.basename(filepath)}: 已移除 {removed} 个水印") 批量视频水印去除
对于视频概览,ffmpeg-python 封装了 FFmpeg 的 delogo 滤镜。水印坐标根据分辨率固定:
import ffmpeg
import glob, os
input_dir = "exports/"
output_dir = "cleaned/"
os.makedirs(output_dir, exist_ok=True)
# NotebookLM 1080p 水印坐标
DELOGO = {"x": 1104, "y": 656, "w": 770, "h": 62}
TAIL_TRIM = 2.5 # 从尾部裁剪的秒数
for filepath in glob.glob(f"{input_dir}*.mp4"):
probe = ffmpeg.probe(filepath)
duration = float(probe["format"]["duration"])
out = os.path.join(output_dir, os.path.basename(filepath))
(
ffmpeg
.input(filepath, t=duration - TAIL_TRIM)
.video.filter("delogo", **DELOGO)
.output(out, acodec="copy", vcodec="libx264", crf=18)
.overwrite_output()
.run(quiet=True)
)
print(f"已清理: {os.path.basename(filepath)}") Python 方案的优点:
- 真正的批量处理——一条命令处理数百个文件
- 完全可定制——调整检测逻辑、输出质量、命名规则
- 可脚本化和重复执行——加入 CI/CD 流水线或定时任务
- 本地处理文件——与浏览器工具一样的隐私保护
缺点:
- 需要安装 Python 和相关库
- 需要知道各分辨率的正确水印坐标(视频)
- 调试需要技术知识
- 检测逻辑需要自行负责——我们的浏览器工具会自动处理边界情况
方案三:Shell 脚本 + FFmpeg(仅视频)
如果你只需要批量处理视频文件且已安装 FFmpeg,一个简单的 Shell 循环就能完成,无需 Python:
#!/bin/bash
mkdir -p cleaned
for f in exports/*.mp4; do
name=$(basename "$f")
duration=$(ffprobe -v error -show_entries format=duration \
-of default=noprint_wrappers=1:nokey=1 "$f")
trimmed=$(echo "$duration - 2.5" | bc)
ffmpeg -i "$f" -t "$trimmed" \
-vf "delogo=x=1104:y=656:w=770:h=62" \
-c:a copy -crf 18 "cleaned/$name" -y
echo "完成: $name"
done 该选择哪种方案?
| 场景 | 最佳方案 | 原因 |
|---|---|---|
| 1–10 个文件,任何格式 | 浏览器工具 | 零配置,支持所有格式 |
| 10–50 个混合文件 | Python 脚本 | 一条命令处理所有格式 |
| 50+ 个纯视频文件 | Shell + FFmpeg | 纯视频批处理最快 |
| 每日/每周重复导出 | Python + 定时任务 | 完全自动化,一劳永逸 |
| 非技术用户,任何数量 | 浏览器工具 | 无需安装,无需命令行 |
所有方案的隐私保障
本指南中描述的每种方法都在你的设备上本地处理文件。浏览器工具通过 WebAssembly 在浏览器中运行;Python 和 Shell 脚本在你的电脑上运行。没有任何方案会将你的文件发送到远程服务器。
从最简单的方式开始
开始去除水印 — 免费常见问题
浏览器工具能同时处理多个文件吗?
目前是逐个处理。上一个文件完成后可以立即拖入下一个文件。如需对数十个文件进行真正的并行批处理,请使用上述 Python 脚本方案。
批量处理会影响质量吗?
不会。无论是第一个还是第一百个文件,每个文件的处理方式完全相同。对于图像和文档,去除是无损的。对于视频,质量取决于编码设置——上述脚本使用 CRF 18,视觉上无损。
可以自动化运行吗?
可以。设置一个监控下载文件夹的 Python 脚本(使用 watchdog 或简单的轮询),自动处理新的 NotebookLM 导出,并将清理后的版本保存到单独的文件夹。
准备好去除 NotebookLM 水印了吗?
免费使用 NotebookLM Remover