Я успешно установил youtube-dl на свой сервер, и из командной строки все работает как шарм.
Теперь я хочу иметь возможность вызывать ссылку на моем сайте из моего веб-браузера, которая непосредственно инициирует загрузку файла. Итак, в таком порядке:
Откройте сайт в браузере (например, http://example.com/download.php?v=as43asx3
YouTube-dl обрабатывает ввод
Веб-браузер загружает файл
Временные файлы будут удалены с сервера
Я не очень опытен с этим, но тем не менее нужно решить эту проблему.
Возможно, есть лучший способ сделать это, и я был бы рад увидеть это, однако, вот как я решил это:
<?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);?>
Других решений пока нет …