Як завантажити відео на YouTube у програмі Laravel
Нещодавно один з наших читачів запитав, як завантажити відео на YouTube із програми Laravel. Вони хотіли створити систему, яка може завантажувати відео YouTube із програми Laravel. Роблячи це, їм не потрібно надавати доступ до свого облікового запису YouTube членам команди, які керують відео для облікового запису YouTube.
Раніше я писав статтю, в якій розповідається про завантаження відео на YouTube за допомогою API YouTube у PHP. У цій статті ми побачимо, як завантажити відео на YouTube із програми Laravel.
Зареєструйте заявку та отримайте облікові дані
Для початку потрібно мати обліковий запис Google. В обліковому записі Google потрібно зареєструвати свою програму та отримати ключі API.
Нижче наведені кроки для реєстрації програми та захоплення ключів API.
- Перейдіть на Консоль розробника Google https://console.developers.google.com.
- Створіть новий проект. Ви також можете вибрати існуючий проект.
- Введіть назву вашого проекту. Google Console створить для вас унікальний ідентифікатор проекту.
- Після створення проекту він з’явиться у верхній частині лівої бічної панелі.
- Клацніть на Бібліотека в меню ліворуч. Ви побачите список 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. Tok_token необхідний під час взаємодії з API YouTube. Токен доступу виступає як ідентифікатор вашого облікового запису 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
наступним чином.
routes / 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 / відео, ви побачите форму, що містить введення файлу, заголовок, опис та кнопку подання.
Для виклику 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. Користувач також може оновлювати та видаляти відео, використовуючи код, наданий бібліотекою. Ви можете прочитати більше про це в їх документації.
Пов’язані статті
- Інтеграція PayPal Payments Pro в Laravel
- Як створити щоденник за допомогою Laravel
- Як завантажувати та обрізати зображення у Laravel