Cách dùng Gemini Notebook API (NotebookLM API) biến trang web, PDF và video YouTube thành podcast

6 phút đọc • 4 tháng 10 năm 2026 (18 tháng 10 năm 2026)

useapi.net là API của bên thứ ba, không liên kết với Google và không được Google bảo trợ.

Mục lục

  1. Giới thiệu
  2. Gemini Notebook API tạo được gì: podcast, Video Overview, slide, infographic
  3. Giá Gemini Notebook API (NotebookLM API)
  4. Chuẩn bị
  5. Cách tạo podcast Gemini Notebook bằng một lệnh gọi API
  6. Polling job và tải về
  7. Quy trình đầy đủ: notebook, nguồn và tạo nội dung
  8. Ví dụ Python
  9. Mở rộng quy mô: nhiều tài khoản và giới hạn tốc độ
  10. Tự động hóa Gemini Notebook (NotebookLM): n8n, Colab và trợ lý lập trình AI
  11. Ví dụ kết quả
  12. Câu hỏi thường gặp
  13. Kết luận

Giới thiệu

Với Gemini Notebook API (NotebookLM API) của useapi.net, một lệnh gọi REST đưa trang web hoặc video YouTube vào tài khoản Google của chính bạn, tạo podcast Audio Overview của Gemini Notebook và tải về file .m4a, với ngôn ngữ podcast do bạn chọn. Không cần dự án Google Cloud, không cần Gemini API key, và tài khoản Google miễn phí cũng dùng được.

Google đã đổi tên NotebookLM thành Gemini Notebook, tính năng giữ nguyên. Tài khoản Google thông thường không có API chính thức. Những gì bản web làm được, API này đều làm được bằng code: tạo notebook, thêm nguồn, hỏi đáp có trích dẫn nguồn, Deep Research, và toàn bộ tính năng tạo nội dung trong Studio.

Bài này do đội ngũ duy trì useapi.net viết, giới thiệu API được host của chính chúng tôi, và code ví dụ là mã nguồn mở trên GitHub.

Gemini Notebook API tạo được gì: podcast, Video Overview, slide, infographic

POST /artifacts chọn nội dung cần tạo bằng tham số type:

Nội dung type Trả về
Audio Overview (podcast hai người) audio, format chọn deep_dive (mặc định), brief, critique, debate âm thanh m4a
Video Overview video, format chọn explainer (mặc định), brief, cinematic, short video mp4
Slide slides pdf và pptx
Infographic infographic ảnh png
Báo cáo, báo cáo tương tác, bảng dữ liệu report, interactive_report, table văn bản Markdown hoặc các hàng bảng
Câu đố, thẻ ghi nhớ, sơ đồ tư duy quiz, flashcards, mindmap JSON

Âm thanh, video (trừ cinematic), báo cáo, báo cáo tương tác, bảng dữ liệu, slide và infographic đều có thể chọn ngôn ngữ đầu ra bằng language. Các ví dụ dưới đây dùng tiếng Trung giản thể, zh_Hans, đúng như lúc chúng tôi chạy thử. Trường này nhận mã ngôn ngữ như en, es, pt_BR hoặc zh_Hans, nên với tiếng Việt hãy dùng vi.

Giá Gemini Notebook API (NotebookLM API)

Bạn trả useapi.net phí cố định $15 mỗi tháng, và cùng gói đăng ký đó dùng được mọi API của useapi.net, không chỉ Gemini Notebook. Mỗi gói đăng ký kết nối được 3 tài khoản Google, tổng cộng tối đa 100. Nội dung được tạo trên chính tài khoản Google của bạn, chúng tôi không tính phí theo lượt hay theo file âm thanh, và mức dùng phía Google nằm trong gói hiện có của tài khoản, kể cả gói miễn phí.

  Gemini Notebook API của useapi.net Gemini Notebook Enterprise API của Google
