Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Next JS Course: Build a Complete YouTube Clone Web Project
Rating: 4.8 out of 5(21 ratings)
6,955 students

Next JS Course: Build a Complete YouTube Clone Web Project

Next.js Mastery!Create a YouTube Clone Using TypeScript, YouTube API,DaisyUI & Tailwind CSS.Learn Modern Web Development
Created byVapa Academy
Last updated 2/2025
English

What you'll learn

  • Learn How To Use Next.js For Server-Side Rendering And Static Site Generation.
  • Build A Fully Functional YouTube Clone Using Modern Web Technologies.
  • Integrate The YouTube API To Fetch Videos And Display Them In The App.
  • Use TypeScript To Write Type-Safe Code And Enhance Project Maintainability.
  • Create Responsive Web Designs With Tailwind CSS.
  • Implement DaisyUI Components For Quick UI Development.
  • Set Up Video Playback Functionality Similar To YouTube.
  • Follow Clean Code Practices For Maintainable And Scalable Development.
  • Write Industry-Standard Code That Adheres To Professional Development Practices.
  • Deploy The YouTube Clone App To Vercel Cloud For Serverless Hosting.
  • Understand How To Implement Server-Side Rendering With Next.js.
  • Improve Your Coding With TypeScript’s Static Typing.
  • Use Tailwind CSS’s Utility-First Approach To Design Custom UI Components.

Course content

1 section59 lectures7h 22m total length
  • Next JS - Complete YouTube Clone Web Project - Source Code0:04
  • YouTube Clone Web Project - Live Demo6:27

    Explore a live demo of a complete Next.js YouTube clone featuring genre navigation, video controls, publisher pages, real-time suggestions, comments, search, and responsive layouts across devices.

  • Setting Up The Project Directory Part - 15:35

    Set up a Next.js project for the YouTube clone course by using create next app with TypeScript, Tailwind CSS, and a src directory, then run npm run dev.

  • Generating Google API Key for The Project Part - 24:55

    Create a new Google Cloud project, enable the YouTube Data API v3, generate and restrict an API key, then add it to the environment file with the base URL.

  • Setting Up Different Routes For The Application Part - 35:46

    Set up the next app router for a YouTube clone by creating home, channel (dynamic id), video (category id and video id), and query routes; implement page.tsx components and exporting.

  • Interface For The API Response Part - 46:43

    Define a generic API response interface in TypeScript, with items, data, error, status, details, and name, plus an Axios error type for typed calls in a Next.js YouTube clone project.

  • Interface For Different Components Part - 59:29

    Create interfaces for the YouTube clone's comments system, including a comment snippet with author details, top level comment, and video details for modular components.

  • Interface For Video Items Part - 69:31

    Implement a video item interface for a YouTube clone in Next.js, modeling an array of video objects with content details, related playlists, and thumbnails.

  • Finishing The Type Interfaces Part - 75:33

    Finish building the type interfaces for a YouTube clone by defining video item structure with content details, related playlists, id, duration, dimension, caption, licensed content, country restrictions, and branding settings.

  • Axios Instance Setup Part - 83:09

    Create a utils folder and implement an Axios instance wrapper to centralize API calls, using a base URL from env and Next.js public variables, preparing for additional utilities.

  • Objects for Sidebar Menu Items Part - 98:36

    Define a sidebar data model with menu items (id, level, icon from public assets) and a subscriptions array with names and icons for a YouTube clone UI.

  • API Service Wrapper To Fetch Data From The API Part - 109:14

    Build an api service wrapper using axios get requests with generics and config to fetch data and handle errors, returning a typed api response for YouTube videos.

  • Duration Converter For YouTube Video Length Part - 118:58

    Learn to build a duration converter for YouTube video lengths in a Next.js project, parsing duration strings with regular expressions and formatting hours, minutes, and seconds.

  • Value Converter For Likes Or Other Values Part - 124:56

    Introduce a value converter function in value converter.ts that formats a string or number subscription count into m or k notation, with two decimals for millions and one for thousands.

  • Installing The Daisy UI and Configs Part - 136:22

    Set up a Next.js YouTube clone by installing Daisy UI with Tailwind themes, adding moment, date-fns, and material UI, configuring image domains, and enabling vercel unoptimized to prepare for deployment.

  • Making Context For The Sidebar Part - 149:52

    Learn to implement a sidebar context in a Next.js project using a client component, React context, and state hooks to manage sidebar, category, and theme with local storage persistence.

  • Introduction To Navbar Component Part - 159:05

    Build a responsive navbar component in Next.js using Tailwind, with a semantic nav and sticky top positioning, featuring mobile and desktop icons while preparing the sidebar context integration.

  • Dropdown For Mobile Screen In The Navbar Part - 167:29

    Build a mobile navbar dropdown by wiring a map over menu items with icons and daisy ui styles, configuring tab index and accessibility in a Next.js YouTube clone project.

  • Wrapping The Whole Application With Sidebar Context Part - 177:52

    Wrap the entire application with a sidebar context by updating the root layout.tsx, converting to a client component, and applying dynamic left padding through template literals based on sidebar state.

  • Navbar Handlers For Navbar Operations Part - 187:18

    Implement navbar functionality using the Next.js router and context, wiring search handling and menu actions to update category and navigate to dynamic query pages.

  • Make Adjustments For The Navbar Part - 193:20

    Adjust the navbar by applying flex styling, centering items, and creating a dropdown with tab index, images, and a paragraph showing item level, while debugging a font not found issue.

  • Further Styling For Navbar And Navbar Icon Part - 209:45

    Learn to style a responsive navbar and icons in a Next.js YouTube clone, including dynamic sidebar items, icons, and routing with next/link across desktop and mobile views.

  • Input Field For Navbar To Search Videos Part - 218:01

    Implement a navbar search input in a Next.js YouTube clone, toggle the sidebar, update the search query on change, handle key down, and display a magnifying glass icon.

  • Finishing The Navbar With Profile Avatar Part - 224:11

    Finish the navbar by adding a profile avatar and notification icons with responsive visibility, routing to user paths like Superman and Spiderman, using the image tag and assets.

  • Introduction To Sidebar & Handlers Part - 238:39

    Create a client-side sidebar component in a Next.js app, using useRouter, useParams, and context to toggle theme, handle menu item clicks, and persist the chosen theme in local storage.

  • Designing The Sidebar Part - 2411:07

    Design the YouTube clone sidebar by mapping menu items, applying dynamic classes, handling clicks, rendering next image icons and subscriptions, and a theme switch for light and dark modes.

  • Finishing The UI Part For Sidebar Part - 251:57

    Polish and integrate the sidebar into the website, enable onclick theme toggle with flex row and centered items, address collapse behavior, and refine imports while planning the next video.

  • Global Styling For The Sidebar Part - 268:09

    Learn to style the sidebar with tailwind apply, blending custom css for a fixed top-zero panel and interactive side links with hover effects.

  • Handlers For The Home Route Part - 279:55

    Fetch home data by using use client, category from the sidebar toggle context, and an API service to request most popular videos with specified parameters, then update state.

  • Fetching Data For The Home Route & Introduction To Video Card Part - 287:01

    Learn how to fetch home route data with useEffect, respect the 100 calls per day API quota, map data into video cards, and build a responsive grid with tsx components.

  • Handlers For The Video Card Component Part - 297:54

    Build a reusable video card for a next.js YouTube clone, fetch channel data via route params, and manage iframe player state and errors with TypeScript.

  • Finishing The Handlers Of Video Card Part - 306:54

    Fetch video details and channel data via useEffect in a Next.js YouTube clone, building an endpoint request for content details and statistics, handling video IDs, and updating the UI accordingly.

  • Implementing The UI For The Video Card Part - 319:00

    Explore building a video card ui in a Next.js app using DaisyUI, with a clickable image link that routes to a dynamic video page and displays duration.

  • Making The Rest Of The UI For Video Card Part - 326:47

    Build the rest of the video card UI for a YouTube clone, showing duration, thumbnail, and channel details with dynamic styling and channel navigation.

  • Finalizing The UI For Video Card Part - 336:21

    Finalize the video card user interface by wiring the thumbnail and channel avatar links to their pages, displaying the video title, channel title, views, and published date with moment.

  • Introduction To The Video Player Page Part - 348:33

    Learn to build a dynamic video page in a Next.js YouTube clone by using category and video IDs, rendering a video player, channel data, comments, and a recommended section.

  • Handlers For Recommended Videos Part - 358:22

    Create a fetch handler for the videos endpoint using snippet and statistics, with region code us and category id, to render 12 recommendations in a next js youtube clone.

  • Handlers For Recommendation Card Part - 368:00

    Implement an error state and a fetch video details handler to retrieve thumbnail, duration, and view count from content details and statistics endpoints, using state hook and IDs from recommendations.

  • Recommended Card UI Part - 379:47

    Fix the endpoint, render a clickable recommended video card that links to the player page, and show thumbnail, duration, title, channel, and view count.

  • Handlers For Video Player Page Part - 389:14

    Build a video player page for a YouTube clone using the video id, fetch video data (snippet, statistics, content details) plus comments and channel data, and handle errors.

  • Finishing The Handlers For Video Player Part - 398:35

    Finish the video player's data handlers by asynchronously fetching channel data via the channels endpoint (snippet, statistics, content details), with error handling, driven by useEffect on video id.

  • Visualizing The Video By iFrame Part - 4010:41

    Fetch video data from an API, render the YouTube video with an iframe, and display the title, snippet, and a channel avatar with a Next.js link in a responsive layout.

  • Visualizing Publisher's Details In Video Page Part - 418:37

    Learn to visualize publisher details on a video page by rendering the channel name as a link, a subscribe button, and channel statistics from api data using a flex layout.

  • Debugging The Issue With Icon & Display The Video Description Part - 428:35

    Debug and fix icon rendering in a Next.js YouTube clone, display video descriptions with a collapsible panel, read more toggle, and show view counts and publish date using API data.

  • Fetching Comment Data & Display Commenter Avatar Part - 439:42

    fetches and displays YouTube-style comment data, shows commenter avatars and names, renders snippets and update times, and loops through all comments.

  • Displaying Comments In The Video Page Part - 445:39

    Display comments on the video page by showing the commenter’s name and time, styling text, handling top-level comments and snippets, and rendering like/dislike icons with counts using dynamic assets.

  • Handler For Channel Page Data Part - 458:54

    Fix the value converter to show or hide comments and fetch channel data from the api, using channel id from use params and managing videos and channel info in state.

  • Finishing The Handler For Channel Page Part - 467:33

    Finish the channel page handler by completing the channel data fetch and uploads playlist retrieval, and wire the get video function and playlist endpoints with error handling for missing playlists.

  • Starting The UI For Channel Page Part - 478:33

    Create the channel page user interface for a YouTube clone in a Next.js course, using conditional channel info, a banner image, avatar, channel title, and subscriber count.

  • Channel Page Banner & Info Part - 488:30

    Build a Next.js channel banner and info section, showing logo, name, subscription count, and videos, with a channel description truncated at 50 characters plus a more button and subscribe button.

  • Tabs Handler For Channel Page Part - 493:19

    Implement a click-outside handler with useEffect for a Next.js tab component, using ref.current and a mouse down listener. Add and remove document listeners to close the tab when clicking outside.

  • UI For The Tabs Component Part - 509:55

    Design a YouTube-style tabs UI using flex, with a bordered tab list and videos as the default active tab, while hiding extra tabs on mobile and adding a search bar.

  • Finishing The UI For Tabs Part - 514:43

    Reinstall the react icon, attach an event listener to toggle the tab open state, apply dynamic gray styling with a transform transition, and ensure the search expands and closes.

  • Showcasing The Latest & All Videos On The Channel Page Part - 529:29

    Showcases how to display latest and all channel videos in a Next.js YouTube clone, featuring a responsive grid, video cards, and a modal that reveals channel descriptions.

  • Adjusting The Channel Page Part - 534:39

    Debug the channel page and fix the misspelled grid to improve production-quality visuals. Adjust gaps and apply a video card background color for consistent themes.

  • Query Page & Search Card Part - 549:59

    Build a client-side query page that reflects url search terms, fetches results from a search endpoint with 20 items, and renders them with a search card.

  • Handlers For Search Card Part - 558:59

    Build a search card for a next js youtube clone by fetching channel data with a dynamic string. Handle errors with useState and manage category ID and video item state.

  • Finishing The UI Of Search Card Part - 568:44

    Wrap up the search card for a YouTube clone UI in Next.js by wiring the link and image, displaying item snippet details, channel avatar, and description, then prep for deployment.

  • Deploy The Project On Vercel Part - 577:48

    Deploy the Next.js YouTube clone to Vercel by pushing a GitHub repo, configuring environment variables, and verifying live deployment, responsiveness, and video playback across categories.

Requirements

  • Students don't need to have any prior knowledge to take this course. They will learn everything from this course.

Description

In this comprehensive course, Next.js Course: Build a Complete YouTube Clone Web Project, you'll dive deep into the world of modern web development by building a fully-functional YouTube clone. This hands-on project-based course is designed for students eager to master Next.js and gain a strong foundation in web development technologies. You will learn how to build a real-world web application with a focus on industry-standard coding practices and best practices for clean, maintainable code.

By the end of the course, you'll have created your own YouTube clone with a stunning design and responsive layout, powered by modern tools and technologies like TypeScript, Tailwind CSS, and DaisyUI. Additionally, you’ll deploy your project to Vercel Cloud, making your project available online for the world to see.

Course Features:

  • Learn Next.js: Gain in-depth knowledge of Next.js, the React framework used for server-side rendering, static site generation, and routing.

  • Tailwind CSS: Master Tailwind CSS to quickly create modern and responsive web designs with utility-first classes.

  • API Integration: Learn how to integrate APIs into your project, including working with the YouTube API to fetch videos and metadata dynamically.

  • Responsive Design: Build a fully responsive layout that works on all devices, from mobile to desktop.

  • DaisyUI: Utilize DaisyUI components to speed up your UI development and create a beautiful, clean design.

  • Play Videos: Implement video playback functionality, mimicking YouTube’s video streaming feature.

  • Clean & Maintainable Code: Learn best practices for writing clean, modular, and scalable code with TypeScript, ensuring maintainability and readability.

  • Industry Standard Code: Write production-ready code using industry standards and follow guidelines for building a professional-grade application.

  • Deploy to Vercel Cloud: Deploy your completed project to Vercel for fast, serverless hosting and easy scalability.

This course is perfect for students who want to build a strong foundation in web development and become proficient in using Next.js, TypeScript, and modern CSS frameworks. Whether you're a beginner or have experience in web development, this course will provide the hands-on experience you need to advance your skills and build a portfolio-worthy project. Join now and start building your very own YouTube clone!

Who this course is for:

  • Aspiring Web Developers Who Want To Learn Modern Web Development Techniques.
  • Beginners Who Are Interested In Building Full-Stack Web Applications With Next.js.
  • Front-End Developers Looking To Master React And Next.js For Better Web Performance.
  • Students Who Want To Learn How To Build Real-World Applications Using TypeScript.
  • Anyone Interested In Building a YouTube Clone App From Scratch.
  • Developers Who Want To Learn About Tailwind CSS And DaisyUI For Fast UI Development.
  • Anyone Who Is Curious About API Integration And Working With Real-World APIs Like The YouTube API.
  • People Who Want To Deploy Their Web Projects To The Vercel Cloud.
  • Designers Who Want To Improve Their Skills By Building A Fully Responsive Web Application.
  • Full-Stack Developers Wanting To Strengthen Their Front-End And Back-End Development Skills With Next.js.
  • Developers Who Want To Learn Industry-Standard Web Development Practices And Clean Code Techniques.
  • Students Interested In Learning How To Build Scalable And Maintainable Applications With TypeScript.
  • People Who Want To Explore Modern Web Design Trends Using Tailwind CSS.
  • Anyone Who Wants To Learn How To Build A Web App That Plays Videos Like YouTube.
  • Developers Who Want To Deploy Their Web Applications Efficiently With Cloud Platforms Like Vercel.