YouTube Content Generator

AI Youtube Content Generation Tool

Introduction

The YouTube Content Generator is an AI-powered tool that allows you to input any YouTube URL to receive a summary and then generate content for blog posts, tweets, Reddit posts, and LinkedIn posts in several languages. Integrated with Supabase for user authentication and data management, it also supports theme switching between light and dark modes.

AI YouTube Content Generation Tool

Quickstart Guide

Installation

  1. Clone the repository:

    terminal
    git clone https://github.com/1811-Labs-LLC/BuilderKit-Pro.git [YOUR_APP_NAME]
     
    cd [YOUR_APP_NAME]
     
    git checkout youtube-content-generator

    Remove the origin remote to ensure that you can work locally without pushing the changes back to the original repository.

    terminal
    git remote remove origin

    However, note that after removing the remote, you won't be able to switch between the branches, so you'll need to clone the repository again if you want to work on another branch.

  2. Install dependencies:

    terminal
    npm install
  3. Environment Variables:

    Copy the required variables from .env.example to .env.local as mentioned and update the values.

    terminal
    cp .env.example .env.local

    Or, manually create a .env.local file in the root directory with the following env variables (make sure to update the values with your actual keys):

    .env.local
    # Host
    NEXT_PUBLIC_APP_URL=<your-app-url>
     
    # Supabase
    NEXT_PUBLIC_SUPABASE_URL=<your-supabase-url>
    NEXT_PUBLIC_SUPABASE_ANON_KEY=<your-supabase-anon-key>
     
    # OpenAI
    OPENAI_API_KEY=<your-openai-api-key>
     
    # Google Analytics
    NEXT_PUBLIC_GOOGLE_ANALYTICS_KEY=<your-google-analytics-key>

Setup Supabase

If you have not setup the supabase yet, go through the detailed documentation to set up the supabase for BuilderKit.ai. Make sure that you are creating the user table as mentioned in the supabase setup doc as it is required for the tool.

  1. Create YouTube Content Generator Table in Supabase:

    sql
    -- Create a table for AI YouTube Summary And Content Generator
    create table youtube_content_generator (
     id uuid not null default uuid_generate_v4 (),
     created_at timestamp with time zone not null default now(),
     user_id uuid null,
     url text not null,
     summary text null,
     youtube_title text not null,
     chapters jsonb null,
     language text null,
     transcription text not null,
     generated_content jsonb null,
     constraint youtube_content_generator_pkey primary key (id),
     constraint youtube_content_generator_user_id_fkey foreign key (user_id) references users (id)
    );
     
     
    -- Set up Row Level Security (RLS)
    alter table youtube_content_generator
    enable row level security;
     
    create policy "Users can insert their own row." on youtube_content_generator
    for insert with check (auth.uid() = user_id);
     
    create policy "Users can update own row" on youtube_content_generator
    for update using (auth.uid() = user_id);
     
    create policy "Users can read own row" on youtube_content_generator
    for select using (auth.uid() = user_id);
     
    create policy "Users can delete own row" on youtube_content_generator
    for delete using (auth.uid() = user_id);

    For all the tables, we enable the RLS policy by default with necessary permissions as mentioned in the script.

  2. Sync Supabase Types:

    To sync the supabase table schema with your project follow the steps here.

Setup Cookies

⚠️

This is a manadatory step. Cookies are essential for retrieving the YouTube subtitles and content that may be restricted or unavailable without proper authentication. If you do not use cookies, YouTube will block you from accessing the subtitle for the available YouTube videos.

Follow the detailed steps to retrieve and setup cookies in your project - https://docs.builderkit.ai/setup/youtube-cookies (opens in a new tab)

Running the Application

  1. Run the development server:

    terminal
    npm run dev

    This will start the development server on http://localhost:3000 (opens in a new tab).

  2. Build for production:

    terminal
    npm run build

    This command compiles the application for production usage.

  3. Start the production server:

    terminal
    npm start

    This will start the application in production mode.

Additional Scripts

  • Prepare Husky for Git hooks:

    terminal
    npm run prepare
  • Validate the code with Linting, Formatting & Typecheck:

    terminal
    npm run validate

Make the tool publicly accessible by removing the login process

  1. Go to src/app/(dashboard)/layout.tsx and comment the following section from line:15 to line:20 as shown in the image below:

    Remove Layout Login Check
  2. Go to src/app/api/summary/route.ts and comment the following section from line:9 to line:13 as shown in the image below:

    Remove Api Login Check
  3. Now, go to src/app/api/generate/route.tsx and comment the following section from line:9 to line:13 as shown in the image below:

    Remove Api Login Check

These sections reads the user data and checks if the user is signed in or not. By commenting this section it does not check the user validation.

Requirements