Tài khoản Tài khoản Google của bạn, gói miễn phí hay trả phí đều được Giấy phép Enterprise trong một dự án Google Cloud
Giá Cố định $15 mỗi tháng Mua giấy phép Enterprise theo người dùng
Hỏi đáp có trích dẫn nguồn Yes No
Deep Research Yes No
Audio Overview Yes Yes
Video Overview, slide, infographic, báo cáo, câu đố, thẻ ghi nhớ, sơ đồ tư duy Yes No
Trạng thái Thử nghiệm Preview (Pre-GA)

Google đặt ngân sách sử dụng theo từng tài khoản, nạp lại mỗi 5 giờ, kèm một ngân sách hằng tuần. Theo ước tính của chính Google, một khung 5 giờ đầy đủ bắt đầu được ít nhất 2 (gói miễn phí), 9 (Google AI Pro) hoặc 181 (Google AI Ultra) Audio Overview, và thực tế khi xong thường tốn ít hơn ước tính. Cần nhiều hơn thì kết nối thêm tài khoản, xem Mở rộng quy mô.

Chuẩn bị

  1. Đăng ký useapi.net và lấy API token. Các ví dụ dưới đây giả định token nằm trong biến môi trường USEAPI_TOKEN.
  2. Kết nối tài khoản Google bằng quy trình trình duyệt tự động: nhập token, rồi đăng nhập Google trong trình duyệt từ xa, không cần tự chép cookie. Nên dùng một tài khoản Gmail riêng, không dùng tài khoản cá nhân chính.

Request một lần và việc tạo notebook mới bên dưới đều có thể bỏ email: khi chỉ kết nối một tài khoản thì API dùng tài khoản đó, khi kết nối nhiều tài khoản thì API chọn tài khoản đang rảnh. Các lệnh gọi dựa trên notebook luôn chạy trên tài khoản sở hữu notebook đó.

Cách tạo podcast Gemini Notebook bằng một lệnh gọi API

Không cần tạo notebook trước. Gửi thẳng urls (hoặc text dán vào) tới POST /artifacts, API sẽ tạo notebook mới trên một tài khoản của bạn, thêm nguồn, chờ nguồn xử lý xong rồi bắt đầu tạo. Liên kết youtube.com và youtu.be được thêm dưới dạng nguồn YouTube, tối đa 50 liên kết một lần.

JOBID=$(curl -s -X POST "https://api.useapi.net/v1/gemini-notebook/artifacts" \
  -H "Authorization: Bearer $USEAPI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "audio",
    "format": "brief",
    "length": "short",
    "language": "zh_Hans",
    "urls": ["https://zh.wikipedia.org/wiki/阿波罗11号"],
    "title": "阿波罗11号播客",
    "mode": "async"
  }' | jq -r '.jobid')

mode: "async" trả về ngay 201 và jobid. mode: "sync" mặc định chờ tối đa 90 giây, mà podcast thường cần vài phút, nên sẽ trả về 202 trước và sau đó vẫn phải polling.

Polling job và tải về

Gọi GET /jobs/jobid cho tới khi status thành completed hoặc failed. jobid chứa : và @, nên phải mã hóa trước khi đưa vào đường dẫn URL. Khi xong, result.files[].url trỏ tới GET /artifacts/download, và khi tải cũng phải kèm API token. Hàm dưới đây sẽ còn được dùng lại:

API=https://api.useapi.net/v1/gemini-notebook
enc() { jq -rn --arg v "$1" '$v|@uri'; }

wait_job() {
  [ -z "$1" ] || [ "$1" = "null" ] && { echo "Gửi job thất bại, hãy xem error trong phản hồi"; return 1; }
  until curl -s "$API/jobs/$(enc "$1")" -H "Authorization: Bearer $USEAPI_TOKEN" > job.json &&
        jq -e '.status == "completed" or .status == "failed"' job.json > /dev/null; do
    sleep 15
  done
  jq '{status, title: .result.title, duration: .result.duration, error}' job.json
  jq -r '.result.files[]?.url' job.json | while read -r url; do
    curl -s -OJ -H "Authorization: Bearer $USEAPI_TOKEN" "$url"
  done
}

