✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Jak przesłać wideo na YouTube w aplikacji Laravel

14

Ostatnio jeden z naszych czytelników zapytał, jak wgrać film na YouTube z aplikacji Laravel. Chcieli zbudować system, który może przesyłać filmy z YouTube z poziomu aplikacji Laravel. W ten sposób nie muszą udzielać dostępu do swojego konta YouTube członkom zespołu, którzy zarządzają filmami wideo na koncie YouTube.

W przeszłości napisałem artykuł, który wyjaśnia jak przesyłać wideo na YouTube za pomocą API YouTube w PHP. W tym artykule zobaczymy, jak wgrać film na YouTube z aplikacji Laravel.

Zarejestruj aplikację i uzyskaj poświadczenia

Aby rozpocząć, musisz mieć konto Google. Na koncie Google musisz zarejestrować swoją aplikację i uzyskać klucze API.

Poniżej znajdują się kroki, aby zarejestrować aplikację i pobrać klucze API.

  • Przejdź do Konsoli programisty Google https://console.developers.google.com.
  • Utwórz nowy projekt. Możesz także wybrać istniejący projekt.
  • Wpisz nazwę swojego projektu. Konsola Google utworzy dla Ciebie unikalny identyfikator projektu.
  • Po utworzeniu projektu pojawi się on na górze lewego paska bocznego.
  • Kliknij Biblioteka z lewego menu. Zobaczysz listę interfejsów Google API. Włącz interfejs API danych YouTube.
  • Następnie z lewego menu kliknij Poświadczenia. Wybierz identyfikator klienta Oauth w obszarze Utwórz poświadczenia. Wybierz przycisk radiowy dla aplikacji internetowej.
  • Podaj imię. W obszarze Autoryzowane źródła JavaScript wpisz adres URL swojej domeny. W autoryzowanych identyfikatorach URI przekierowania dodaj link do adresu URL przekierowania jako http://localhost:8000/youtube/callback. Podaję tutaj mój lokalny adres URL. Powinieneś dostosować ten adres URL w swojej domenie.
  • Na koniec kliknij przycisk Utwórz. W wyskakującym okienku otrzymasz identyfikator klienta i klucz klienta. Skopiuj te dane. Wkrótce będziemy tego potrzebować.

Zainstaluj i skonfiguruj bibliotekę GitHub

Po utworzeniu aplikacji następną rzeczą do zrobienia jest zainstalowanie biblioteki joedawson/youtube. Aby zainstalować tę bibliotekę, otwórz terminal w katalogu głównym projektu i uruchom polecenie:

composer require dawson/youtube

Po zainstalowaniu biblioteki należy zarejestrować dostawcę usług i aliasy w config/app.phppliku.

config/app.php

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

Następnie opublikuj youtube.phpmigracje i za pomocą poniższego polecenia:

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

Powyższe polecenie przenosi plik do folderu youtube.php‘config’, a plik migracji do folderu ‘database/migrations’. Teraz musisz uruchomić polecenie migracji, które utworzy tabelę youtube_access_tokenstabeli w bazie danych.

php artisan migrate

Ta tabela przechowuje token dostępu i token odświeżania po autoryzacji konta YouTube. Access_token jest potrzebny podczas interakcji z interfejsem API YouTube. Token dostępu działa jako identyfikator Twojego konta YouTube. Token dostępu ma krótki okres istnienia, więc aby uzyskać nowy token dostępu, ta biblioteka używa tokenu odświeżania. Nie musisz się martwić o wstawianie tych tokenów do tabeli. Biblioteka zrobi to w tle.

Skopiowaliśmy dane uwierzytelniające API, które należy umieścić w aplikacji Laravel. Otwórz .envplik i dodaj swój identyfikator klienta i klucz klienta w następujący sposób:

GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=

W przypadku dokonywania jakichkolwiek zmian w pliku środowiska należy wyczyścić konfigurację za pomocą polecenia:

php artisan config:clear

Autoryzacja konta Google

Ze względów bezpieczeństwa trasy do autoryzacji konta YouTube za pomocą aplikacji Laravel są domyślnie wyłączone. Musisz go włączyć w swoim config/youtube.php. Otwórz config/youtube.phpi włącz go, po prostu zastępując wartość fałszywą prawdą.

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

Możesz teraz autoryzować swoje konto, używając adresu URL YOUR_DOMAIN_URL/youtube/auth w przeglądarce. Przekieruje do strony logowania Google, aby uwierzytelnić Twoje konto. Zakończ proces. Po pomyślnym uwierzytelnieniu nastąpi przekierowanie z powrotem do aplikacji Laravel. Sprawdź youtube_access_tokenstabelę i powinieneś zobaczyć tokeny wstawione w kolumnie ‘access_token’. To jest jednorazowy proces. Biblioteka automatycznie wygeneruje access_token w tle, nawet jeśli wygasł. Użytkownik nie musi ponownie autoryzować swojego konta.

Prześlij wideo na konto YouTube w aplikacji Laravel

Na tym etapie jesteś gotowy z tokenem dostępu. Teraz utwórz formularz do przeglądania pliku wideo i wyślij go do YouTube. Stwórzmy kontroler, uruchamiając poniższe polecenie.

php artisan make:controller VideoController --resource

Zdefiniuj trasy VideoControllerw następujący sposób.

trasy/web.php

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

Utwórz widok resources/views/video.blade.phpi dodaj w nim poniższy kod.

<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>

Wywołaj ten plik widoku z indexmetody naszego kontrolera.

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

Teraz, gdy odwiedzisz TWOJĄ_DOMAINĘ_URL/film, zobaczysz formularz zawierający dane wejściowe pliku, tytuł, opis i przycisk przesyłania.

Aby wywołać API YouTube, dodaj klasę YouTube w kontrolerze. A w storemetodzie napisz kod do przesłania wideo na YouTube w następujący sposób.

<?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();
    }
}

Tutaj przekazujemy plik wideo, tytuł i opis z naszego formularza. Ten kod po prostu przesyła Twój film do YouTube i drukuje identyfikator wideo YouTube.

Mam nadzieję, że rozumiesz przesyłanie wideo na YouTube w aplikacji Laravel. Użytkownik może również aktualizować i usuwać filmy za pomocą kodu dostarczonego przez bibliotekę. Możesz przeczytać więcej na ten temat w ich dokumentacji.

Powiązane artykuły

Źródło nagrywania: artisansweb.net

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów