Прямая загрузка файлов с сервера YouTube-DL

Я успешно установил youtube-dl на свой сервер, и из командной строки все работает как часы.

Теперь я хочу иметь возможность вызывать ссылку на моем сайте из моего веб-браузера, который напрямую инициирует загрузку файла. Итак, в таком порядке:

  1. Откройте сайт в браузере (например, http://example.com/download.php?v=as43asx3< /а>

  2. YouTube-dl обрабатывает ввод

  3. Веб-браузер загружает файл

  4. Временные файлы будут удалены с сервера

Я не очень опытен в этом, но тем не менее нужно решить этот вопрос.


person Marc Becker    schedule 02.05.2015    source источник
comment
Этот вопрос, вероятно, будет закрыт как слишком широкий. Ожидается, что вы продемонстрируете некоторые исследовательские усилия прежде чем спрашивать здесь.   -  person Paulo Scardine    schedule 04.05.2015


Ответы (1)


Возможно, есть лучший способ сделать это, и я был бы признателен за его просмотр, однако вот как я его решил:

<?php
ignore_user_abort(true);

//getting ID from URL
$youtubeID = $_GET['videoID'] ;

//getting audio file from youtube video via youtube-dl
exec('~/bin/youtube-dl --verbose --extract-audio -o "~/html/YouTubeDownloader/%(id)s.%(ext)s" '.$youtubeID);

//downloading file to client/browser
$filename = $youtubeID.".m4a";
header("Content-disposition: attachment;filename=$filename");
header("Content-type: audio/m4a");
readfile($filename);

//deleting file again
unlink($filename);?>
person Marc Becker    schedule 04.05.2015
comment
Разве мы не можем сделать его доступным для прямой загрузки клиенту вместо того, чтобы сначала загружать его на сервер, а затем с сервера на клиент? Я пробовал это, но не работал. stackoverflow.com/questions/29074295/ - person Lal; 05.09.2016