✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Hur laddar jag upp video på YouTube i Laravel-applikationen

30

Nyligen frågade en av våra läsare hur man laddar upp en video på YouTube från Laravel-applikationen. De ville bygga ett system som kan ladda upp YouTube-videor från Laravel-applikationen. Om du gör det behöver de inte ge sitt YouTube-konto åtkomst till de teammedlemmar som hanterar videorna för YouTube-kontot.

Tidigare har jag skrivit en artikel som förklarar hur du laddar upp video på YouTube med YouTube API i PHP. I den här artikeln kommer vi att se hur du laddar upp en video på YouTube från Laravel-applikationen.

Registrera en ansökan och få referenser

För att komma igång måste du ha ett Google-konto. På Google-kontot måste du registrera din ansökan och hämta API-nycklarna.

Nedan följer stegen för att registrera ett program och ta tag i API-nycklarna.

  • Gå till Googles utvecklarkonsol https://console.developers.google.com.
  • Skapa ett nytt projekt. Du kan också välja befintligt projekt.
  • Skriv ett namn på ditt projekt. Google Console skapar unikt projekt-ID för dig.
  • När du skapar ett projekt visas det överst i vänster sidofält.
  • Klicka på Bibliotek från den vänstra menyn. Du kommer att se en lista över Googles API: er. Aktivera YouTube Data API.
  • Klicka sedan på referenser från vänster meny. Välj Oauth-klient-id under Skapa referenser. Välj alternativknappen för webbapplikation.
  • Ge namnet. Under Auktoriserat JavaScript-ursprung anger du din domän-URL. I de auktoriserade omdirigerings-URI: erna lägg till länken till omdirigerings-URL: en som http: // localhost: 8000 / youtube / callback. Jag skickar min lokala webbadress här. Du bör justera denna webbadress med din domän.
  • Klicka slutligen på knappen Skapa. Du får ett klient-ID och klienthemlighet i popup-fönstret. Kopiera dessa detaljer. Vi kommer att kräva det snart.

Installera och konfigurera GitHub Library

När du har skapat applikationen är nästa sak du behöver göra att installera joedawson / youtube- biblioteket. För installation av detta bibliotek öppnar du terminalen i din projektkatalog och kör kommandot:

composer require dawson/youtube

När du har installerat biblioteket bör du registrera tjänsteleverantören och alias i config/app.phpfilen.

config / app.php

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

Därefter publicerar du youtube.phpoch migreringar med kommandot nedan:

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

Ovanstående kommando flyttar filen youtube.phpunder mappen ‘config’ och migreringsfilen under mappen ‘database / migrations’. Nu måste du köra migreringskommandot som skapar en youtube_access_tokenstabelltabell i databasen.

php artisan migrate

Den här tabellen lagrar åtkomsttoken och uppdaterar token efter godkännande av YouTube-kontot. Access_token behövs när du interagerar med YouTube API. Åtkomsttoken fungerar som en identifierare för ditt YouTube-konto. Åtkomsttoken har en kort livstid så för att få den nya åtkomsttoken använder detta bibliotek en uppdateringstoken. Du behöver inte oroa dig för att infoga dessa tokens i en tabell. Biblioteket gör det i bakgrunden.

Vi har kopierat API-referenserna som måste placeras i Laravel-applikationen. Öppna .envfilen och lägg till ditt klient-id och klienthemlighet enligt följande:

GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=

Om du gör några ändringar i miljöfilen bör du rensa konfigurationen med kommandot:

php artisan config:clear

Auktorisering av Google-konto

Av säkerhetsskäl är rutterna för att auktorisera YouTube-kontot med din Laravel-applikation inaktiverade som standard. Du måste aktivera det från din config/youtube.php. Öppna config/youtube.phpoch aktivera det genom att bara ersätta falskt värde med true.

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

Du kan nu auktorisera ditt konto med webbadressen YOUR_DOMAIN_URL / youtube / auth i webbläsaren. Det omdirigeras till Googles inloggningssida för att autentisera ditt konto. Slutför processen. Vid framgångsrik autentisering omdirigerar du tillbaka till din Laravel-applikation. Kontrollera youtube_access_tokenstabellen och du bör se tokens infogade i kolumnen ‘access_token’. Detta är en engångsprocess. Biblioteket genererar automatiskt access_token i bakgrunden även om det har upphört att gälla. Användaren behöver inte auktorisera sitt konto igen.

Ladda upp video på YouTube-konto i Laravel-applikationen

I det här skedet är du redo med åtkomsttoken. Skapa nu ett formulär för att bläddra i videofilen och skicka den till YouTube. Låt oss skapa en kontroller genom att köra kommandot nedan.

php artisan make:controller VideoController --resource

Definiera rutter för VideoControllerenligt följande.

rutter / web.php

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

Skapa en vy resources/views/video.blade.phpoch lägg till koden nedan i den.

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

Ring den här vyfilen från indexmetoden för vår controller.

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

Nu när du besöker YOUR_DOMAIN_URL / video ser du ett formulär som innehåller filinmatning, titel, beskrivning och skicka-knapp.

För att ringa YouTube API lägg till en YouTube-klass i en controller. Och i storemetoden skriver du koden för att ladda upp en video på YouTube enligt följande.

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

Här skickar vi en videofil, titel och beskrivning från vårt formulär. Den här koden laddar bara upp din video på YouTube och skriver ut YouTube-video-id.

Jag hoppas att du förstår hur du laddar upp en video på YouTube i Laravel-applikationen. Användaren kan också uppdatera och ta bort videoklippen med koden från biblioteket. Du kan läsa mer om det i deras dokumentation.

relaterade artiklar

Inspelningskälla: artisansweb.net

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer