PHPackages                             arm092/youtuber-for-laravel - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Image &amp; Media](/categories/media)
4. /
5. arm092/youtuber-for-laravel

ActiveLibrary[Image &amp; Media](/categories/media)

arm092/youtuber-for-laravel
===========================

The package will help you to upload videos to youtube with privacy parameter and making youtube api much easier

1.1(6y ago)8264[3 issues](https://github.com/arm092/youtuber-for-laravel/issues)MITPHP

Since Nov 21Pushed 3y ago1 watchersCompare

[ Source](https://github.com/arm092/youtuber-for-laravel)[ Packagist](https://packagist.org/packages/arm092/youtuber-for-laravel)[ RSS](/packages/arm092-youtuber-for-laravel/feed)WikiDiscussions master Synced today

READMEChangelog (2)Dependencies (1)Versions (3)Used By (0)

Youtube Uploader for Laravel
============================

[](#youtube-uploader-for-laravel)

laravel youtube uploader is a php package written by [Arman Khachatryan](https://github.com/arm092) with laravel to handle many youtube sdk functionality by making it's api more easy.

Features
--------

[](#features)

- Uploading videos to user channel
- Creating playlists
- Insert video to existing playlist
- Set thumbnail to existing video or at uploading video
- Deleting video

Installation Guide
==================

[](#installation-guide)

At laravel project install package using composer

```
composer require arm092/youtuber-for-laravel

```

The package is compatible with Laravel 6.x so you don't need to set providers or aliases for the package, we're using laravel auto discovery

Get Your Credentials From Google
--------------------------------

[](#get-your-credentials-from-google)

- Go to [Google Developers Console](https://console.developers.google.com/) Press Credentials from the sidebar then create project from OAuth consent screen then Click Credentials =&gt; Create credentials =&gt; OAuth client id, choose it web application and set you Authorized redirect URIs, also you can edit or add new urls later
- You will get Client Id and Client Secret
- Go to your .env file and paste your credentials to be like this

```
GOOGLE_CLIENT_ID=YOUR_CLIENT_ID
GOOGLE_CLIENT_SECRET=YOUR_SECRET

```

You are now ready to use the package

There is two steps to do any thing for the package, get authenticated url and do the youtube api action

### To get the auth url, just go to routes/web.php and do this route or the path you want to use

[](#to-get-the-auth-url-just-go-to-routeswebphp-and-do-this-route-or-the-path-you-want-to-use)

```
Route::get('youtube/auth', 'YoutubeUploaderController@auth');

```

At the controller, you will get the url and you can show it in view file or redirect user to it directly

```
use Youtube;
public function auth() {
    $redirect_url ='http://localhost/youtube-uploader/public/youtube/callback';  // Upload video path

    return redirect(Youtube::setRedirectUrl($redirect_url)->AuthUrl());
  }

```

This code will authenticate user then redirect user to another url to do your logic on it, and to do any logic code, you need to add route url to routes/web.php

```
Route::get('youtube/callback', 'YoutubeUploaderController@callback');

```

Don't forget to save full path of callback url at google console developer at credential for project

The we will now show our logic of the package

Upload video
------------

[](#upload-video)

```
public function callback(Request $request) {
      $redirect_url ='http://localhost/youtube-uploader/public/youtube/callback';
      $video = public_path('VIDEO_FILE');
      $image = public_path('IMAGE_FILE');
    	$youtube = Youtube::setRedirectUrl($redirect_url)->upload($video,
            [
                'title' => 'TITLE',
                'description' => 'DESCRIPTION',
                'tags' => ['tag 1', 'tag 2'],
                'category_id' => '22',
                'privacy' => 'public' // or 'private' and 'unlisted'
            ]
        );

      // Get uploaded video id
      $video_id = $youtube->uploadedVideoId();
}

```

Set thumbnail to existing video
-------------------------------

[](#set-thumbnail-to-existing-video)

Remember that you need to set auth url at routes for each callback url

```
public function another_callback(Request $request) {
    $redirect_url ='http://localhost/youtube-uploader/public/youtube/callback/another_callback';
    $video_id = 'VIDEO_ID';
    $image = public_path('THUMBNAIL_PATH');
    $youtube = Youtube::setRedirectUrl($redirect_url)->updateThumbnail($video_id, $image);
}

```

Set thumbnail at uploading
--------------------------

[](#set-thumbnail-at-uploading)

Remember that you need to set auth url at routes for each callback url

```
public function another_callback(Request $request) {
      $redirect_url ='http://localhost/youtube-uploader/public/youtube/callback/another_callback';
      $video = public_path('VIDEO_PATH');
      $image = public_path('THUMBNAIL_PATH');
      $youtube = Youtube::setRedirectUrl($redirect_url)->upload($video,
             [
                 'title' => 'TITLE',
                 'description' => 'Description1',
                 'tags' => ['tag 1', 'tag2'],
                 'category_id' => '22',
                 'privacy' => 'public' // or 'private' and 'unlisted'
             ]
         )->withThumbnail($image);

         $video_id = $youtube->uploadedVideoId();
}

```

Set tags for existing video
---------------------------

[](#set-tags-for-existing-video)

Remember that you need to set auth url at routes for each callback url

```
public function another_callback(Request $request) {
       $redirect_url ='http://localhost/youtube-uploader/public/youtube/callback/another_callback';
       $video_id = 'YOUR_VIDEO_ID';
       $youtube = Youtube::setRedirectUrl($redirect_url)->updateTags($video_id, ['tag 1', 'tag2', 'Tag3', 'Tag 4']);
}

```

Create Playlist
---------------

[](#create-playlist)

Remember that you need to set auth url at routes for each callback url

```
 public function another_callback(Request $request) {
       $redirect_url ='http://localhost/youtube-uploader/public/youtube/callback/another_callback';
       $youtube = Youtube::setRedirectUrl($redirect_url)
                         ->createPlaylist('TITLE', 'DESCRIPTION');

       // Get playlist id
       $playlist_id = $youtube->createdPlaylistId();
 }

```

Insert Video to playlist
------------------------

[](#insert-video-to-playlist)

Remember that you need to set auth url at routes for each callback url

```
 public function another_callback(Request $request) {
     $redirect_url ='http://localhost/youtube-uploader/public/youtube/callback/another_callback';
     $youtube = Youtube::setRedirectUrl($redirect_url)
                       ->VideoToPlaylist('VIDEO_ID', 'PLAYLIST_ID');
 }

```

Delete video by the given id
----------------------------

[](#delete-video-by-the-given-id)

Remember that you need to set auth url at routes for each callback url

```
public function another_callback(Request $request) {
    $redirect_url ='http://localhost/youtube-uploader/public/youtube/callback/another_callback';
    $video_id = 'VIDEO_ID';
    $youtube = Youtube::setRedirectUrl($redirect_url)->deleteVideo($video_id);
}

```

###  Health Score

27

—

LowBetter than 47% of packages

Maintenance13

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

2415d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/26311312?v=4)[Arman](/maintainers/arm092)[@arm092](https://github.com/arm092)

---

Top Contributors

[![arm092](https://avatars.githubusercontent.com/u/26311312?v=4)](https://github.com/arm092 "arm092 (7 commits)")

---

Tags

helperlaravellaravel-6laravel-6-packagelaravel6phpprivacytooluploaduploaderuploading-videosvideovideo-privacyyoutubeyoutube-apiyoutube-uploader

### Embed Badge

![Health badge](/badges/arm092-youtuber-for-laravel/health.svg)

```
[![Health](https://phpackages.com/badges/arm092-youtuber-for-laravel/health.svg)](https://phpackages.com/packages/arm092-youtuber-for-laravel)
```

###  Alternatives

[flow-php/flow

PHP ETL - Extract Transform Load - Data processing framework

85036.3k](/packages/flow-php-flow)[fleetbase/core-api

Core Framework and Resources for Fleetbase API

1235.9k20](/packages/fleetbase-core-api)[chameleon-system/chameleon-base

The Chameleon System core.

1028.6k5](/packages/chameleon-system-chameleon-base)[voidagency/vactory_starter_kit

Vactory is a custom Drupal profile which is developed and released by VOID Agency.

1021.6k](/packages/voidagency-vactory-starter-kit)[ayman-elmalah/laravel-youtube-uploader

The package will help you to upload videos to youtube and making youtube api much easier

151.0k](/packages/ayman-elmalah-laravel-youtube-uploader)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
