Blog · Updated 2026-05-22

Save YouTube Transcripts to Notion: 3 Workflows From Manual to Fully Automated

Notion is the natural home for video notes — searchable, taggable, linkable to your other knowledge. Here are three ways to get YouTube transcripts in there, from "took me 20 seconds" to "took me an afternoon to set up but runs forever."

Workflow 1 — Copy and paste (zero setup)

  1. Paste the video URL into ScribeTube.
  2. On Premium, click Copy All. On free, copy paragraph-by-paragraph (annoying but works).
  3. Create a new Notion page, give it the video title, paste the transcript into the body.
  4. Add a link to the original YouTube video at the top.

Best for: occasional research, one-off notes.

Workflow 2 — ScribeTube → Markdown download → Notion import

Premium users can download as Markdown (.md). Notion's import-from-markdown handles this cleanly:

  1. Extract on ScribeTube, click Download → Markdown.
  2. In Notion, create a page, then Import → Markdown & CSV.
  3. Drop the .md file in. Notion parses headings, bullet lists, and preserves timestamps.

Best for: people who want clean formatting (Workflow 1's plain text loses structure).

Workflow 3 — Fully automated with ScribeTube API + Notion API

For power users: a small script that takes a YouTube URL and creates a fully-formed Notion page with embed, transcript, and metadata.

import os, requests

YT_URL = "https://www.youtube.com/watch?v=YOUR_VIDEO_ID"
NOTION_DB_ID = "your-database-id"
NOTION_TOKEN = os.environ["NOTION_TOKEN"]
TS_KEY = os.environ["SCRIBETUBE_API_KEY"]

# 1. Get transcript
vid = YT_URL.split("v=")[-1][:11]
r = requests.get(
    "https://api.scribetube.app/v1/transcript",
    params={"id": vid, "lang": "en"},
    headers={"Authorization": f"Bearer {TS_KEY}"},
)
data = r.json()
paragraphs = [s["text"] for s in data["segments"]]

# 2. Create Notion page
requests.post("https://api.notion.com/v1/pages",
    headers={
        "Authorization": f"Bearer {NOTION_TOKEN}",
        "Notion-Version": "2022-06-28",
        "Content-Type": "application/json",
    },
    json={
        "parent": {"database_id": NOTION_DB_ID},
        "properties": {
            "Name": {"title": [{"text": {"content": f"Video {vid}"}}]},
            "URL": {"url": YT_URL},
        },
        "children": [
            {"object": "block", "type": "video", "video": {"external": {"url": YT_URL}}},
        ] + [
            {"object": "block", "type": "paragraph",
             "paragraph": {"rich_text": [{"type": "text", "text": {"content": p}}]}}
            for p in paragraphs
        ],
    },
)

Hook this to a Raycast script, a Shortcut, or a Telegram bot. Now any YouTube link you paste lands as a structured Notion page.

Why this combination is powerful

Related: Student study workflow · API docs