michaeldouglas/laravel-youtube

View on GitHub
README.md

Summary

Maintainability
Test Coverage
## Laravel YouTube - 0.0.26

[![Latest Stable Version](https://poser.pugx.org/michael/laravel-youtube/v/stable)](https://packagist.org/packages/michael/laravel-youtube)
[![Total Downloads](https://poser.pugx.org/michael/laravel-youtube/downloads)](https://packagist.org/packages/michael/laravel-youtube)
[![License](https://poser.pugx.org/michael/laravel-youtube/license)](https://packagist.org/packages/michael/laravel-youtube)
[![Maintainability](https://api.codeclimate.com/v1/badges/bd5c0e5e25ae75c7189c/maintainability)](https://codeclimate.com/github/michaeldouglas/laravel-youtube/maintainability)
[![Build Status](https://travis-ci.org/michaeldouglas/laravel-youtube.svg?branch=master)](https://travis-ci.org/michaeldouglas/laravel-youtube)

![Laravel YouTube](logo.png)

**Atention:** `Documentation in english please` [click for here](README-EN.md)

O **laravel-youtube** consome a API do **YouTube** e prove uma forma simples de
gerar e manipular seus videos no YouTube.

Também é capaz de devolver estatísticas, relatórios relacionados aos seus
vídeos no YouTube e criar o **RTMP** e **chave de transmissão** para uma transmissão
ao vivo.

## Compatibilidade

PHP >= 7.1
Laravel 5.x

## Instalação

Abra o arquivo `composer.json` e insira a seguinte instrução:

     "require": {
         "michael/laravel-youtube": "0.0.21"
     }



Após inserir no require a `Laravel YouTube`, você deverá executar o comando:

    composer update

Ou execute o comando:

    composer require michael/laravel-youtube

## Configuração do Service Provider

Abra o arquivo `config/app.php` e adicione no array `providers` a seguinte instrução:

```php
Laravel\Youtube\YoutubeServiceProvider::class
```

## Aliases do package

Em seu arquivo `config/app.php` adicione no array `aliases` a seguinte instrução:

```php
Youtube => Laravel\Youtube\Facades\Youtube::class
```

## Criação do configurador

Agora você irá executar o comando:

```php
php artisan vendor:publish --provider="Laravel\Youtube\YoutubeServiceProvider"
```

Se tudo ocorreu bem, a seguinte mensagem sera exibida:

```php
Copied File [/vendor/michael/laravel-youtube/config/youtube.php] To [/config/youtube.php]
```

## Lista de categoria YouTube

Caso você precise, a lista de categorias do YouTube é essa:
  
 1 Film & Animation - File e animação
2 Autos & Vehicles - Automóveis
10 Music - Música
15 Pets & Animals - Animais
17 Sports - Esportes
19 Travel & Events - Viagens e eventos
20 Gaming - Jogos
22 People & Blogs - Pessoas e blogs
23 Comedy - Comédia
24 Entertainment - Entretenimento
25 News & Politics - Notícias e política
26 How-to & Style - Instruções e estilo
27 Education - Educação
28 Science & Technology - Ciência e tecnologia
29 Non-profits & Activism - Sem fins lucrativos e ativismo

## Criação da tabela de tokens do YouTube

**Atenção:** Essa tabela é essencial para o funcionamento da biblioteca pois
com ela a `laravel-youtube` será capaz de armazenar os tokens retornados
do Google.

Caso você prefira criar a tabela de `tokens` sem utilizar as migrações do
Laravel, segue o `SQL`:

```sql
CREATE TABLE `direct`.`youtubeTokens` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `access_token` TEXT NOT NULL,
  `created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  `deleted_at` TIMESTAMP NULL DEFAULT NULL,
  PRIMARY KEY (`id`));
```

Ou você pode executar a migração que o projeto irá instalar e para isso basta executar:

```bash
php artisan migrate
```

## Subir video no YouTube

**Atenção: Se o video for muito grande, provavelmente, você terá que aumentar o tempo limite do seu servidor, para que não seja mostrado erro de TimeOut!**

Para subir o video para o `YouTube` basta que você diga para a `Laravel YouTube` onde o video encontra-se e também fornecer os parâmetros:

- `title` - Título do video
- `description` - descrição do video
- `tags`
- `category_id` - Em qual categoria o seu video será colocado.
- E por último a `privacidade` do video

Veja a seguir um exemplo de como subir um video para o YouTube:

```php
<?php

$path = public_path().'/video/video.mp4';

$video = YouTube::uploadVideo($path, [
    'title'       => 'Laravel YouTube',
    'description' => 'Laravel YouTube',
    'tags'      => ['laravel', 'laravel-youtube', 'php', 'package'],
    'category_id' => 10
], 'public');

return ["idVideo" => $video->getIdVideo(), "details" => $video->getSnippet()];
```

## Atualizar video no YouTube

A atualização é bem simples e os parâmetros para atualização serão parecidos com os de subir o video:

- `title` - Título do video
- `description` - descrição do video
- `tags`
- `category_id` - Em qual categoria o seu video será colocado.
- E por último a `privacidade` do video

Veja a seguir um exemplo de como editar um video no YouTube:

```php
<?php

$id = "ID DO VIDEO";
$video = YouTube::updateVideo($id, [
    'title'       => 'Laravel YouTube',
    'description' => 'Laravel YouTube',
    'tags'      => ['laravel', 'laravel-youtube', 'php', 'package'],
    'category_id' => 23
], 'public');

return $video->getDataUpdate();
```

## Verificar se o video existe

Para verificar se um video existe, basta, fornecer o id dele para
o método `checkExistVideo()`, da seguinte maneira:

```php
<?php

$id = "O ID DO VIDEO";
$existVideo = YouTube::checkExistVideo($id);

return ['status' => $existVideo];
```

## Obter detalhes do video

Para obter detalhes de um video, basta, fornecer o id dele para
o método `checkExistVideo()`, da seguinte maneira:

```php
<?php

$id = "O ID DO VIDEO";
$existVideo = YouTube::getDetailsVideo($id);

return ["details" => $detailsVideo];
```

## Excluir video

A operação para excluir um video é bem simples basta fornecer o identificador do video e chamar o método `excluir()`.

Veja a seguir um exemplo:

```php
<?php

$id = "O ID DO VIDEO";
$video = YouTube::delete($id);

return ["excluir" => $video];
```

## Procurar videos

Para realizar busca de videos no YouTube você pode utilizar o método: `search()`
e passar dois parâmetros, que serão:

- `Query` - Termo que será buscado
- `maxResults` - máximo de resultados

O método `search()` irá retornar:

- Videos que batém com o termo
- playlist que batém com o termo
- canais - que batém com o termo

Veja a seguir um exemplo de uso:

```php
<?php

$result = YouTube::search('TERMO BUSCADO', 'MAXIMO DE RESULTADOS');

return ['lista' => $result];
```

## Criação de eventos Ao Vivo

Para criar um evento Ao Vivo, basta chamado o método `createEventRTMP()`
e fornecer os parâmetros:

- `Data de inicio`
- `Data de Termino`
- `Titulo do video`
- **opcional:** `Privacidade` - O default da privacidade é: unlisted
- **opcional:** `Linguagem` - O default da linguagem é: Portuguese (Brazil)
- **opcional:** `Tags` - O default da tags é: michael,laravel-youtube

Exemplo de uso:

```php
<?php

YouTube::createEventRTMP("2019-05-13 22:00:00", "2019-05-13 23:00:00", "Evento teste");
```

### Valores opcionais

Exemplo de uso com os **valores opcionais**:

```php
<?php

YouTube::createEventRTMP("2019-05-13 22:00:00", "2019-05-13 23:00:00", "Evento teste", "unlisted", "Portuguese (Brazil)", "michael,laravel-youtube");
```

Caso a criação seja feita com sucesso você terá como retorno um
`Json` com todos os valores do evento.

## Lista de eventos Ao Vivo

Para listar os eventos Ao Vivo, basta chamar o método `listEventsBroadcasts()`,
da seguinte maneira:

```php
<?php

$video = YouTube::listEventsBroadcasts();

return ["list" => $video];
```

Caso exista uma lista de videos, então, será retornando um `Json` com todos os eventos.