YouTube-dl服务器直接文件下载
YouTube-dl server direct file download
我已经在我的服务器上成功安装了 youtube-dl,并且从命令行一切正常。
现在我希望能够从我的 Web 浏览器在我的站点上调用 link,它会直接启动文件下载。所以按照这个顺序:
在浏览器中打开站点(例如 http://example.com/download.php?v=as43asx3
YouTube-dl 处理输入
Web 浏览器下载文件
临时文件将从服务器中删除
我对此不是很有经验,但仍然需要解决这个问题。
可能有更好的方法,我很乐意看到它,但是,这是我解决它的方法:
<?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);?>
我已经在我的服务器上成功安装了 youtube-dl,并且从命令行一切正常。
现在我希望能够从我的 Web 浏览器在我的站点上调用 link,它会直接启动文件下载。所以按照这个顺序:
在浏览器中打开站点(例如 http://example.com/download.php?v=as43asx3
YouTube-dl 处理输入
Web 浏览器下载文件
临时文件将从服务器中删除
我对此不是很有经验,但仍然需要解决这个问题。
可能有更好的方法,我很乐意看到它,但是,这是我解决它的方法:
<?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);?>