Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Flutter YouTube Clone App: Complete Flutter Project Course
Rating: 4.2 out of 5(8 ratings)
5,698 students

Flutter YouTube Clone App: Complete Flutter Project Course

Learn to build a fully functional YouTube clone app using Flutter with real API integration and hands-on projects.
Created byVapa Academy
Last updated 6/2025
English

What you'll learn

  • Build a fully functional YouTube clone mobile app from scratch using Flutter
  • Integrate the YouTube Data API (or any REST API) to fetch videos, channels, and search results
  • Design and develop a responsive user interface compatible with both Android and iOS devices
  • Master core Flutter widgets like ListView, GridView, Slivers, and custom components
  • Implement video playback using the video_player package with custom controls
  • Manage app state effectively using Provider, with insights into alternatives like Riverpod and Bloc
  • Build a scrollable home screen with lazy loading, pull-to-refresh, and infinite scroll

Course content

1 section55 lectures6h 31m total length
  • Project Overview3:33

    Build a multi-screen flutter YouTube clone with scaffold layouts. Create custom video cards and a full-screen YouTube player, with search, navigation, and data parsing via YouTube API v3.

  • Initializing New Flutter Project Part - 14:28

    Create a new flutter project for a YouTube clone, install dependencies (http, youtube_explore, youtube player for flutter, timeago), and prepare the lib main file for future coding.

  • Rewriting Main File Part - 25:29

    Rewrite the main.dart to create a dark themed YouTube clone app, configure a transparent status bar with system chrome, and build a home page as a stateful widget inside MaterialApp.

  • Building Home Page UI Part - 33:21

    Create a scaffold with an app bar and a scrollable body for video thumbnails, and place the YouTube app bar as a separate widget in the widgets folder.

  • Building YouTube Appbar Part - 47:35

    Create a dark mode YouTube clone app bar with a black background, elevation, a leading YouTube icon, bold white title, and action buttons with a circular avatar.

  • Category Wise Filter Part - 58:07

    Build a category wise widget for YouTube clone home page as a stateless widget with categories, a selected index, and a change callback. Display a horizontal list of filter chips.

  • Filter Chip Category Widget Part - 65:53

    Enhance the YouTube clone Flutter app by implementing a filter chip in the category widget, tracking the selected category with a state variable and updating styles on selection.

  • Bottom Navigation Bar Part - 77:07

    Implement a stateless bottom navigation bar for the YouTube clone app with fixed type and a dark theme, featuring home, shorts, add, subscription, and you.

  • YouTube Data API Part - 84:56

    Learn to fetch YouTube data in a Flutter app using the YouTube data API v3, create an API key, and search videos for the home page.

  • Helper Function Try Catch Part - 93:24

    Create a helper class with a static generic function handleRequest to wrap YouTube data API calls in a try-catch, return the awaited action, and print the error while returning null.

  • Fetch Video YouTube API Part - 108:58

    Connect with the YouTube data API to fetch most popular videos for the home page, using base URL, API key, and next page token, with search support.

  • Hitting The YouTube Data API Part - 115:11

    Fetch YouTube videos via the YouTube data API in flutter, print and debug the response, and parse it into a video model for display on the home page.

  • Printing YouTube API Response Part - 127:56

    Fix the 400 error by correcting the typo from snippets to snippet, hot restart to print API data, and implement a video model with from-json parsing for title, thumbnail, channel.

  • Video Model Part - 138:35

    Build the video model for a YouTube clone by parsing video id from JSON, formatting view counts, and converting ISO 8601 duration to hours, minutes, seconds with regex.

  • Using Regexp for Video Duration Part - 148:14

    Extract video duration from a complex ISO string using a regex, capture hours, minutes, and seconds, and build a padded, interpolated duration string.

  • Video Published Time Logic Part - 158:02

    Develops a dynamic get time ago function to compute how long ago a video was published by parsing the published at timestamp for the YouTube clone Flutter app.

  • API Data Parsing Part - 168:20

    Learn how to call an async get time ago function, parse YouTube API data, handle nulls, implement video details fetching, and decode JSON to populate the home screen.

  • Handling API Data Part - 177:43

    Learn to fetch video details via api requests, decode json, handle status codes, and build video models from items with error debugging for a YouTube clone in Flutter.

  • Home Page Loading Part - 186:35

    Build a scrollable home page list of YouTube clone videos by managing loading states, fetching initial and more videos via the API service, and updating the video model.

  • Home Page Scroll Controller Part - 197:05

    Implement a home page scroll-driven load more feature in the YouTube clone by adding a next page token getter, a scroll controller, refresh indicator, and loading indicators for video lists.

  • Video List Widget Part - 209:08

    Build a silver list inside a custom Scrollview using a silver child list builder delegate to display video thumbnails with duration, show a loading indicator, and handle video selections.

  • Video List Item UI Part - 219:37

    Create the video list item for the Flutter YouTube clone by adding thumbnail, duration, channel avatar, title, channel, views, and publish time with ellipses.

  • Video Page State-full Widget Part - 224:56

    Learn to build a stateful video page in a Flutter YouTube clone, wiring YouTube API service, video model, comments, and a recommended videos list with full screen support.

  • Navigation to Video Page Part - 235:43

    Navigate to the video page with a material page route and display the video title on selection; fetch recommended videos by title and prepare to load comments.

  • Understanding Comments From YouTube Data API Part - 245:40

    Learn to fetch YouTube video comments via the YouTube data API by building a fetch comments function that hits the comment threads endpoint with video id and snippet.

  • Understanding Comments Response From YouTube API Part - 256:58

    Learn to parse YouTube data api comments into a structured json with author, author profile image, text, like count, and published date, plus basic error handling.

  • Fetch Comments From YouTube API Part - 264:47

    Fetch comments from the YouTube data API and load them into the video page using a helper to handle requests, async loading, and a loader while updating the comments state.

  • Comments Data on Video Page Part - 275:21

    Debug and refine the Flutter YouTube clone app by fixing data type issues, correcting token and video ID usage, and implementing toggle comments to build the video page UI.

  • YouTube Player Widget Control Setting Part - 289:22

    Develop a stateful YouTube player widget for the Flutter clone by initializing a YouTube player controller with the video id and setting autoplay, mute, captions, and data-saving flags.

  • Building Video Player for YouTube Video Part - 296:34

    Learn to build and customize a YouTube video player user interface in Flutter, including full-screen handling, progress indicators, and lifecycle management for a complete YouTube clone app.

  • Viewing Video Player Part - 308:54

    Develop and test a Flutter YouTube player by configuring scaffold and background, wiring fullscreen handling, and adding a video info section with a channel tap callback.

  • Video Info Section Part - 317:58

    Build video info section using a padded row for view count, bullet, and published time in gray 400, then add channel tile with avatar, title, and a red subscribe button.

  • Viewing Video Info on Video Page Part - 324:17

    Display a video page that shows the video player in full screen or, when not, a column with video info, channel, and recommended videos, wiring up state.

  • Comments Section Collapse View Part - 3311:27

    Create a collapsible comments section for the YouTube clone app, implementing a stateless comment_section widget, a comments list and loading state, and callbacks for opening, closing, and expanding.

  • Header and Tabs for Comments Expanded View Part - 3411:01

    Build the header and tabbed controls for the expanded comments view in a YouTube clone Flutter app, including comment-count header, a close button, and scrollable newest/top tabs.

  • Building Comment Item Part - 3510:22

    Create a Flutter comment item for the YouTube clone, parse publish date with DateTime and time ago, and display avatar, author, time, like count in the comment view.

  • Comments Section Expanded View Implementation Part - 3612:08

    Build the expanded comments view for the YouTube clone, including like count styling, a thumb down icon, a reply option, and the add comment bar with avatar.

  • Displaying Comments on Video Screen Part - 375:34

    Wire the comment section into the video page of the Flutter YouTube clone app, toggle expanded comments, manage loading states, and hot reload to display comments under video info.

  • Expanded View Comments Bug Part - 385:20

    Fix the YouTube clone flutter course comment bug by converting the like count to a string and displaying zero, then prepare the UI with a row, icon, and avatar.

  • Showing Recommended Videos Part - 399:01

    Add comment text to the expanded comment view and show an add comment button, then implement a recommended videos list with loading, error handling, and navigation to the video page.

  • Creating Channel Model Part - 4015:46

    Create a channel model for the flutter YouTube clone by parsing channel details from the YouTube API, including id, title, description, thumbnails, banner, subscriber and video counts, and links.

  • Fetching Channel Details Part - 416:23

    Fetch channel details for a given channel id using the YouTube data API, decoding JSON to return a channel model, with error handling and preparation to fetch channel videos.

  • Fetching Channel Videos Part - 427:59

    Fetch channel videos for a given channel id by building a YouTube API request, parsing items, retrieving video details, and returning a list of video models for display.

  • Channel Page Class Part - 434:58

    Build the channel page UI for the YouTube clone by creating a stateful channel page with a required channel id and enabling navigation from the video page.

  • Channel Page Appbar Part - 445:41

    Build a Flutter YouTube channel page app bar with a black scaffold, nested scroll view, and a sliver app bar featuring a back button and cast, search, and more actions.

  • Loading Channel Data Part - 456:23

    Implement channel state management in YouTube clone Flutter course by loading channel details and videos via an API service, managing loading state, and wiring a five tab controller in initState.

  • Channel Page Cover Image Part - 465:24

    Implement the channel page cover image for the YouTube clone Flutter app, handling loading and null channel edge cases with a circular progress indicator and a fallback scaffold.

  • Channel Info Section Part - 479:07

    Build channel info section for the YouTube clone Flutter app, including avatar, channel title, handle, verification icon, and subscriber and video counts, then prepare tabs for videos, playlists, and recommendations.

  • Channel Description Part - 486:44

    Develop the channel description and links section in a Flutter YouTube clone, showing a two-line description with ellipsis, optional links in blue, and subscribe and join buttons.

  • TabBar View Part - 495:40

    Create a scrollable tab bar in a Flutter YouTube clone, with home, videos, shorts, playlist, and community tabs, and implement a tab bar view for the home video list.

  • Showing Channel Videos Part - 5011:47

    Show channel videos on home tab by wiring a tab bar controller. Build a ListView of video cards with thumbnails, durations and titles; tap to navigate to the video page.

  • Navigating to Search Page Part - 514:57

    Implement the search button in the YouTube clone Flutter app by creating a stateful search page and wiring app bar navigation to display it on a black scaffold.

  • Getting Search Results Part - 528:00

    Implement search functionality for the YouTube clone by building a search app bar, wiring a text editing controller, and handling submitted queries to fetch videos via the API service.

  • Showing Search Results Part - 536:38

    implement the YouTube clone search flow in flutter: trigger searches from the app bar, decode video models, show loading, display results, and navigate to the video page on tap.

  • Course Wrap Up1:12

    Complete the Flutter YouTube clone course by building a feature-rich app with the YouTube data API, including a home screen, video player, dynamic channel screen, and search.

Requirements

  • No prior skills are required. You will learn from the basics with clear and proper explanations.

Description

Flutter YouTube Clone App: Complete Flutter Project Course


Are you ready to master Flutter by building a real-world, fully functional YouTube clone app? This comprehensive course takes you step-by-step through creating an impressive mobile app that mimics YouTube’s core features, using Flutter’s powerful framework.

In this course, you will learn how to integrate the YouTube Data API to fetch videos, channels, and search results dynamically. You’ll design a sleek, responsive UI that works flawlessly on both Android and iOS devices. From implementing video playback controls to creating smooth navigation and engaging layouts, this course covers all essential Flutter concepts needed to build modern apps.

Whether you’re a beginner with basic Flutter knowledge or an intermediate developer looking to level up, this hands-on project will help you sharpen your skills and build a strong portfolio piece.

What you’ll learn:

  • Build a fully functional YouTube clone app using Flutter

  • Integrate YouTube Data API to fetch and display dynamic content

  • Design responsive layouts with ListView, GridView, and custom widgets

  • Implement video playback using Flutter’s video_player package

  • Create smooth navigation and intuitive UI/UX

  • Handle infinite scrolling and pull-to-refresh features

  • Apply dark mode support and theming for better user experience

  • Optimize app performance with caching and efficient API calls

  • Test your Flutter app to ensure reliability and stability

By the end of this course, you’ll have a deep understanding of Flutter app development through a real-world project and be ready to create your own apps or advance your career as a mobile developer. Enroll now and start building your YouTube clone app today!

Who this course is for:

  • Flutter developers who want to build a real-world YouTube clone app
  • Beginners with basic Flutter/Dart knowledge looking to improve their skills through a hands-on project
  • Mobile app developers interested in working with APIs and dynamic content
  • Students eager to learn video playback integration and UI/UX best practices
  • Developers who want to master responsive design for both Android and iOS using Flutter
  • Anyone looking to create apps that fetch and display data from REST APIs
  • Programmers wanting to learn how to structure medium to large-scale Flutter apps
  • Tech enthusiasts curious about how video streaming apps like YouTube are built
  • Developers preparing for jobs or freelance projects involving Flutter and Firebase/Google APIs
  • Existing Flutter learners who want a practical project to strengthen their portfolio