WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

Как загрузить видео на YouTube в приложении Laravel

218

Недавно один из наших читателей спросил, как загрузить видео на YouTube из приложения Laravel. Они хотели создать систему, которая может загружать видео на YouTube из приложения Laravel. При этом им не нужно предоставлять доступ к своей учетной записи YouTube членам команды, которые управляют видео для учетной записи YouTube.

Раньше я писал статью, в которой объясняется, как загружать видео на YouTube с помощью API YouTube на PHP. В этой статье мы увидим, как загрузить видео на YouTube из приложения Laravel.

Зарегистрируйте приложение и получите учетные данные

Для начала вам потребуется учетная запись Google. В аккаунте Google необходимо зарегистрировать свое приложение и получить ключи API.

Ниже приведены шаги для регистрации приложения и получения ключей API.

  • Перейдите в консоль разработчика Google. https://console.developers.google.com.
  • Создайте новый проект. Вы также можете выбрать существующий проект.
  • Введите название вашего проекта. Консоль Google создаст для вас уникальный идентификатор проекта.
  • После создания проекта он появится в верхней части левой боковой панели.
  • Нажмите «Библиотека» в левом меню. Вы увидите список API Google. Включите API данных YouTube.
  • Затем в левом меню нажмите Учетные данные. Выберите Идентификатор клиента Oauth в разделе Создать учетные данные. Выберите переключатель для веб-приложения.
  • Дайте имя. В разделе «Авторизованные источники JavaScript» введите URL-адрес вашего домена. В URI авторизованного перенаправления добавьте ссылку URL перенаправления как http: // localhost: 8000 / youtube / callback. Я передаю здесь свой локальный URL. Вы должны скорректировать этот URL для своего домена.
  • Наконец, нажмите кнопку «Создать». Во всплывающем окне вы получите идентификатор клиента и секрет клиента. Скопируйте эти данные. Скоро нам это понадобится.

Установить и настроить библиотеку GitHub

После создания приложения вам необходимо установить библиотеку joedawson / youtube. Для установки этой библиотеки откройте терминал в корневом каталоге вашего проекта и выполните команду:

composer require dawson/youtube

После установки библиотеки необходимо зарегистрировать в config/app.phpфайле поставщика услуг и псевдонимы .

config / app.php

....
'providers' => [
    ...
    DawsonYoutubeYoutubeServiceProvider::class,
],
....
'aliases' => [
    ...
    'Youtube' => DawsonYoutubeFacadesYoutube::class,
],

Затем опубликуйте youtube.phpмиграции и с помощью следующей команды:

php artisan vendor:publish --provider="DawsonYoutubeYoutubeServiceProvider"

Приведенная выше команда перемещает файл youtube.phpв папку config, а файл миграции – в папку database / migrations. Теперь вам нужно запустить команду миграции, которая создаст таблицу youtube_access_tokensтаблицы в базе данных.

php artisan migrate

В этой таблице будет храниться токен доступа и токен обновления после авторизации учетной записи YouTube. Access_token необходим, когда вы взаимодействуете с YouTube API. Токен доступа действует как идентификатор вашей учетной записи YouTube. У токена доступа короткий срок жизни, поэтому для получения нового токена доступа эта библиотека использует токен обновления. Вам не нужно беспокоиться о том, чтобы вставить эти токены в таблицу. Библиотека сделает это в фоновом режиме.

Мы скопировали учетные данные API, которые необходимо поместить в приложение Laravel. Откройте .envфайл и добавьте свой идентификатор клиента и секрет клиента следующим образом:

GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=

Если вы вносите какие-либо изменения в файл среды, вы должны очистить конфигурацию с помощью команды:

php artisan config:clear

Авторизация аккаунта Google

По соображениям безопасности маршруты для авторизации учетной записи YouTube с вашим приложением Laravel по умолчанию отключены. Вам нужно будет включить его из вашего config/youtube.php. Откройте config/youtube.phpи включите его, просто заменив значение false на true.

...
'enabled' => true, //set it to 'false' after authorization

Теперь вы можете авторизовать свою учетную запись, используя URL-адрес YOUR_DOMAIN_URL / youtube / auth в браузере. Он будет перенаправлен на страницу входа в Google для аутентификации вашей учетной записи. Завершите процесс. При успешной аутентификации вы вернетесь в свое приложение Laravel. Проверьте youtube_access_tokensтаблицу, и вы должны увидеть токены, вставленные в столбец access_token. Это однократный процесс. Библиотека автоматически сгенерирует access_token в фоновом режиме, даже если срок его действия истек. Пользователю не нужно повторно авторизовать свою учетную запись.

Загрузите видео в аккаунт YouTube в приложении Laravel

На этом этапе у вас есть токен доступа. Теперь создайте форму для просмотра видеофайла и отправки его на YouTube. Давайте создадим контроллер, выполнив следующую команду.

php artisan make:controller VideoController --resource

Определите маршруты VideoControllerследующим образом.

маршруты / web.php

<?php
...
Route::resource('video', 'VideoController');

Создайте представление resources/views/video.blade.phpи добавьте в него приведенный ниже код.

<form action="{{ url('video') }}" method="post" enctype="multipart/form-data">
    <p><input type="text" name="title" placeholder="Enter Video Title" /></p>
    <p><textarea name="description" cols="30" rows="10" placeholder="Video description"></textarea></p>
    <p><input type="file" name="video" /></p>
    <button type="submit" class="btn btn-default">Submit</button>
    {{ csrf_field() }}
</form>

Вызовите этот файл представления из indexметода нашего контроллера.

public function index()
{
    return view('video');
}

Теперь, когда вы посетите YOUR_DOMAIN_URL / video, вы увидите форму, содержащую ввод файла, заголовок, описание и кнопку отправки.

Чтобы вызвать API YouTube, добавьте в контроллер класс YouTube. А в storeметоде напишите код для загрузки видео на YouTube следующим образом.

<?php
 
namespace AppHttpControllers;
 
use IlluminateHttpRequest;
use Youtube;
 
class VideoController extends Controller
{
    ....
    public function store(Request $request)
    {
        $video = Youtube::upload($request->file('video')->getPathName(), [
            'title'       => $request->input('title'),
            'description' => $request->input('description')
        ]);
 
        return "Video uploaded successfully. Video ID is ". $video->getVideoId();
    }
}

Здесь мы передаем видеофайл, заголовок и описание из нашей формы. Этот код просто загружает ваше видео на YouTube и печатает идентификатор видео YouTube.

Надеюсь, вы понимаете, как загрузить видео на YouTube в приложении Laravel. Пользователь также может обновлять и удалять видео, используя код, предоставленный библиотекой. Вы можете прочитать об этом больше в их документации.

Статьи по Теме

Источник записи: artisansweb.net

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее