We may earn an affiliate commission when you visit our partners.
Course image
Udemy logo

Building Youtube Clone Using Laravel and Livewire

Abdulaziz Al Zaabi

Join me in Building YouTube Clone Using Livewire Application Journey.

You will need basic Knowledge in Laravel. I will go through building it kind of live coding style in which you can see me making mistakes and learn how we can correct it .

Read more

Join me in Building YouTube Clone Using Livewire Application Journey.

You will need basic Knowledge in Laravel. I will go through building it kind of live coding style in which you can see me making mistakes and learn how we can correct it .

On Challenge in Website that contains videos is how to encode videos ? How I can generate thumbnail ? how to play videos in all browsers . All of these points will be address using FFMPEG . 

We are going to use Alpinejs as basic javascript library to help us to build some dynamic in front-end .

Join me and have fun while coding :)

Here is what is included in this course :

  • Create new Laravel Project and do complete setup.

  • Allow user to create youtube channel while he register in the application.

  • Install and Configure Livewire and show basic model binding between class and view

  • Edit Channel properties using Livewire Component

  • Configure Validation for Forms Using Livewire

  • Create policies in Laravel to manage channel updates . Only Channel owner should be update his channel.

  • Upload Files like channel image using Livewire file uploads methods.

  • Modify Image after upload using image intervention package to control image size etc.

  • File upload section which contains details about creating video upload form using Livewire

  • Adding Progress Bar for Video Upload

  • Edit Video Record

  • Delete Video Record

  • Secure video deletion using Laravel polices and integrate it inside livewire component .

  • Video Encoding using FFMPEG .

  • Demo video to explain FFMPEG and how to integrate with Laravel

  • Video Encoding demo using command in Laravel

  • Create Jobs to handle video encoding , creating thumbnail and learn how to run them in the background to improve application performance

  • Adding Thumbnail to Video

  • Real time update about video encoding progress in front end inside Livewire Component.

  • Add video player using videojs and customize its height and width

  • Learn about video events like pause ,play, ended etc and update views column after user view video for 3 seconds

  • Complete Section about

  • Voting System (Like/Dislike)

  • User can like or dislike videos,

  • Show number of likes/dislikes for each video

  • Subscription Section : allow users to subscribe/unsubscribe to channel

  • Show channel information with subscription counts

  • Comment System : Users will be able to add comments and replies for each video.

  • Using Livewire with comment system to show/hide replies or show add new comment form

  • Build Homepage in which user will he videos from subscribed channels or general videos if not logged in

  • Add Search Functionality to HomePage

  • Style Channel HomePage similar to youtube

  • Add Video Duration to Video Card

  • and more...

Course Prerequisites :

  • Basic PHP Knowledge

  • Basic Laravel Knowledge and able to setup Laravel Environment 

  • Basic Knowledge Bootstrap CSS Framework

  • Good Knowledge of4

Enroll now

What's inside

Learning objectives

  • Learn how to make youtube clone website using laravel
  • How to install and use livewire 2.0
  • Learn video processing/encoding using ffmpeg
  • Learn file upload in livewire
  • Learn image manipulation using image intervention package
  • Create voting system (like/dislike)
  • Create comment system
  • How to create jobs and how to dispatch them using queues in laravel
  • How make big applications with complex login like youtube .
  • Learn about frontend using bootstrap framework and custom css when needed

Syllabus

Introduction
Project Demo
Setup basic Laravel Project
Create New Laravel Project
Read more
Create Channel Model and Migration
Create Channel via Default Registration Form
Livewire
Install Livewire
Property Binding Example
Edit Channel via Livewire Component
Setup Channel Edit Routing
Build The Edit Form
Configure Validation via Livewire
Lock down Channel Update to owner via Authorization Policy
Channel Logo Update - File Upload via Livewire
Resize Image using Image Intervention Package
Video Uploading
Create Video Model and Videos Table Migration
Create Livewire Components to manage Videos and prepare the views
Create Video Upload Form and Upload to Livewire Temporary Folder
Add Progress Bar
Video Validation and Create Video Record
Edit Video Record Form
Move Uploaded File to Video Temp Folder
Video Encoding using FFMPEG
Introduction to Video Encoding and Install Laravel-FFMPEG Package
Test: Video Encoding using Command in Laravel Application
Creating Jobs for Video Encoding and Creating Thumbnail
Dispatch Create Thumbnail Job
Add Thumbnail to the Videos Table
Dispatch Video Encoding Job
Add Video Thumbnail to Edit Form
Build All Videos Page
Delete Video
Secure Deleting video Using Video Policy
Real Time Update for Processing Percentage
Fix Update Visibility Column and Delete Temp Video File
Video Player using Videojs
Setup Videojs Library and add player using this library
Customize Width and Hight for player by adding custom.css file
Add Views Column to Videos Table + Increase Views When Video Played for more 3s
Voting System (Like / Dislike system)
Create Video Information Row
Create Voting Components
Like and Dislike Table/Model Creation with relationships
Allow user to like / dislikes videos
Check If User Likes Videos
Check if User Dislike Videos
Load Likes and Dislikes in mount Method
Refresh Values Automatically when User Clicks Like/Dislike
Toggle Like/Dislike - one is active at a time
Fixes

