Ищу скрипт для загрузки видео на php есть примеры, но старые которые не работают или целые классы но с ними не понятно как работать да и километровые странички мне не нужны так как просто хочу загрузить видос.
Чем загрузка видео отличается от загрузки обычного файла? Да ничем... Либо, как всегда - неадекватная формулировка вопроса.
Ну там как минимум надо ключ API получать, но его вроде получил. Попросил нейросеть написать код она написала но там тоже устаревшие алгоритмы. PHP: // Подключаем библиотеку Google API PHP Client require_once 'google-api-php-client/src/Google/autoload.php'; // Создаем новый Google_Client объект $client = new Google_Client(); // Устанавливаем API ключ $client->setDeveloperKey('0000000000000000'); // Создаем новый YouTube сервисный объект $youtube = new Google_Service_YouTube($client); // Загружаем видео файл (например, video.mp4) с помощью $snippet, $status and $videoId объектов $snippet = new Google_Service_YouTube_VideoSnippet(); $snippet->setTitle('My test video'); // Устанавливаем название видео $snippet->setDescription('This is a test video uploaded via the YouTube API'); // Устанавливаем описание видео $snippet->setTags(array('test', 'example', 'php')); // Устанавливаем тэги $status = new Google_Service_YouTube_VideoStatus(); // Определяем статус видео (public/private/unlisted) $status->privacyStatus = 'public'; // устанавливаем статус public $videoId = $youtube->videos->insert('status,snippet', array( 'data' => array( 'snippet' => $snippet, 'status' => $status ), 'mediaUpload' => array( 'body' => file_get_contents('video.mp4'), 'mimeType' => 'video/mp4', 'uploadType'=> 'multipart'))); } --- Добавлено --- google-api-php-client эта библиотека уже переписана
В общем сначала надо как то авторизоваться! как ? --- Добавлено --- Нейросеть написала вот такой вариант но он не работает )))) PHP: // Инициализация необходимых параметров $client_id = '00000000'; $client_secret = '0000000000'; $redirect_uri = 'start.php'; // Генерация ссылки для авторизации $url = 'https://accounts.google.com/o/oauth2/auth'; $params = array( 'redirect_uri' => $redirect_uri, 'response_type' => 'code', 'client_id' => $client_id, 'scope' => 'https://www.googleapis.com/auth/youtube' ); $link = $url . '?' . http_build_query($params); // Получение access token и refresh token с использованием кода, полученного после авторизации if (isset($_GET['code'])) { // Проверка, был ли получен code $result = false; $params = array( 'client_id' => $client_id, 'client_secret' => $client_secret, 'redirect_uri' => $redirect_uri, 'grant_type' => 'authorization_code', 'code' => $_GET['code'] ); $url = 'https://accounts.google.com/o/oauth2/token'; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); // URL, на который будет отправлен запрос curl_setopt($curl, CURLOPT_POST, 1); // Метод POST curl_setopt($curl, CURLOPT_POSTFIELDS, urldecode(http_build_query($params))); // Данные, которые будут отправлены серверу curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // TRUE - указывает cURL, что результат работы cURL-функций должен быть возвращён // в виде строки. FALSE - указывает cURL-функциям, что результат нужно //выводить "как-есть" $result = curl_exec($curl); // TRUE - указывает cURL-функциям, что результат нужно //выводить "как-есть" curl_close($curl); // json-данные, содержащие access token and refresh token $tokenInfo = json_decode($result, true); print_r($result); --- Добавлено --- Сюда буду накидывать для потомков так как инфы вообще нет. Да и мне что бы не забыть )))) вообщем на сколько я понял надо сформировать вот такую ссылку. HTML: https://accounts.google.com/o/oauth2/auth? client_id=60*********5ad3np.apps.googleusercontent.com &redirect_uri=urn:ietf:wg:oauth:2.0:oob &access_type=offline&response_type=code &scope=https://www.googleapis.com/auth/youtube.readonly --- Добавлено --- И открыть ее тупо в браузере
Вообщем инфы о том как добавить приложение инфы куча писать не буду. Сначала нужно получить access_token PHP: $client_id = '000000000000.apps.googleusercontent.com'; $client_secret = '000000000000000'; $redirect_uri = 'https://site.ru/start.php'; $params = array( 'client_id' => $client_id, 'redirect_uri' => $redirect_uri, 'response_type' => 'code', 'scope' => 'https://www.googleapis.com/auth/youtube.upload', 'state' => '123', 'access_type' => 'offline' ); $url = 'https://accounts.google.com/o/oauth2/v2/auth?' . urldecode(http_build_query($params)); echo '<a href="' . $url . '">Авторизация через Google</a>'; Дальше пока проблема надо как то URL для загрузки получить
PHP: $file = array( 'data' => file_get_contents("1.mp4"), 'mimeType' => 'application/octet-stream', 'uploadType' => 'multipart' ); $attachment = '{ "snippet": { "categoryId": "22", "description": "Description of uploaded video.", "title": "Test video upload.", "tags": [ "музыка, песня, классика" ], "defaultLanguage": "ru", "thumbnails": { "default": { "url": { "site.ru/00.jpg" } } }, "status": { "privacyStatus": "private", "license": "youtube" } }'; $params = array( "file" => $attachment, "data" => $file ); $rrrr = json_encode($params); $ch = curl_init('https://youtube.googleapis.com/youtube/v3/videos?key=000000000000000'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: multipart/form-data", 'Authorization: Bearer 0000000000', 'Accept: application/json', 'Content-Type: application/json')); curl_setopt($ch, CURLOPT_POSTFIELDS, $file); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_HEADER, false); $result = json_decode(curl_exec($ch),true); curl_close($ch); print_r($result); --- Добавлено --- key - это ключ api Bearer - секретный ключ авторизации Но у меня ни чего не получаеться валиться ошибка