diff --git a/README.md b/README.md index 2ee4a8b..486f16a 100644 --- a/README.md +++ b/README.md @@ -15,3 +15,4 @@ __Please use a different name and logo if you run it on a public server.__ ##Other dependencies You need [avconv](https://libav.org/avconv.html) and [rtmpdump](http://rtmpdump.mplayerhq.hu/) in order to enable conversions. +If you don't want to enable conversions, you can disable it in *config.php*. diff --git a/api.php b/api.php index fa8e662..f0b5b37 100644 --- a/api.php +++ b/api.php @@ -12,7 +12,7 @@ * */ require_once 'download.php'; if (isset($_GET["url"])) { - if (isset($_GET["format"]) || isset($_GET['audio'])) { + if (isset($_GET['audio'])) { $video = VideoDownload::getJSON($_GET["url"], $_GET["format"]); if (isset($video->url)) { @@ -24,100 +24,40 @@ if (isset($_GET["url"])) { ); $url_info = parse_url($video->url); if ($url_info['scheme'] == 'rtmp') { - if (isset($_GET['audio'])) { - header( - 'Content-Disposition: attachment; filename="'. - html_entity_decode( - pathinfo( - VideoDownload::getFilename( - $video->webpage_url - ), PATHINFO_FILENAME - ).'.mp3', ENT_COMPAT, 'ISO-8859-1' - ).'"' - ); - header("Content-Type: audio/mpeg"); - passthru( - '/usr/bin/rtmpdump -q -r '.escapeshellarg($video->url). - ' | /usr/bin/avconv -v quiet -i - -f mp3 pipe:1' - ); - exit; - } else { - header( - 'Content-Disposition: attachment; filename="'. - html_entity_decode( + header( + 'Content-Disposition: attachment; filename="'. + html_entity_decode( + pathinfo( VideoDownload::getFilename( - $video->webpage_url, $video->format_id - ), ENT_COMPAT, 'ISO-8859-1' - ).'"' - ); - header("Content-Type: application/octet-stream"); - passthru( - '/usr/bin/rtmpdump -q -r '.escapeshellarg($video->url) - ); - exit; - } - + $video->webpage_url + ), PATHINFO_FILENAME + ).'.mp3', ENT_COMPAT, 'ISO-8859-1' + ).'"' + ); + header("Content-Type: audio/mpeg"); + passthru( + '/usr/bin/rtmpdump -q -r '.escapeshellarg($video->url). + ' | /usr/bin/avconv -v quiet -i - -f mp3 pipe:1' + ); + exit; } else { - if (isset($_GET['audio'])) { - header( - 'Content-Disposition: attachment; filename="'. - html_entity_decode( - pathinfo( - VideoDownload::getFilename( - $video->webpage_url - ), PATHINFO_FILENAME - ).'.mp3', ENT_COMPAT, 'ISO-8859-1' - ).'"' - ); - header("Content-Type: audio/mpeg"); - passthru( - '/usr/bin/wget -q --user-agent='.escapeshellarg($UA). - ' -O - '.escapeshellarg($video->url). - ' | /usr/bin/avconv -v quiet -i - -f mp3 pipe:1' - ); - exit; - } else if (pathinfo($video->url, PATHINFO_EXTENSION) == 'm3u8') { - header( - 'Content-Disposition: attachment; filename="'. - html_entity_decode( - pathinfo( - VideoDownload::getFilename( - $video->webpage_url - ), PATHINFO_FILENAME - ).'.mp4', ENT_COMPAT, 'ISO-8859-1' - ).'"' - ); - header("Content-Type: video/mp4"); - passthru( - '/usr/bin/avconv -v quiet -i '. - escapeshellarg($video->url).' -f h264 pipe:1' - ); - exit; - } else { - $headers = get_headers($video->url, 1); - header( - 'Content-Disposition: attachment; filename="'. - html_entity_decode( + header( + 'Content-Disposition: attachment; filename="'. + html_entity_decode( + pathinfo( VideoDownload::getFilename( - $video->webpage_url, $video->format_id - ), ENT_COMPAT, 'ISO-8859-1' - ).'"' - ); - if (is_string($headers['Content-Type']) - && isset($headers['Content-Type']) - ) { - header("Content-Type: ".$headers['Content-Type']); - } else { - header("Content-Type: application/octet-stream"); - } - if (is_string($headers['Content-Length']) - && isset($headers['Content-Length']) - ) { - header("Content-Length: ".$headers['Content-Length']); - } - readfile($video->url); - exit; - } + $video->webpage_url + ), PATHINFO_FILENAME + ).'.mp3', ENT_COMPAT, 'ISO-8859-1' + ).'"' + ); + header("Content-Type: audio/mpeg"); + passthru( + '/usr/bin/wget -q --user-agent='.escapeshellarg($UA). + ' -O - '.escapeshellarg($video->url). + ' | /usr/bin/avconv -v quiet -i - -f mp3 pipe:1' + ); + exit; } } else { $error=true; diff --git a/config.php b/config.php index 0249c03..641aa39 100644 --- a/config.php +++ b/config.php @@ -14,4 +14,5 @@ define('YOUTUBE_DL', './youtube-dl'); define('PYTHON', '/usr/bin/python'); define('PARAMS', '--no-playlist --no-warnings'); +define('CONVERT', true); ?> diff --git a/index.php b/index.php index d7dd5dc..212342d 100644 --- a/index.php +++ b/index.php @@ -19,6 +19,7 @@ require 'head.php';
@@ -35,10 +36,17 @@ require 'head.php'; required placeholder="http://website.com/video" />
-
-

-

-
+ +
+

+

+
+
See all supported websites