Skip to main content

Scheduled YouTube transcription with de-duplication using Transcript.io and Supabase

Workflow preview

Workflow preview
100%
Scheduled YouTube transcription with de-duplication using Transcript.io and Supabase preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

Scheduled YouTube Transcription with Duplicate Prevention Who's It For? This template is for advanced users, content teams, and data analysts who need a robust, automated system for capturing YouTu...

Best for

  • Document Extraction automation workflows
  • AI RAG automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.code, n8n-nodes-base.supabase, n8n-nodes-base.wait, n8n-nodes-base.set, n8n-nodes-base.datetime, n8n-nodes-base.if, n8n-nodes-base.splitinbatches, n8n-nodes-base.merge

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by automedia.

Original n8n.io source

1.1 Workflow description

Title
Scheduled YouTube transcription with de-duplication using Transcript.io and Supabase
Workflow name
Scheduled YouTube transcription with de-duplication using Transcript.io and Supabase

Scheduled YouTube Transcription with Duplicate Prevention

Who's It For?

This template is for advanced users, content teams, and data analysts who need a robust, automated system for capturing YouTube transcripts. It’s ideal for those who monitor multiple channels and want to ensure they only process and save each video's transcript once.

What It Does

This is an advanced, "set-it-and-forget-it" workflow that runs on a daily schedule to monitor YouTube channels for new content. It enhances the basic transcription process by connecting to your Supabase database to prevent duplicate entries.

The workflow fetches all recent videos from the channels you track, filters out any that are too old, and then checks your database to see if a video's transcript has already been saved. Only brand-new videos are sent for transcription via the youtube-transcript.io API, with the final data (title, URL, full transcript, author) being saved back to your Supabase table.

Requirements

  • A Supabase account with a table to store video data. This table must have a column for the source_url to enable duplicate checking.
  • An API key from youtube-transcript.io (offers a free tier).
  • The Channel ID for each YouTube channel you want to track.

How to Set Up

  1. Set Your Time Filter:
    • In the "Max Days" node, set the number of days you want to look back for new videos (e.g., 7 for the last week).
  2. Add Channel IDs:
    • In the "Channels To Track" node, replace the example YouTube Channel IDs with the ones you want to monitor.
  3. Configure API Credentials:
    • Select the "Get Transcript from API" node.
    • In the credentials tab, create a new "Header Auth" credential. Name it youtube-transcript-io and paste your API key into the "Value" field. The "Name" field should be x-api-key.
  4. Connect Your Supabase Account:
    • This workflow uses Supabase in two places: "Check if URL Is In Database" and "Add to Content Queue Table".
    • You must configure your Supabase credentials in both nodes.
    • In each node, select your target table and ensure the columns are mapped correctly.
  5. Adjust the Schedule:
    • The "Schedule Trigger" node is set to run once a day. Click it to adjust the time and frequency to your needs.
  6. Activate the Workflow:
    • Save your changes and toggle the workflow to Active.

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Discard URL

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 2 - Check if URL Is In Database

Type / Role
n8n-nodes-base.supabase - supabase
Config choices
Version 1

Block 3 - Wait

Type / Role
n8n-nodes-base.wait - wait
Config choices
Version 1.1

Block 4 - Channel Info

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 5 - Channel Info + Channel ID

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 6 - Max Content Age Days

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 7 - Date & Time

Type / Role
n8n-nodes-base.dateTime - dateTime
Config choices
Version 2

Block 8 - Add to Content Queue Table

Type / Role
n8n-nodes-base.supabase - supabase
Config choices
Version 1

Block 9 - Transcript Worked?

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

Block 10 - New Video Information

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 11 - Verify Channel ID + Create RSS Link

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 12 - try to get video_id again

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 13 - Loop Over Each Channel

Type / Role
n8n-nodes-base.splitInBatches - splitInBatches
Config choices
Version 3

Block 14 - Loop Over Recent Videos

Type / Role
n8n-nodes-base.splitInBatches - splitInBatches
Config choices
Version 3

Block 15 - Loop Over New Videos

Type / Role
n8n-nodes-base.splitInBatches - splitInBatches
Config choices
Version 3

Block 16 - Is Video Recent Enough?

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

Block 17 - Was Video ID Found?

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

Block 18 - Merge DB Check Result

Type / Role
n8n-nodes-base.merge - merge
Config choices
Version 3.2

Block 19 - Add Client & Age Rules

Type / Role
n8n-nodes-base.merge - merge
Config choices
Version 3.2

Block 20 - Data with Raw Date

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 21 - Merge Formatted Date

Type / Role
n8n-nodes-base.merge - merge
Config choices
Version 3.2

Block 22 - Add Transcript to Video Data

Type / Role
n8n-nodes-base.merge - merge
Config choices
Version 3.2

Block 23 - Transcript Failed

Type / Role
n8n-nodes-base.stopAndError - stopAndError
Config choices
Version 1

Block 24 - Merge Video ID With Video Data

Type / Role
n8n-nodes-base.merge - merge
Config choices
Version 3.2

Showing the first 24 of 52 workflow blocks. Download the JSON for the full node graph.

3. Summary Table

Workflow Scheduled YouTube transcription with de-duplication using Transcript.io and Supabase
Complexity advanced
Nodes 52
Categories Document Extraction, AI RAG
Author automedia
Published 16 Oct 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/9749/9749.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Scheduled YouTube transcription with de-duplication using Transcript.io and Supabase do?

Scheduled YouTube Transcription with Duplicate Prevention Who's It For? This template is for advanced users, content teams, and data analysts who need a robust, automated system for capturing YouTu...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Document Extraction, AI RAG use case.