wait_job "$JOBID"

Chúng tôi chạy request trên ngày 4 tháng 10 năm 2026: job xong sau khoảng 6 phút, Google tạo một podcast tiếng Trung dài 99 giây với tiêu đề 「阿波罗登月惊魂」, và -OJ lưu file theo tiêu đề đó thành 阿波罗登月惊魂.m4a.

  • Job lỗi có error.code, ví dụ quota (không đủ hạn mức), sources (không nguồn nào dùng được) hoặc generation_failed.
  • Không muốn polling thì truyền replyUrl trong request, khi job kết thúc bạn sẽ nhận một lệnh POST chứa toàn bộ bản ghi job.
  • File đã tạo nằm lại trong notebook, và liên kết tải về còn dùng được chừng nào notebook và kết quả còn tồn tại.

Quy trình đầy đủ: notebook, nguồn và tạo nội dung

Muốn tạo nhiều loại nội dung từ cùng một nhóm nguồn, hoặc tải file trên máy lên, hãy tạo notebook trước. Nguồn có thể là trang web, video YouTube, văn bản dán vào, file Google Drive, và file tải lên như PDF, Word, PowerPoint, EPUB, âm thanh, video.

# 1. Tạo notebook mới
NOTEBOOK=$(curl -s -X POST "$API/notebooks" \
  -H "Authorization: Bearer $USEAPI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title": "阿波罗11号"}' | jq -r '.notebook')

# 2. Thêm trang web và video YouTube
curl -s -X POST "$API/sources" \
  -H "Authorization: Bearer $USEAPI_TOKEN" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --arg nb "$NOTEBOOK" '{
    notebook: $nb,
    urls: ["https://zh.wikipedia.org/wiki/阿波罗11号", "https://www.youtube.com/watch?v=xUcYQ7slmRw"]
  }')"

# 3. Tải PDF lên, chính file là body của request
curl -s -X POST "$API/sources/upload?notebook=$(enc "$NOTEBOOK")&name=report.pdf" \
  -H "Authorization: Bearer $USEAPI_TOKEN" \
  -H "Content-Type: application/pdf" \
  --data-binary @report.pdf

# 4. Chờ mọi nguồn xử lý xong
until curl -s "$API/notebooks/$(enc "$NOTEBOOK")" -H "Authorization: Bearer $USEAPI_TOKEN" > notebook.json &&
      jq -e '[.sources[].status] | all(. == "ready" or . == "error")' notebook.json > /dev/null; do
  sleep 10
done

# 5. Tạo infographic tiếng Trung
JOBID=$(curl -s -X POST "$API/artifacts" \
  -H "Authorization: Bearer $USEAPI_TOKEN" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --arg nb "$NOTEBOOK" '{notebook: $nb, type: "infographic", orientation: "portrait", language: "zh_Hans", mode: "async"}')" \
  | jq -r '.jobid')

wait_job "$JOBID"

Khi chạy thử, ba nguồn sẵn sàng sau khoảng 30 giây, và infographic tiếng Trung khổ dọc được tạo trong khoảng 2 phút, ra một file png 1536 × 2752 với tiêu đề 「阿波罗11号登月信息图」. Đổi type ở bước 5 thành audio, video hoặc slides là tạo tiếp podcast, Video Overview hoặc slide trên cùng notebook. Bản trình diễn đầy đủ 19 bước (gồm hỏi đáp, Deep Research và sửa một trang slide) có trong bài hướng dẫn tiếng Anh.

Ví dụ Python

Gần giống request một lần ở trên (không chỉ định length, dùng độ dài mặc định), viết bằng Python và requests:

import os, time, requests
from urllib.parse import quote

API = 'https://api.useapi.net/v1/gemini-notebook'
H = {'Authorization': f"Bearer {os.environ['USEAPI_TOKEN']}"}

r = requests.post(f'{API}/artifacts', headers=H, json={
    'type': 'audio',
    'format': 'brief',
    'language': 'zh_Hans',
    'urls': ['https://zh.wikipedia.org/wiki/阿波罗11号'],
    'mode': 'async',
})
r.raise_for_status()
job = r.json()

while job['status'] in ('pending', 'processing'):
    time.sleep(15)
    r = requests.get(f"{API}/jobs/{quote(job['jobid'], safe='')}", headers=H)
    r.raise_for_status()
    job = r.json()

if job['status'] == 'failed':
    raise SystemExit(job['error'])

print(job['result']['title'], job['result']['duration'], 'giây')
for f in job['result']['files']:
    with open(f"podcast.{f['format']}", 'wb') as out:
        out.write(requests.get(f['url'], headers=H).content)

Khi chạy thử, script này mất khoảng 6 phút rưỡi và cho ra một podcast tiếng Trung dài 70 giây, podcast.m4a. Script Node.js và Python xử lý hàng loạt danh sách liên kết có trong thư mục podcast/ của repo ví dụ trên GitHub.

Mở rộng quy mô: nhiều tài khoản và giới hạn tốc độ

API này chạy được mà không cần người trông:

  • Khi đã kết nối nhiều tài khoản Google, mỗi job mới được giao cho tài khoản có trạng thái tốt, còn slot job trống và còn đủ hạn mức cho loại nội dung đó, nên bạn không phải tự theo dõi ngân sách 5 giờ và hằng tuần.
  • Mỗi tài khoản chạy đồng thời tối đa maxJobs job (mặc định 3, đặt được từ 1–10, đổi bằng POST /accounts). GET /jobs hiển thị các job đang chạy trên từng tài khoản.
  • Khi mọi tài khoản đều bận hoặc hết hạn mức, lệnh gọi trả về 429. Nếu Google cho biết thời điểm nạp lại, phản hồi kèm retryAt, và code của bạn có thể chờ tới lúc đó rồi thử lại, dùng email để gửi đợt tiếp theo sang tài khoản khác, hoặc giảm tần suất.
  • GET /accounts/email trả về mức dùng trực tiếp của tài khoản, thời điểm nạp lại của hai khung, và ước tính hiện tại cho từng loại nội dung.

Tự động hóa Gemini Notebook (NotebookLM): n8n, Colab và trợ lý lập trình AI

  • Template n8n: biến trang web, video YouTube hoặc RSS của blog thành podcast Gemini Notebook, nhập vào là dùng được.
  • Google Colab notebook: điền token và liên kết ngay trong trình duyệt, rồi nghe và tải podcast về.
  • Các trợ lý lập trình AI như Claude Code, Codex có thể cài skill notebooklm-podcast trong repo để tạo podcast bằng một câu lệnh: npx skills add useapi/notebooklm-api --skill notebooklm-podcast.

Tất cả đều nằm trong repo useapi/notebooklm-api.

Ví dụ kết quả

Dưới đây là kết quả thật tạo qua cùng Gemini Notebook API này, từ nguồn là trang Wikipedia tiếng Anh về Apollo 11, một video YouTube của NASA, một đoạn văn bản dán vào và một file PDF, lấy từ bài hướng dẫn tiếng Anh, nên nội dung bằng tiếng Anh.

Audio Overview, định dạng brief, độ dài short, dài 1 phút 31 giây, tạo trong 4 phút 36 giây:

Video Overview, định dạng explainer, phong cách whiteboard, dài đầy đủ 11 phút 50 giây, đây là 90 giây đầu:

Infographic, khổ dọc, phong cách sketch_note, 1536 × 2752, tạo trong 1 phút 45 giây:

Infographic Apollo 11 tạo bằng Gemini Notebook API

Câu hỏi thường gặp

  • Gemini Notebook (NotebookLM) có API chính thức không? Qua useapi.net, tài khoản thường cũng có: Gemini Notebook API của useapi.net là REST API của bên thứ ba, điều khiển tài khoản Google của chính bạn, dùng được với gói cá nhân miễn phí lẫn trả phí, và làm được mọi tính năng của bản web. Google chỉ có API cho Gemini Notebook Enterprise, cần mua giấy phép Enterprise trong một dự án Google Cloud, chỉ quản lý notebook, thêm nguồn và tạo Audio Overview, và tài khoản Google thông thường không dùng được. So sánh ở phần Giá.
  • Có cần Gemini API key hay Gemini Notebook (NotebookLM) API key không? Qua useapi.net thì không. Bạn gọi API bằng API token của useapi.net, rồi kết nối tài khoản Google một lần qua quy trình tự động, không cần dự án Google Cloud. Google không cấp Gemini Notebook API key cho tài khoản thông thường.
  • Có tạo được podcast tiếng Việt không? Qua useapi.net, bạn chọn ngôn ngữ podcast bằng language trong POST /artifacts, ví dụ vi cho tiếng Việt hoặc zh_Hans như trong lần chạy thử ở trên. language dùng cho âm thanh, video (trừ cinematic), báo cáo, báo cáo tương tác, bảng dữ liệu, infographic và slide, mặc định là en. Bạn cũng có thể đặt ngôn ngữ đầu ra Studio cho cả tài khoản bằng outputLanguage của POST /accounts.
  • Có Gemini Notebook (NotebookLM) API miễn phí không? Qua useapi.net, Gemini Notebook API chạy được trên tài khoản Google miễn phí, Google không thu phí phía họ, trong khi Google không có API cho tài khoản thông thường. Gói đăng ký useapi.net giá $15 mỗi tháng. Nếu thanh toán qua Stripe, bạn được hoàn tiền toàn bộ trong 14 ngày kể từ lần mua đầu tiên khi có dưới 50 lượt tạo thành công, xem chính sách hoàn tiền.
  • Tài khoản Google miễn phí có dùng được không? Qua useapi.net thì được. Gói miễn phí có hạn mức mỗi khung 5 giờ thấp hơn, các gói Google AI trả phí nâng giới hạn lên, và video Cinematic cần gói trả phí.
  • Tạo một podcast mất bao lâu? Qua useapi.net, Audio Overview thường mất 3–6 phút, Video Overview từ 10 phút trở lên, infographic và báo cáo một hai phút, câu đố khoảng một phút rưỡi, thẻ ghi nhớ và bảng dữ liệu dưới một phút.
  • NotebookLM và Gemini Notebook có phải là một sản phẩm không? Đúng vậy. Gemini Notebook là tên mới của NotebookLM từ tháng 7/2026, và API trong bài này chính là NotebookLM API, qua useapi.net.

Thêm câu hỏi và trả lời ở Câu hỏi thường gặp về Gemini Notebook API (tiếng Anh).

Kết luận

Có câu hỏi, hãy ghé Discord Server hoặc Telegram Channel của chúng tôi.

Mọi endpoint có trong tài liệu Gemini Notebook API, còn code ví dụ có trong repo GitHub.

Bắt đầu dùng API

Một gói đăng ký $15/tháng dùng được mọi API trên useapi.net: một token cho tất cả dịch vụ. Mỗi dịch vụ bạn kết nối tối đa 3 tài khoản của riêng mình, còn useapi.net lo REST API, cân bằng tải và polling. Cần thêm tài khoản? Mỗi gói đăng ký thêm giá $10/tháng và cho thêm 3 tài khoản ở mỗi dịch vụ.

Đăng ký — $15/tháng

Không có thẻ thanh toán quốc tế? Bạn có thể đăng ký bằng tiền mã hóa (thanh toán bằng tiền mã hóa không được hoàn tiền). Giá và các gói số lượng lớn có trên trang đăng ký. Nếu thanh toán qua Stripe, bạn được hoàn tiền toàn bộ trong 14 ngày kể từ lần mua đầu tiên khi có dưới 50 lượt tạo thành công. Đã đăng ký rồi? Hãy đổi số lượng trong Stripe Customer Portal thay vì mua lại.