Como fazer upload de vídeo no YouTube no aplicativo Laravel
Recentemente, um de nossos leitores perguntou como fazer upload de um vídeo no YouTube a partir do aplicativo Laravel. Eles queriam construir um sistema que pudesse fazer upload de vídeos do YouTube de dentro do aplicativo Laravel. Ao fazer isso, eles não precisam conceder acesso à conta do YouTube aos membros da equipe que gerenciam os vídeos da conta do YouTube.
No passado, escrevi um artigo que explica sobre como fazer upload de vídeo no YouTube usando a API do YouTube em PHP. Neste artigo, veremos como fazer upload de um vídeo no YouTube a partir do aplicativo Laravel.
Registre um aplicativo e obtenha credenciais
Para começar, você precisa ter uma Conta do Google. Na conta do Google, você precisa registrar seu aplicativo e obter as chaves de API.
Abaixo estão as etapas para registrar um aplicativo e obter as chaves de API.
- Vá para o Google Developer Console https://console.developers.google.com.
- Crie um novo projeto. Você também pode selecionar um projeto existente.
- Digite um nome para o seu projeto. O console do Google criará um ID de projeto exclusivo para você.
- Ao criar um projeto, ele aparecerá no topo da barra lateral esquerda.
- Clique em Biblioteca no menu esquerdo. Você verá uma lista de APIs do Google. Ative a API de dados do YouTube.
- A seguir, no menu esquerdo, clique em Credenciais. Selecione o ID do cliente Oauth em Criar credenciais. Escolha o botão de opção para Web Application.
- Dê o nome. Em Origens JavaScript autorizadas, insira o URL do seu domínio. Em URIs de redirecionamento autorizados, adicione o link do URL de redirecionamento como http: // localhost: 8000 / youtube / callback. Estou passando meu URL local aqui. Você deve ajustar este URL com o seu domínio.
- Por fim, clique no botão Criar. Você obterá um ID de cliente e um segredo do cliente no pop-up. Copie esses detalhes. Iremos exigir isso em breve.
Instalar e configurar a biblioteca GitHub
Depois de criar o aplicativo, a próxima coisa a fazer é instalar a biblioteca joedawson / youtube. Para a instalação desta biblioteca, abra o terminal no diretório raiz do seu projeto e execute o comando:
composer require dawson/youtube
Depois de instalar a biblioteca, você deve registrar o provedor de serviços e os aliases no config/app.php
arquivo.
config / app.php
....
'providers' => [
...
DawsonYoutubeYoutubeServiceProvider::class,
],
....
'aliases' => [
...
'Youtube' => DawsonYoutubeFacadesYoutube::class,
],
Em seguida, publique as youtube.php
migrações e usando o comando abaixo:
php artisan vendor:publish --provider="DawsonYoutubeYoutubeServiceProvider"
O comando acima move o arquivo youtube.php
para a pasta ‘config’ e o arquivo de migração para a pasta ‘banco de dados / migrações’. Agora, você precisa executar o comando de migração que criará uma tabela de youtube_access_tokens
tabela no banco de dados.
php artisan migrate
Esta tabela armazenaria o token de acesso e o token de atualização após autorizar a conta do YouTube. O access_token é necessário quando você interage com a API do YouTube. O token de acesso atua como um identificador para sua conta do YouTube. O token de acesso tem um curto período de vida, portanto, para obter o novo token de acesso, esta biblioteca usa um token de atualização. Você não precisa se preocupar em inserir esses tokens em uma tabela. A biblioteca fará isso em segundo plano.
Copiamos as credenciais da API que precisam ser colocadas dentro do aplicativo Laravel. Abra o .env
arquivo e adicione seu ID de cliente e segredo do cliente da seguinte maneira:
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
Se você estiver fazendo alguma alteração no arquivo de ambiente, deverá limpar a configuração usando o comando:
php artisan config:clear
Autorização de conta do Google
Por razões de segurança, as rotas para autorizar a conta do YouTube com seu aplicativo Laravel estão desabilitadas por padrão. Você precisará habilitá-lo em seu config/youtube.php
. Abra o config/youtube.php
e habilite-o apenas substituindo o valor falso por verdadeiro.
...
'enabled' => true, //set it to 'false' after authorization
Agora você pode autorizar sua conta usando o URL YOUR_DOMAIN_URL / youtube / auth no navegador. Ele irá redirecionar para a página de login do Google para autenticar sua conta. Conclua o processo. Com a autenticação bem-sucedida, você redirecionará de volta para seu aplicativo Laravel. Verifique a youtube_access_tokens
tabela e você verá os tokens inseridos na coluna ‘access_token’. Este é um processo único. A biblioteca irá gerar access_token automaticamente em segundo plano, mesmo que tenha expirado. O usuário não precisa autorizar sua conta novamente.
Carregar vídeo na conta do YouTube no aplicativo Laravel
Neste estágio, você está pronto com o token de acesso. Agora crie um formulário para navegar no arquivo de vídeo e enviá-lo ao YouTube. Vamos criar um controlador executando o comando abaixo.
php artisan make:controller VideoController --resource
Defina as rotas VideoController
como segue.
rotas / web.php
<?php
...
Route::resource('video', 'VideoController');
Crie uma visualização resources/views/video.blade.php
e adicione o código abaixo nela.
<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>
Chame este arquivo de visão do index
método do nosso controlador.
public function index()
{
return view('video');
}
Agora, quando você visitar YOUR_DOMAIN_URL / video, verá um formulário que contém entrada de arquivo, título, descrição e botão de envio.
Para chamar a API do YouTube, adicione uma classe do YouTube em um controlador. E no store
método, escreva o código para enviar um vídeo no YouTube da seguinte maneira.
<?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();
}
}
Aqui estamos passando um arquivo de vídeo, título e descrição de nosso formulário. Este código simplesmente carrega seu vídeo no YouTube e imprime a id do vídeo do YouTube.
Espero que você entenda como fazer upload de um vídeo no YouTube no aplicativo Laravel. O usuário também pode atualizar e excluir os vídeos usando o código fornecido pela biblioteca. Você pode ler mais sobre isso em sua documentação.
Artigos relacionados
- Integração do PayPal Payments Pro no Laravel
- Como criar um blog com o Laravel
- Como fazer upload e recortar imagens no Laravel