Cómo cargar videos en YouTube en la aplicación Laravel
Recientemente, uno de nuestros lectores preguntó cómo subir un video en YouTube desde la aplicación Laravel. Querían construir un sistema que pudiera cargar videos de YouTube desde la aplicación Laravel. Al hacerlo, no necesitan dar acceso a su cuenta de YouTube a los miembros del equipo que administran los videos de la cuenta de YouTube.
En el pasado, escribí un artículo que explica cómo cargar videos en YouTube usando la API de YouTube en PHP. En este artículo veremos cómo subir un video en YouTube desde la aplicación Laravel.
Registre una aplicación y obtenga credenciales
Para comenzar, debe tener una cuenta de Google. En la cuenta de Google, debe registrar su aplicación y obtener las claves API.
A continuación se muestran los pasos para registrar una aplicación y obtener las claves API.
- Vaya a la Consola para desarrolladores de Google https://console.developers.google.com.
- Crea un nuevo proyecto. También puede seleccionar un proyecto existente.
- Escriba un nombre de su proyecto. Google Console creará un ID de proyecto único para usted.
- Al crear un proyecto, aparecerá en la parte superior de la barra lateral izquierda.
- Haga clic en Biblioteca en el menú de la izquierda. Verá una lista de API de Google. Habilite la API de datos de YouTube.
- A continuación, en el menú de la izquierda, haga clic en Credenciales. Seleccione ID de cliente de Oauth en Crear credenciales. Elija el botón de opción para la aplicación web.
- Dar el nombre. En Orígenes de JavaScript autorizados, ingrese la URL de su dominio. En los URI de redireccionamiento autorizados, agregue el enlace de la URL de redireccionamiento como http: // localhost: 8000 / youtube / callback. Estoy pasando mi URL local aquí. Debe ajustar esta URL con su dominio.
- Finalmente, haga clic en el botón Crear. Obtendrá una identificación de cliente y un secreto de cliente en la ventana emergente. Copie estos detalles. Lo necesitaremos pronto.
Instalar y configurar la biblioteca de GitHub
Una vez que haya creado la aplicación, lo siguiente que debe hacer es instalar la biblioteca joedawson / youtube. Para la instalación de esta biblioteca, abra la terminal en el directorio raíz de su proyecto y ejecute el comando:
composer require dawson/youtube
Después de instalar la biblioteca, debe registrar el proveedor de servicios y los alias en el config/app.php
archivo.
config / app.php
....
'providers' => [
...
DawsonYoutubeYoutubeServiceProvider::class,
],
....
'aliases' => [
...
'Youtube' => DawsonYoutubeFacadesYoutube::class,
],
A continuación, publique las youtube.php
migraciones y utilizando el siguiente comando:
php artisan vendor:publish --provider="DawsonYoutubeYoutubeServiceProvider"
El comando anterior mueve el archivo a la carpeta youtube.php
‘config’ y el archivo de migración a la carpeta ‘base de datos / migraciones’. Ahora, debe ejecutar el comando de migración que creará una youtube_access_tokens
tabla en la base de datos.
php artisan migrate
Esta tabla almacenaría el token de acceso y el token de actualización después de autorizar la cuenta de YouTube. El access_token es necesario cuando interactúas con la API de YouTube. El token de acceso actúa como un identificador de su cuenta de YouTube. El token de acceso tiene una vida útil corta, por lo que para obtener el nuevo token de acceso, esta biblioteca usa un token de actualización. No necesita preocuparse por insertar estos tokens en una tabla. La biblioteca lo hará en segundo plano.
Hemos copiado las credenciales de la API que deben colocarse dentro de la aplicación Laravel. Abra el .env
archivo y agregue su ID de cliente y su secreto de cliente de la siguiente manera:
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
Si está realizando algún cambio en el archivo de entorno, debe borrar la configuración con el comando:
php artisan config:clear
Autorización de la cuenta de Google
Por razones de seguridad, las rutas para autorizar la cuenta de YouTube con su aplicación Laravel están deshabilitadas por defecto. Deberá habilitarlo desde su config/youtube.php
. Abra config/youtube.php
y habilítelo simplemente reemplazando el valor falso con verdadero.
...
'enabled' => true, //set it to 'false' after authorization
Ahora puede autorizar su cuenta usando la URL YOUR_DOMAIN_URL / youtube / auth en el navegador. Redirigirá a la página de inicio de sesión de Google para autenticar su cuenta. Completa el proceso. Una vez que la autenticación se haya realizado correctamente, lo redireccionará a su aplicación Laravel. Consulte la youtube_access_tokens
tabla y debería ver los tokens insertados en la columna ‘access_token’. Este es un proceso de una sola vez. La biblioteca generará automáticamente access_token en segundo plano incluso si está vencido. El usuario no necesita autorizar su cuenta nuevamente.
Cargar video en la cuenta de YouTube en la aplicación Laravel
En esta etapa, está listo con el token de acceso. Ahora cree un formulario para buscar el archivo de video y enviarlo a YouTube. Creemos un controlador ejecutando el siguiente comando.
php artisan make:controller VideoController --resource
Defina las rutas de la VideoController
siguiente manera.
rutas / web.php
<?php
...
Route::resource('video', 'VideoController');
Cree una vista resources/views/video.blade.php
y agregue el siguiente código en ella.
<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>
Llame a este archivo de vista desde el index
método de nuestro controlador.
public function index()
{
return view('video');
}
Ahora, cuando visite YOUR_DOMAIN_URL / video, verá un formulario que contiene la entrada de archivo, título, descripción y botón de envío.
Para llamar a la API de YouTube, agregue una clase de YouTube en un controlador. Y en el store
método escriba el código para cargar un video en YouTube de la siguiente manera.
<?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();
}
}
Aquí estamos pasando un archivo de video, título y descripción de nuestro formulario. Este código simplemente carga su video en YouTube e imprime la identificación del video de YouTube.
Espero que entiendas cómo cargar un video en YouTube en la aplicación Laravel. El usuario también puede actualizar y eliminar los videos usando el código provisto por la biblioteca. Puede leer más sobre esto en su documentación.
Artículos relacionados
- Integración de PayPal Payments Pro en Laravel
- Cómo crear un blog con Laravel
- Cómo cargar y recortar imágenes en Laravel