// GUIDE

Summarize any YouTube video into a Notion page.

A repeatable workflow for researchers, PMs, and students: capture the full transcript, compress it into an AI summary, and drop the result into Notion in under five minutes β€” for videos of any length.

// WHY

Why pair a YouTube video summarizer with Notion?

Notion is where knowledge sticks β€” it's searchable, linkable, and durable. YouTube is where a huge chunk of research, product teardowns, lectures, and interviews live. Copy-pasting captions by hand doesn't scale past a couple of videos. A youtube to transcript pipeline feeding straight into Notion turns hours of video into a queryable library you can quote, tag, and revisit.

  • Full transcripts, not just the first 4 minutes β€” Y/T_TRANSCRIPT streams complete captions.
  • Timestamps preserved so you can jump back to the exact moment.
  • Markdown output that Notion accepts natively β€” no reformatting.
  • Works for lectures, podcasts, keynotes, and multi-hour interviews.
// WORKFLOW

The three-step workflow

  1. Paste the video URL into Y/T_TRANSCRIPT and grab the transcript.
  2. Generate a structured AI summary with bullets, chapters, and quotes.
  3. Paste (or POST) the Markdown into a Notion page.
// STEP 1

Pull the full transcript

Open the transcript tool, paste the YouTube URL, and pick your caption language. Y/T_TRANSCRIPT reads the whole caption track β€” no 4-minute cap, no arbitrary limits β€” and returns timestamped lines you can copy or download as Markdown, SRT, VTT, or JSON.

For a research workflow, export as Markdown with timestamps. Notion will render the timestamps as plain text you can search against later.

// STEP 2

Summarize with structure

A wall of transcript is worse than no notes. Use the summarizer to condense the transcript into:

  • TL;DR β€” a two-sentence hook for the top of the Notion page.
  • Chapter summaries β€” one paragraph per section, with the starting timestamp.
  • Key quotes β€” verbatim lines worth citing later.
  • Action items β€” anything the speaker recommends doing.

This structure maps 1:1 to Notion toggles and callouts, so the page stays scannable even for 90-minute talks.

// STEP 3

Push to Notion

Two options depending on how often you do this:

A) Manual paste (fastest for one-offs)

  1. Create a new Notion page in your "Video Notes" database.
  2. Type /code and paste the raw transcript inside a toggle if you want it hidden by default.
  3. Paste the summary above the toggle. Notion parses Markdown headings, lists, and quotes automatically.
  4. Add source metadata: video URL, channel, date watched, and tags.

B) API push (for >5 videos/week)

Hit our /v1/transcript and/v1/summarize endpoints, thenPOST the result to Notion'spages endpoint. See the snippet in Automation below.

// TEMPLATES

A Notion template that scales

Create a database called Video Library with these properties:

  • Title β€” video title.
  • URL (URL) β€” canonical YouTube link.
  • Channel (select) β€” grouped for filtering.
  • Duration (number, minutes).
  • Tags (multi-select) β€” topic, project, or client.
  • Status (select) β€” Inbox / Watched / Referenced.
  • Added (date).

Each row's page body holds: TL;DR β†’ Chapter summary β†’ Key quotes β†’ Full transcript (in a toggle). That layout keeps the database view clean while the transcript stays one click away for Ctrl+F.

// AUTOMATION

Automating with the API

For research teams processing dozens of videos, script it. Here's the end-to-end shape using Y/T_TRANSCRIPT and the Notion API:

// 1. Get transcript + summary from Y/T_TRANSCRIPT
const t = await fetch("https://api.yt-transcript.dev/v1/transcript", {
  method: "POST",
  headers: { Authorization: `Bearer ${YT_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ videoId, lang: "en" }),
}).then(r => r.json());

const s = await fetch("https://api.yt-transcript.dev/v1/summarize", {
  method: "POST",
  headers: { Authorization: `Bearer ${YT_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ transcript: t.text, format: "chapters" }),
}).then(r => r.json());

// 2. Create a Notion page in your Video Library database
await fetch("https://api.notion.com/v1/pages", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${NOTION_TOKEN}`,
    "Notion-Version": "2022-06-28",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    parent: { database_id: DB_ID },
    properties: {
      Title: { title: [{ text: { content: t.title } }] },
      URL:   { url: `https://youtu.be/${videoId}` },
    },
    children: markdownToNotionBlocks(s.markdown),
  }),
});

Run it from a cron, a Zap, or a Notion button β€” the shape stays the same.

// FAQ

FAQ

Does this work for videos longer than an hour?

Yes. Y/T_TRANSCRIPT streams the entire caption track β€” multi-hour lectures and podcasts included. The summarizer chunks long transcripts automatically so nothing gets truncated.

What if the video has no captions?

We fall back to automatic speech recognition, so uploader-disabled captions aren't a dead end. Accuracy is lower than human captions but still usable for summaries.

Can I translate the transcript before sending it to Notion?

Yes β€” pick a target language on the transcript page, or call/v1/translate before the summarize step.

Is my data stored?

Transcripts and summaries aren't persisted server-side beyond the request. Anything you keep lives in your Notion workspace.

Ready to try it?

Paste a YouTube URL and get a Notion-ready summary in under a minute.