Я создал сценарий поиска YouTube + скачать + MP3. Я использовал Jakeman YouTube Downloader для создания этого скрипта. Все в порядке, за исключением того, что я хочу загрузить видео на сервер, а не загружать его на свой компьютер. Я хочу сделать это, потому что после загрузки будет конвертировать видео в MP3 с помощью FFmpeg.
Есть ли способ загрузить видео, загруженное на моем сервере, вместо моего компьютера?
Файл download.php содержит следующий код:
<?php // Check download token if (empty($_GET['mime']) OR empty($_GET['token'])) { exit('Invalid download token 8{'); } // Set operation params $mime = filter_var($_GET['mime']); $ext = str_replace(array('/', 'x-'), '', strstr($mime, '/')); $url = base64_decode(filter_var($_GET['token'])); $name = urldecode($_GET['title']). '.' .$ext; // Fetch and serve if ($url) { // Generate the server headers if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) { header('Content-Type: "' . $mime . '"'); header('Content-Disposition: attachment; filename="' . $name . '"'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header("Content-Transfer-Encoding: binary"); header('Pragma: public'); } else { header('Content-Type: "' . $mime . '"'); header('Content-Disposition: attachment; filename="' . $name . '"'); header("Content-Transfer-Encoding: binary"); header('Expires: 0'); header('Pragma: no-cache'); } readfile($url); exit; } // Not found exit('File not found 8{'); ?>
Я нашел решение для хранения файла YouTube на сервере. Я удалил материал заголовка и поместил $download_video_file = file_put_contents($file_path, fopen($url, 'r'));
вместо readfile($url);
и это сработало, как волшебство! ^ _ ^
Вот полный код:
<?php // Check download token if (empty($_GET['mime']) OR empty($_GET['token'])) { exit('Invalid download token 8{'); } // Set operation params $mime = filter_var($_GET['mime']); $ext = str_replace(array('/', 'x-'), '', strstr($mime, '/')); $url = base64_decode(filter_var($_GET['token'])); $name = urldecode($_GET['title']). '.' .$ext; // Fetch and serve if ($url) { // Generate the server headers if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {/* header('Content-Type: "' . $mime . '"'); header('Content-Disposition: attachment; filename="' . $name . '"'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header("Content-Transfer-Encoding: binary"); header('Pragma: public'); */} else {/* header('Content-Type: "' . $mime . '"'); header('Content-Disposition: attachment; filename="' . $name . '"'); header("Content-Transfer-Encoding: binary"); header('Expires: 0'); header('Pragma: no-cache'); */} $download_video_file = file_put_contents($file_path, fopen($url, 'r')); exit; } // Not found exit('File not found 8{'); ?>