Skip to content

Latest commit

 

History

History
113 lines (76 loc) · 2.57 KB

README.MD

File metadata and controls

113 lines (76 loc) · 2.57 KB

YouTube Downloader Package

A PHP library for downloading YouTube videos and extracting metadata with ease.

Installation

To use this package, you'll need the following prerequisites:

  1. PHP 8.0 or higher
  2. youtube-dl or yt-dlp installed and accessible from the command line.
  3. FFmpeg installed and accessible from the command line.

Install the package via Composer

Run the following command to add the package to your project:

composer require refaltor/youtube-downloader

Getting Started

Basic Usage

Below is an example of how to use the package to download a YouTube video:

<?php

require 'vendor/autoload.php';

use Refaltor\YoutubeDownloader\Youtube;

try {
// Initialize the YouTube downloader
$downloader = new Youtube(
outputPath: '/absolute/path/to/store/videos/', // Directory to save the video
videoUrl: 'https://www.youtube.com/watch?v=example' // URL of the YouTube video
);

    // Start the download
    $downloadedFile = $downloader->download();

    echo "Video downloaded successfully: " . $downloadedFile;
} catch (Exception $e) {
echo "Error: " . $e->getMessage();
}

Customizing Paths

You can customize the paths for FFmpeg and youtube-dl (or yt-dlp) during initialization:

<?php

require 'vendor/autoload.php';

use Refaltor\YoutubeDownloader\Youtube;

try {
$downloader = new Youtube(
outputPath: '/absolute/path/to/store/videos/',
ffmpegPath: '/custom/path/to/ffmpeg',
youtubeDlPath: '/custom/path/to/youtube-dl'
);

    // Set the video URL dynamically
    $downloader->setVideoUrl('https://www.youtube.com/watch?v=example');
    
    $downloadedFile = $downloader->download();

    echo "Video downloaded successfully: " . $downloadedFile;
} catch (Exception $e) {
echo "Error: " . $e->getMessage();
}

Exception Handling

The download method will throw an exception in the following cases:

  • The video URL is not provided.
  • The output directory is invalid or cannot be created.
  • The download process fails.

Make sure to catch exceptions and handle errors appropriately:

<?php

require 'vendor/autoload.php';

use Refaltor\YoutubeDownloader\Youtube;

try {
$downloader = new Youtube(
outputPath: '/absolute/path/to/store/videos/'
);

    $downloader->setVideoUrl('https://www.youtube.com/watch?v=example');
    $downloadedFile = $downloader->download();

    echo "Video downloaded successfully: " . $downloadedFile;
} catch (Exception $e) {
echo "Error: " . $e->getMessage();
}