The issue for the timeline not changing is fixed by one of the students. Please check the resources to see the solution .

Fix Default Channel Image
Channel Subscription
Build Markup For Channel Information and Subscription Button
Subscription Migration and Add Needed Relationships
Add Channel Subscribers and Get User Subscription Status
Toggle Subscribe Button
Comment System
Creating Comments Migration and Setup Models Relationships
Show Comments using Livewire Component For All Comments
Show Replies for each Comment
Show/Hide Replies using Alpinejs
Create New Comment Component and Style it
Store New Comment to The Database
Show Comment Component as Reply
Build HomePage which shows videos from subscribed channels or random videos
Routes and Controller for HomePage
Change Welcome View to include Videos From Subscribed Channel or General Videos
Adding Search to Welcome Page plus creating routes and login
Adding Videos Cards to Search Page
Create Channel Index Page
Append Video Grid to Channel Index Page
Add Duration to Video Cards

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches the use of Alpinejs to enhance front-end dynamics
Develops skills in video processing, encoding using FFMPEG, file uploading, and image manipulation using the Image Intervention Package
Suitable for beginners with basic PHP and Laravel knowledge
Provides knowledge of building complex applications with login functionality
Curriculum covers a comprehensive range of topics, including video encoding, video player integration, voting system, comment system, and search functionality
Emphasizes hands-on learning through the use of live coding style

Save this course

Save Building Youtube Clone Using Laravel and Livewire to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Building Youtube Clone Using Laravel and Livewire with these activities:
Organize course materials
Organize and review course materials to ensure understanding and retention.
Show steps
  • Create a system for organizing notes, assignments, and other materials
  • Review materials regularly to reinforce learning
Practice using the command line
Refresh your skills using the command line to enhance your ability to navigate and execute tasks in the terminal.
Browse courses on Command Line
Show steps
  • Open a terminal window
  • Practice basic commands like `ls`, `cd`, and `mkdir`
Read "The Pragmatic Programmer"
Review "The Pragmatic Programmer" to gain insights into best practices and principles of software development.
Show steps
  • Read the book
  • Identify key concepts and principles
  • Reflect on how these principles apply to your own development practices
Five other activities
Expand to see all activities and additional details
Show all eight activities
Create sample videos
Create sample videos to practice encoding and processing with FFMPEG.
Browse courses on Video Encoding
Show steps
  • Install FFMPEG
  • Create a video using a screen recording tool
  • Encode the video using FFMPEG
  • Inspect the output video file
Join a study group
Join a study group to engage in discussions, share knowledge, and support each other's learning.
Show steps
  • Find a study group or create your own
  • Establish meeting times and discussion topics
  • Actively participate in discussions and share your insights
Build a basic REST API using Laravel
Build a basic REST API to practice creating and managing resources in Laravel.
Browse courses on Laravel
Show steps
  • Create a new Laravel project
  • Create a model and migration
  • Define routes and controllers
  • Test the API using Postman or a similar tool
Create a simple social media application
Create a simple social media application to practice building a full-stack application with Laravel.
Browse courses on Social Media
Show steps
  • Design the database schema
  • Create models and migrations
  • Implement user authentication and authorization
  • Build the front-end using a CSS framework
  • Integrate the front-end and back-end
Contribute to an open-source project
Contribute to an open-source project to gain real-world experience and collaborate with other developers.
Browse courses on Open Source
Show steps
  • Find an open-source project that aligns with your interests
  • Review the project's documentation and guidelines
  • Identify a task or issue to work on
  • Implement a solution and submit a pull request

Career center

Learners who complete Building Youtube Clone Using Laravel and Livewire will develop knowledge and skills that may be useful to these careers:

Reading list

We haven't picked any books for this reading list yet.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Building Youtube Clone Using Laravel and Livewire.
FFmpeg | Batch Modify Thousands of Videos Quickly and...
Most relevant
FFmpeg for Adaptive Bitrate Production
Most relevant
FFmpeg - The Complete Guide
Most relevant
YouTube Masterclass - Your Complete Guide to YouTube
Most relevant
Laravel: Configure, Validate, Authenticate and Authorize
YouTube Academy 2024: Complete Beginner to Pro Step-by...
Mastering Laravel Framework and PHP
Laravel Fundamentals
Image and Video Processing: From Mars to Hollywood with a...
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser