...
✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

So laden Sie Videos auf YouTube in der Laravel-Anwendung hoch

27

Kürzlich hat einer unserer Leser gefragt, wie man ein Video von der Laravel-Anwendung auf YouTube hochlädt. Sie wollten ein System aufbauen, das YouTube-Videos aus der Laravel-Anwendung hochladen kann. Dabei müssen sie den Teammitgliedern, die die Videos für das YouTube-Konto verwalten, ihrem YouTube-Konto keinen Zugriff gewähren.

In der Vergangenheit habe ich einen Artikel geschrieben, der das Hochladen von Videos auf YouTube mit der YouTube-API in PHP erklärt. In diesem Artikel erfahren Sie, wie Sie ein Video über die Laravel-Anwendung auf YouTube hochladen.

Registrieren Sie eine Anwendung und erhalten Sie Zugangsdaten

Um loszulegen, benötigen Sie ein Google-Konto. Auf dem Google-Konto müssen Sie Ihre Anwendung registrieren und die API-Schlüssel abrufen.

Nachfolgend finden Sie die Schritte zum Registrieren einer Anwendung und zum Abrufen der API-Schlüssel.

  • Gehen Sie zur Google-Entwicklerkonsole https://console.developers.google.com.
  • Erstellen Sie ein neues Projekt. Sie können auch ein vorhandenes Projekt auswählen.
  • Geben Sie einen Namen für Ihr Projekt ein. Die Google Console erstellt eine eindeutige Projekt-ID für Sie.
  • Wenn Sie ein Projekt erstellen, wird es oben in der linken Seitenleiste angezeigt.
  • Klicken Sie im linken Menü auf Bibliothek. Sie sehen eine Liste der Google APIs. Aktivieren Sie die YouTube-Daten-API.
  • Klicken Sie anschließend im linken Menü auf die Anmeldeinformationen. Wählen Sie unter Anmeldeinformationen erstellen die OAuth-Client-ID aus. Wählen Sie das Optionsfeld für Webanwendung.
  • Geben Sie den Namen an. Geben Sie unter Autorisierte JavaScript-Ursprünge Ihre Domain-URL ein. Fügen Sie in den autorisierten Weiterleitungs-URIs den Link der Weiterleitungs-URL als http://localhost:8000/youtube/callback hinzu. Ich übergebe hier meine lokale URL. Sie sollten diese URL mit Ihrer Domain anpassen.
  • Klicken Sie abschließend auf die Schaltfläche Erstellen. Im Pop-up erhalten Sie eine Client-ID und ein Client-Geheimnis. Kopieren Sie diese Angaben. Wir werden es bald benötigen.

GitHub-Bibliothek installieren und konfigurieren

Nachdem Sie die Anwendung erstellt haben, müssen Sie als nächstes die joedawson/youtube- Bibliothek installieren. Öffnen Sie zur Installation dieser Bibliothek das Terminal in Ihrem Projekt-Root-Verzeichnis und führen Sie den Befehl aus:

composer require dawson/youtube

Nach der Installation der Bibliothek sollten Sie den Dienstanbieter und die Aliasnamen in der config/app.phpDatei registrieren .

config/app.php

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

Veröffentlichen Sie als Nächstes die youtube.phpund Migrationen mit dem folgenden Befehl:

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

Der obige Befehl verschiebt die Datei youtube.phpin den Ordner „config” und die Migrationsdatei in den Ordner „database/migrations”. Jetzt müssen Sie den Migrationsbefehl ausführen, der eine youtube_access_tokensTabellentabelle in der Datenbank erstellt.

php artisan migrate

In dieser Tabelle würden das Zugriffstoken und das Aktualisierungstoken nach der Autorisierung des YouTube-Kontos gespeichert. Das access_token wird benötigt, wenn Sie mit der YouTube API interagieren. Das Zugriffstoken dient als Kennung für Ihr YouTube-Konto. Das Zugriffstoken hat eine kurze Lebensdauer, sodass diese Bibliothek zum Abrufen des neuen Zugriffstokens ein Aktualisierungstoken verwendet. Sie müssen sich keine Gedanken über das Einfügen dieser Token in eine Tabelle machen. Die Bibliothek wird dies im Hintergrund tun.

Wir haben die API-Anmeldeinformationen kopiert, die in die Laravel-Anwendung eingefügt werden müssen. Öffnen Sie die .envDatei und fügen Sie Ihre Client-ID und Ihr Client-Geheimnis wie folgt hinzu:

GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=

Wenn Sie Änderungen an der Umgebungsdatei vornehmen, sollten Sie die Konfiguration mit dem folgenden Befehl löschen:

php artisan config:clear

Autorisierung des Google-Kontos

Aus Sicherheitsgründen sind die Routen zur Autorisierung des YouTube-Kontos mit Ihrer Laravel-Anwendung standardmäßig deaktiviert. Sie müssen es von Ihrem config/youtube.php. Öffnen Sie das config/youtube.phpund aktivieren Sie es, indem Sie einfach den Wert false durch true ersetzen.

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

Du kannst dein Konto jetzt mit der URL YOUR_DOMAIN_URL/youtube/auth im Browser autorisieren. Es wird auf die Google-Anmeldeseite weitergeleitet, um Ihr Konto zu authentifizieren. Schließen Sie den Vorgang ab. Nach erfolgreicher Authentifizierung werden Sie zu Ihrer Laravel-Anwendung zurückgeleitet. Überprüfen Sie die youtube_access_tokensTabelle und Sie sollten Token sehen, die in die Spalte ‘access_token’ eingefügt wurden. Dies ist ein einmaliger Vorgang. Die Bibliothek generiert automatisch access_token im Hintergrund, auch wenn sie abgelaufen ist. Der Benutzer muss sein Konto nicht erneut autorisieren.

Video auf YouTube-Konto in Laravel-Anwendung hochladen

Zu diesem Zeitpunkt sind Sie mit dem Zugriffstoken bereit. Erstellen Sie nun ein Formular, um die Videodatei zu durchsuchen und an YouTube zu senden. Lassen Sie uns einen Controller erstellen, indem Sie den folgenden Befehl ausführen.

php artisan make:controller VideoController --resource

Definieren Sie die Routen VideoControllerwie folgt.

routen/web.php

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

Erstellen Sie eine Ansicht resources/views/video.blade.phpund fügen Sie den folgenden Code hinzu.

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

Rufen Sie diese Ansichtsdatei aus der indexMethode unseres Controllers auf.

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

Wenn Sie jetzt YOUR_DOMAIN_URL/video besuchen, sehen Sie ein Formular mit Dateieingabe, Titel, Beschreibung und Schaltfläche zum Senden.

Um die YouTube-API aufzurufen, fügen Sie eine YouTube-Klasse in einem Controller hinzu. Und in der storeMethode schreiben Sie den Code zum Hochladen eines Videos auf YouTube wie folgt.

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

Hier übergeben wir eine Videodatei, einen Titel und eine Beschreibung aus unserem Formular. Dieser Code lädt einfach Ihr Video auf YouTube hoch und druckt die YouTube-Video-ID.

Ich hoffe, Sie verstehen das Hochladen eines Videos auf YouTube in der Laravel-Anwendung. Der Benutzer kann die Videos auch mit dem von der Bibliothek bereitgestellten Code aktualisieren und löschen. Sie können mehr darüber in ihrer Dokumentation lesen .

Zum Thema passende Artikel

Aufnahmequelle: artisansweb.net

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen