Video-Upload auf Youtube mit curl und api v3
Ich würde das hochladen eines Videos mit der Youtube API v3 mit curl in PHP wie hier beschrieben: https://developers.google.com/youtube/v3/docs/videos/insert
Habe ich diese Funktion
function uploadVideo($file, $title, $description, $tags, $categoryId, $privacy)
{
$token = getToken(); //Tested function to retrieve the correct AuthToken
$video->snippet['title'] = $title;
$video->snippet['description'] = $description;
$video->snippet['categoryId'] = $categoryId;
$video->snippet['tags'] = $tags; //array
$video->snippet['privacyStatus'] = $privacy;
$res = json_encode($video);
$parms = array(
'part' => 'snippet',
'file' => '@'.$_SERVER['DOCUMENT_ROOT'].'/complete/path/to/'.$file
'video' => $res
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.googleapis.com/upload/youtube/v3/videos');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $parms);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Bearer '.$token['access_token']));
$return = json_decode(curl_exec($ch));
curl_close($ch);
return $return;
}
Aber es gibt diese
stdClass Object
(
[error] => stdClass Object
(
[errors] => Array
(
[0] => stdClass Object
(
[domain] => global
[reason] => badContent
[message] => Unsupported content with type: application/octet-stream
)
)
[code] => 400
[message] => Unsupported content with type: application/octet-stream
)
)
Die Datei ist eine MP4.
Wer kann helfen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Leider verfügen wir nicht über ein konkretes Beispiel für die YouTube API v3 uploads von PHP zur Verfügung stehen noch, aber mein allgemeiner Rat ist:
In der Regel gibt es eine Menge Dinge, die falsch mit Ihrem cURL-code, und ich kann nicht gehen durch alle Schritte, die es dauern würde, um es zu beheben, ich denke, dass die Verwendung der PHP-client-Bibliothek ist eine viel bessere option. Wenn Sie überzeugt sind, die Sie verwenden möchten cURL dann werde ich aufschieben, um jemand anderes zu bieten spezifische Beratung.
Aktualisierte version: Jetzt mit custom upload-url und senden von Metadaten mit der upload-Prozess. Der gesamte Prozess erfordert 2 Anforderungen:
Erhalten Sie ein individuelles upload location
Erstens, stellen Sie eine POST-Anforderung für eine upload-url:
Müssen Sie 2 überschriften:
Müssen Sie senden 3 Parameter:
Und Sie müssen senden Sie die Metadaten für die video-in-request-body:
Aus dieser Anfrage bekommst du eine Antwort mit einem "location" - Feld im Header.
POST zu benutzerdefinierten Speicherort zu senden Sie die Datei.
Für den upload benötigen Sie 1 header:
Und senden Sie die Datei als Daten/Körper.
Wenn Sie Lesen, wie Ihre AUFTRAGGEBER arbeitet, werden Sie sehen, die Sie empfehlen, zu wiederholen, wenn Sie zurückgegeben Fehler-code 500, 502, 503 oder 504. Klar werden Sie wollen, um eine Wartezeit zwischen den Wiederholungen und einer max Anzahl der Wiederholungen. Es funktioniert in meinem system jedes mal, wenn ich mich mit python & urllib2 anstelle von cURL.
Auch, weil der benutzerdefinierten upload-Speicherort diese version ist ein upload-fortsetzbare fähig, obwohl ich noch zu brauchen, dass.
einem python-Skript:
Habe ich die Möglichkeit zu hochladen ein video zu meinem Kanal auf YouTube mit dem folgenden shell-Skript.
Beziehen sich auf die diese ähnliche Frage, wie Sie Ihre benutzerdefinierte variable Werte.