Initial import
220
api.php
Normal file
|
@ -0,0 +1,220 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* PHP web interface for youtube-dl (http://rg3.github.com/youtube-dl/)
|
||||||
|
*
|
||||||
|
* PHP Version 5.3.10
|
||||||
|
*
|
||||||
|
* @category Youtube-dl
|
||||||
|
* @package Youtubedl
|
||||||
|
* @author Pierre Rudloff <rudloff@strasweb.fr>
|
||||||
|
* @license GNU General Public License http://www.gnu.org/licenses/gpl.html
|
||||||
|
* @link http://rudloff.pro
|
||||||
|
* */
|
||||||
|
$python="/usr/bin/python";
|
||||||
|
require_once 'download.php';
|
||||||
|
if (isset($_GET["url"])) {
|
||||||
|
if (isset($_GET["format"]) || isset($_GET['audio'])) {
|
||||||
|
$video = json_decode(VideoDownload::getJSON($_GET["url"], $_GET["format"]));
|
||||||
|
|
||||||
|
if (isset($video->url)) {
|
||||||
|
//Vimeo needs a correct user-agent
|
||||||
|
$UA = VideoDownload::getUA();
|
||||||
|
ini_set(
|
||||||
|
'user_agent',
|
||||||
|
$UA
|
||||||
|
);
|
||||||
|
$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(
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
} 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(
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$error=true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$video = json_decode(VideoDownload::getJSON($_GET["url"]));
|
||||||
|
if (isset($video->webpage_url)) {
|
||||||
|
include 'head.php';
|
||||||
|
?>
|
||||||
|
<body>
|
||||||
|
<div class="wrapper">
|
||||||
|
<div class="main">
|
||||||
|
<?php
|
||||||
|
include 'logo.php';
|
||||||
|
?>
|
||||||
|
<p>You are going to download<i>
|
||||||
|
<a href="<?php echo $video->webpage_url; ?>">
|
||||||
|
<?php
|
||||||
|
echo $video->title;
|
||||||
|
?></a></i>.</p>
|
||||||
|
<?php
|
||||||
|
echo '<img class="thumb" src="',
|
||||||
|
$video->thumbnail, '" alt="" />';
|
||||||
|
?><br/>
|
||||||
|
<form action="api.php">
|
||||||
|
<input type="hidden" name="url"
|
||||||
|
value="<?php echo $video->webpage_url; ?>" />
|
||||||
|
<?php
|
||||||
|
if (isset($video->formats)) {
|
||||||
|
?>
|
||||||
|
<legend for="format">Select format</legend>
|
||||||
|
<select id="format" name="format">
|
||||||
|
<?php
|
||||||
|
foreach ($video->formats as $format) {
|
||||||
|
echo '<option value="', $format->format_id, '"';
|
||||||
|
if ($format->format_id == $video->format_id) {
|
||||||
|
echo ' selected ';
|
||||||
|
}
|
||||||
|
echo '>';
|
||||||
|
echo $format->format, ' (', $format->ext, ')';
|
||||||
|
echo '</option>';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</select><br/><br/>
|
||||||
|
<?php
|
||||||
|
} else {
|
||||||
|
?>
|
||||||
|
<input type="hidden" name="format" value="best" />
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<input class="downloadBtn" type="submit" value="Download" /><br/>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php
|
||||||
|
include 'footer.php';
|
||||||
|
?>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
<?php
|
||||||
|
} else {
|
||||||
|
$error=true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (isset($error)) {
|
||||||
|
include 'head.php';
|
||||||
|
?>
|
||||||
|
<body>
|
||||||
|
<div class="wrapper">
|
||||||
|
<div class="main error">
|
||||||
|
<?php
|
||||||
|
include 'logo.php';
|
||||||
|
?>
|
||||||
|
<h2>An error occured</h2>
|
||||||
|
Please check the URL of your video.
|
||||||
|
If you think this is a bug, please report the following error
|
||||||
|
to <a href="mailto:contact@rudloff.pro"><i>contact@rudloff.pro</i></a>:
|
||||||
|
<p><i>
|
||||||
|
<?php
|
||||||
|
foreach ($video['error'] as $error) {
|
||||||
|
print $error;
|
||||||
|
?>
|
||||||
|
<br/>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</i></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php
|
||||||
|
include 'footer.php';
|
||||||
|
?>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
211
download.php
Normal file
|
@ -0,0 +1,211 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* PHP web interface for youtube-dl (http://rg3.github.com/youtube-dl/)
|
||||||
|
* Main class
|
||||||
|
*
|
||||||
|
* PHP Version 5.3.10
|
||||||
|
*
|
||||||
|
* @category Youtube-dl
|
||||||
|
* @package Youtubedl
|
||||||
|
* @author Pierre Rudloff <rudloff@strasweb.fr>
|
||||||
|
* @license GNU General Public License http://www.gnu.org/licenses/gpl.html
|
||||||
|
* @link http://rudloff.pro
|
||||||
|
* */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PHP web interface for youtube-dl (http://rg3.github.com/youtube-dl/)
|
||||||
|
* Main class
|
||||||
|
*
|
||||||
|
* PHP Version 5.3.10
|
||||||
|
*
|
||||||
|
* @category Youtube-dl
|
||||||
|
* @package Youtubedl
|
||||||
|
* @author Pierre Rudloff <rudloff@strasweb.fr>
|
||||||
|
* @license GNU General Public License http://www.gnu.org/licenses/gpl.html
|
||||||
|
* @link http://rudloff.pro
|
||||||
|
* */
|
||||||
|
Class VideoDownload
|
||||||
|
{
|
||||||
|
static private $_python="/usr/bin/python";
|
||||||
|
static private $_params="--no-playlist";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get version of youtube-dl
|
||||||
|
*
|
||||||
|
* @return string Version
|
||||||
|
* */
|
||||||
|
function getVersion ()
|
||||||
|
{
|
||||||
|
exec(
|
||||||
|
VideoDownload::$_python.' youtube-dl --version',
|
||||||
|
$version, $code
|
||||||
|
);
|
||||||
|
return $version[0];
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Get the user agent used youtube-dl
|
||||||
|
*
|
||||||
|
* @return string UA
|
||||||
|
* */
|
||||||
|
function getUA ()
|
||||||
|
{
|
||||||
|
exec(
|
||||||
|
VideoDownload::$_python.' youtube-dl --dump-user-agent',
|
||||||
|
$version, $code
|
||||||
|
);
|
||||||
|
return $version[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* List all extractors
|
||||||
|
*
|
||||||
|
* @return array Extractors
|
||||||
|
* */
|
||||||
|
function listExtractors ()
|
||||||
|
{
|
||||||
|
exec(
|
||||||
|
VideoDownload::$_python.' youtube-dl --list-extractors',
|
||||||
|
$extractors, $code
|
||||||
|
);
|
||||||
|
return $extractors;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get filename of video
|
||||||
|
*
|
||||||
|
* @param string $url URL of page
|
||||||
|
* @param string $format Format to use for the video
|
||||||
|
*
|
||||||
|
* @return string Filename
|
||||||
|
* */
|
||||||
|
function getFilename ($url, $format=null)
|
||||||
|
{
|
||||||
|
$cmd=VideoDownload::$_python.' youtube-dl';
|
||||||
|
if (isset($format)) {
|
||||||
|
$cmd .= ' -f '.escapeshellarg($format);
|
||||||
|
}
|
||||||
|
$cmd .=' --get-filename '.escapeshellarg($url)." 2>&1";
|
||||||
|
exec(
|
||||||
|
$cmd,
|
||||||
|
$filename
|
||||||
|
);
|
||||||
|
return end($filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get title of video
|
||||||
|
*
|
||||||
|
* @param string $url URL of page
|
||||||
|
*
|
||||||
|
* @return string Title
|
||||||
|
* */
|
||||||
|
function getTitle ($url)
|
||||||
|
{
|
||||||
|
exec(
|
||||||
|
VideoDownload::$_python.' youtube-dl --get-title '.
|
||||||
|
escapeshellarg($url),
|
||||||
|
$title
|
||||||
|
);
|
||||||
|
$title=$title[0];
|
||||||
|
return $title;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get all information about a video
|
||||||
|
*
|
||||||
|
* @param string $url URL of page
|
||||||
|
* @param string $format Format to use for the video
|
||||||
|
*
|
||||||
|
* @return string JSON
|
||||||
|
* */
|
||||||
|
function getJSON ($url, $format=null)
|
||||||
|
{
|
||||||
|
$cmd=VideoDownload::$_python.' youtube-dl '.VideoDownload::$_params;
|
||||||
|
if (isset($format)) {
|
||||||
|
$cmd .= ' -f '.escapeshellarg($format);
|
||||||
|
}
|
||||||
|
$cmd .=' --dump-json '.escapeshellarg($url);
|
||||||
|
exec(
|
||||||
|
$cmd,
|
||||||
|
$json
|
||||||
|
);
|
||||||
|
return $json[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get thumbnail of video
|
||||||
|
*
|
||||||
|
* @param string $url URL of page
|
||||||
|
*
|
||||||
|
* @return string URL of image
|
||||||
|
* */
|
||||||
|
function getThumbnail ($url)
|
||||||
|
{
|
||||||
|
exec(
|
||||||
|
VideoDownload::$_python.' youtube-dl --get-thumbnail '.
|
||||||
|
escapeshellarg($url),
|
||||||
|
$thumb
|
||||||
|
);
|
||||||
|
if (isset($thumb[0])) {
|
||||||
|
return $thumb[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a list available formats for this video
|
||||||
|
*
|
||||||
|
* @param string $url URL of page
|
||||||
|
*
|
||||||
|
* @return string Title
|
||||||
|
* */
|
||||||
|
function getAvailabeFormats ($url)
|
||||||
|
{
|
||||||
|
exec(
|
||||||
|
VideoDownload::$_python.' youtube-dl -F '.
|
||||||
|
escapeshellarg($url),
|
||||||
|
$formats
|
||||||
|
);
|
||||||
|
$return=array();
|
||||||
|
foreach ($formats as $i=>$format) {
|
||||||
|
if ($i > 4) {
|
||||||
|
$return[]=(preg_split('/(\s\s+)|(\s+:?\s+)|(\s+\[)|\]/', $format));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (empty($return)) {
|
||||||
|
foreach ($formats as $i=>$format) {
|
||||||
|
if ($i > 3) {
|
||||||
|
$return[]=preg_split('/(\s\s+)|(\s+:?\s+)|(\s+\[)|\]/', $format);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get URL of video from URL of page
|
||||||
|
*
|
||||||
|
* @param string $url URL of page
|
||||||
|
* @param string $format Format to use for the video
|
||||||
|
*
|
||||||
|
* @return string URL of video
|
||||||
|
* */
|
||||||
|
function getURL ($url, $format=null)
|
||||||
|
{
|
||||||
|
$cmd=VideoDownload::$_python.' youtube-dl';
|
||||||
|
if (isset($format)) {
|
||||||
|
$cmd .= ' -f '.escapeshellarg($format);
|
||||||
|
}
|
||||||
|
$cmd .=' -g '.escapeshellarg($url)." 2>&1";
|
||||||
|
exec(
|
||||||
|
$cmd, $url, $code
|
||||||
|
);
|
||||||
|
if ($code>0) {
|
||||||
|
return array('success'=>false, 'error'=>$url);
|
||||||
|
} else {
|
||||||
|
return array('success'=>true, 'url'=>end($url));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
56
extractors.php
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* PHP web interface for youtube-dl (http://rg3.github.com/youtube-dl/)
|
||||||
|
* List of all supported websites
|
||||||
|
*
|
||||||
|
* PHP Version 5.3.10
|
||||||
|
*
|
||||||
|
* @category Youtube-dl
|
||||||
|
* @package Youtubedl
|
||||||
|
* @author Pierre Rudloff <rudloff@strasweb.fr>
|
||||||
|
* @author Olivier Haquette <contact@olivierhaquette.fr>
|
||||||
|
* @license GNU General Public License http://www.gnu.org/licenses/gpl.html
|
||||||
|
* @link http://rudloff.pro
|
||||||
|
* */
|
||||||
|
|
||||||
|
require 'head.php';
|
||||||
|
?>
|
||||||
|
|
||||||
|
<body class="extractors">
|
||||||
|
|
||||||
|
<?php
|
||||||
|
require 'header.php';
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="wrapper">
|
||||||
|
|
||||||
|
|
||||||
|
<?php
|
||||||
|
require 'logo.php';
|
||||||
|
?>
|
||||||
|
|
||||||
|
|
||||||
|
<h2 class="titre">Supported websites</h2>
|
||||||
|
|
||||||
|
<div class="tripleliste">
|
||||||
|
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<?php
|
||||||
|
require_once 'download.php';
|
||||||
|
$extractors=(VideoDownload::listExtractors());
|
||||||
|
foreach ($extractors as $extractor) {
|
||||||
|
echo '<li>'.$extractor.'</li>';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
require 'footer.php';
|
||||||
|
?>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
29
footer.php
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<footer>
|
||||||
|
<div class="footer_wrapper">
|
||||||
|
© AllTube Download <span itemprop="copyrightYear">2013</span> ·
|
||||||
|
Code by <a rel="author" target="blank" itemprop="author" href="http://rudloff.pro/">Pierre Rudloff</a>
|
||||||
|
· Design by
|
||||||
|
<a rel="author" itemprop="author" target="blank" href="http://olivierhaquette.fr">Olivier Haquette</a>
|
||||||
|
·
|
||||||
|
<a target="_blank" href="https://www.facebook.com/pages/AllTube-Download/571380966249415" title="AllTube Download on Facebook">Like us on Facebook</a>
|
||||||
|
·
|
||||||
|
Based on <a href="http://rg3.github.io/youtube-dl/">youtube-dl</a>
|
||||||
|
</div>
|
||||||
|
<!-- Piwik -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var _paq = _paq || [];
|
||||||
|
_paq.push(['trackPageView']);
|
||||||
|
_paq.push(['enableLinkTracking']);
|
||||||
|
(function() {
|
||||||
|
var u=(("https:" == document.location.protocol) ? "https" : "http") + "://rudloff.pro/piwik//";
|
||||||
|
_paq.push(['setTrackerUrl', u+'piwik.php']);
|
||||||
|
_paq.push(['setSiteId', 1]);
|
||||||
|
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript';
|
||||||
|
g.defer=true; g.async=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
|
||||||
|
})();
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<noscript><p><img src="http://rudloff.pro/piwik/piwik.php?idsite=1" style="border:0" alt="" /></p></noscript>
|
||||||
|
<!-- End Piwik Code -->
|
||||||
|
|
||||||
|
</footer>
|
26
head.php
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
<!Doctype HTML>
|
||||||
|
<html lang="en" itemscope itemtype="http://schema.org/WebApplication">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name=viewport content="width=device-width, initial-scale=1">
|
||||||
|
<meta name="description" content="Easily download videos from Youtube, Dailymotion, Vimeo and other websites." />
|
||||||
|
<link rel="stylesheet" href="style.css" />
|
||||||
|
<link rel="stylesheet"
|
||||||
|
href="https://fonts.googleapis.com/css?family=Open+Sans:400,300" />
|
||||||
|
<link rel="author" href="https://plus.google.com/110403274854419000481?rel=author" />
|
||||||
|
<link rel="author" href="https://plus.google.com/103696815796116179392?rel=author" />
|
||||||
|
<title itemprop="name">AllTube Download</title>
|
||||||
|
<meta itemprop="url" content="http://alltubedownload.net/" />
|
||||||
|
<link rel="icon" href="img/favicon.png" />
|
||||||
|
<meta property="og:url" content="http://www.alltubedownload.net/" />
|
||||||
|
<meta property="og:title" content="AllTube Download" />
|
||||||
|
<meta property="og:description" content="Easily download videos from Youtube, Dailymotion, Vimeo and other websites." />
|
||||||
|
<meta property="og:image" content="http://www.alltubedownload.net/img/logo.png" />
|
||||||
|
<meta name="twitter:card" content="summary" />
|
||||||
|
<meta name="twitter:title" content="AllTube Download" />
|
||||||
|
<meta name="twitter:image" content="http://www.alltubedownload.net/img/logo.png" />
|
||||||
|
<meta name="twitter:creator" content="@Tael67" />
|
||||||
|
<meta name="twitter:description" content="Easily download videos from Youtube, Dailymotion, Vimeo and other websites." />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
|
26
header.php
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* PHP web interface for youtube-dl (http://rg3.github.com/youtube-dl/)
|
||||||
|
* Header
|
||||||
|
*
|
||||||
|
* PHP Version 5.3.10
|
||||||
|
*
|
||||||
|
* @category Youtube-dl
|
||||||
|
* @package Youtubedl
|
||||||
|
* @author Pierre Rudloff <rudloff@strasweb.fr>
|
||||||
|
* @author Olivier Haquette <contact@olivierhaquette.fr>
|
||||||
|
* @license GNU General Public License http://www.gnu.org/licenses/gpl.html
|
||||||
|
* @link http://rudloff.pro
|
||||||
|
* */
|
||||||
|
?>
|
||||||
|
<header>
|
||||||
|
<div class="social">
|
||||||
|
<a class="twitter" href="http://twitter.com/home?status=<?php
|
||||||
|
echo urlencode('http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']);
|
||||||
|
?>" target="_blank">
|
||||||
|
Share on Twitter<div class="twittermask"></div></a>
|
||||||
|
<a class="facebook" href="https://www.facebook.com/sharer/sharer.php?u=<?php
|
||||||
|
echo urlencode('http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']);
|
||||||
|
?>" target="_blank">Share on Facebook<div class="facebookmask"></div></a>
|
||||||
|
</div>
|
||||||
|
</header>
|
BIN
img/compatiblerouage.png
Normal file
After Width: | Height: | Size: 949 B |
BIN
img/facebook.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
img/facebookmask.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
img/favicon.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
img/fond.jpg
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
img/fondfooter.jpg
Normal file
After Width: | Height: | Size: 885 B |
BIN
img/fondfooter.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
img/logo.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
img/logo_60.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
img/logo_90.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
img/logo_app.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
img/logocompatible.png
Normal file
After Width: | Height: | Size: 109 B |
BIN
img/logocompatiblehover.png
Normal file
After Width: | Height: | Size: 109 B |
BIN
img/logocompatiblemask.png
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
img/mp3.png
Normal file
After Width: | Height: | Size: 253 B |
BIN
img/mp3hover.png
Normal file
After Width: | Height: | Size: 731 B |
BIN
img/share.jpg
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
img/share.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
img/sharemask.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
img/twitter.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
img/twittermask.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
54
index.php
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* PHP web interface for youtube-dl (http://rg3.github.com/youtube-dl/)
|
||||||
|
* Index page
|
||||||
|
*
|
||||||
|
* PHP Version 5.3.10
|
||||||
|
*
|
||||||
|
* @category Youtube-dl
|
||||||
|
* @package Youtubedl
|
||||||
|
* @author Pierre Rudloff <rudloff@strasweb.fr>
|
||||||
|
* @author Olivier Haquette <contact@olivierhaquette.fr>
|
||||||
|
* @license GNU General Public License http://www.gnu.org/licenses/gpl.html
|
||||||
|
* @link http://rudloff.pro
|
||||||
|
* */
|
||||||
|
require 'head.php';
|
||||||
|
?>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
require 'header.php';
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="wrapper">
|
||||||
|
<div class="main">
|
||||||
|
<h1><img itemprop="image" class="logo" src="img/logo.png"
|
||||||
|
alt="AllTube Download" width="328" height="284"></h1>
|
||||||
|
<form action="api.php">
|
||||||
|
<label class="labelurl" for="url">
|
||||||
|
Copy here the URL of your video (Youtube, Dailymotion, etc.)
|
||||||
|
</label>
|
||||||
|
<div class="champs">
|
||||||
|
<span class="URLinput_wrapper">
|
||||||
|
<input class="URLinput" type="url" name="url" id="url"
|
||||||
|
required placeholder="http://website.com/video" />
|
||||||
|
</span>
|
||||||
|
<input class="downloadBtn" type="submit" value="Download" /><br/>
|
||||||
|
<div class="mp3">
|
||||||
|
<p><input type="checkbox" id="audio" class="audio" name="audio">
|
||||||
|
<label for="audio"><span class="ui"></span>Audio only (MP3)</label></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<a class="combatiblelink" href="extractors.php">See all supported websites</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
require 'footer.php';
|
||||||
|
?>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
10
json.php
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$python="/usr/bin/python";
|
||||||
|
require_once 'download.php';
|
||||||
|
if (isset($_GET["url"])) {
|
||||||
|
header('Content-Type: application/json');
|
||||||
|
$video = VideoDownload::getJSON($_GET["url"]);
|
||||||
|
echo $video;
|
||||||
|
}
|
||||||
|
?>
|
4
logo.php
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<h1 class="logobis">
|
||||||
|
<a class="logocompatible" href="index.php">
|
||||||
|
AllTube Download<span class="logocompatiblemask"><img src="img/logocompatiblemask.png" width="447" height="107" alt="" /></span>
|
||||||
|
</a></h1>
|
16
manifest.webapp
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"name": "AllTube",
|
||||||
|
"description": "Easily download videos from Youtube, Dailymotion, Vimeo and other websites",
|
||||||
|
"developer": {
|
||||||
|
"name": "Pierre Rudloff",
|
||||||
|
"url": "https://rudloff.pro/"
|
||||||
|
},
|
||||||
|
"icons": {
|
||||||
|
"32": "/img/favicon.png",
|
||||||
|
"60": "/img/logo_60.png",
|
||||||
|
"90": "/img/logo_90.png",
|
||||||
|
"243": "/img/logo_app.png"
|
||||||
|
},
|
||||||
|
"default_locale": "en",
|
||||||
|
"launch_path": "/index.php"
|
||||||
|
}
|
1
robots.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Sitemap: http://alltubedownload.net/sitemap.xml
|
12
sitemap.xml
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
|
<url>
|
||||||
|
<loc>http://alltubedownload.net/</loc>
|
||||||
|
<changefreq>yearly</changefreq>
|
||||||
|
<priority>1</priority>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>http://alltubedownload.net/extractors.php</loc>
|
||||||
|
<changefreq>weekly</changefreq>
|
||||||
|
</url>
|
||||||
|
</urlset>
|
616
style.css
Normal file
|
@ -0,0 +1,616 @@
|
||||||
|
|
||||||
|
body {
|
||||||
|
text-align:center;
|
||||||
|
background-image:url('img/fond.jpg');
|
||||||
|
font-family: 'Open Sans', sans-serif;
|
||||||
|
font-weight:400;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/************************HEADER******************************/
|
||||||
|
|
||||||
|
header {
|
||||||
|
position:absolute;
|
||||||
|
top:0;
|
||||||
|
text-align:right;
|
||||||
|
width:100%;
|
||||||
|
padding:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.social
|
||||||
|
{padding-right:21px;}
|
||||||
|
|
||||||
|
|
||||||
|
header a
|
||||||
|
{
|
||||||
|
overflow:hidden;
|
||||||
|
height:38px;
|
||||||
|
width:38px;
|
||||||
|
position:relative;
|
||||||
|
float:right;
|
||||||
|
margin-top:13px;
|
||||||
|
margin-left:13px;
|
||||||
|
margin-right:0;
|
||||||
|
background-position:0 0;
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
-webkit-transition: all 0.1s ease-in;
|
||||||
|
-moz-transition: all 0.1s ease-in;
|
||||||
|
-o-transition: all 0.1s ease-in;
|
||||||
|
}
|
||||||
|
|
||||||
|
header a:focus,
|
||||||
|
header a:hover
|
||||||
|
{
|
||||||
|
outline:none;
|
||||||
|
background-position:0 100%;
|
||||||
|
-webkit-transition: all 0.1s ease-in;
|
||||||
|
-moz-transition: all 0.1s ease-in;
|
||||||
|
-o-transition: all 0.1s ease-in;
|
||||||
|
}
|
||||||
|
|
||||||
|
.share
|
||||||
|
{background-image:url('img/share.png');}
|
||||||
|
|
||||||
|
.sharemask
|
||||||
|
{
|
||||||
|
height:38px;
|
||||||
|
width:38px;
|
||||||
|
position:absolute;
|
||||||
|
top:0;
|
||||||
|
left:0;
|
||||||
|
z-index:10;
|
||||||
|
background-image:url('img/sharemask.png');
|
||||||
|
background-position:top left;
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.facebook
|
||||||
|
{background-image:url('img/facebook.png');}
|
||||||
|
|
||||||
|
.facebookmask
|
||||||
|
{
|
||||||
|
height:38px;
|
||||||
|
width:38px;
|
||||||
|
position:absolute;
|
||||||
|
top:0;
|
||||||
|
left:0;
|
||||||
|
z-index:10;
|
||||||
|
background-image:url('img/facebookmask.png');
|
||||||
|
background-position:top left;
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.twitter
|
||||||
|
{background-image:url('img/twitter.png');}
|
||||||
|
|
||||||
|
.twittermask
|
||||||
|
{
|
||||||
|
height:38px;
|
||||||
|
width:38px;
|
||||||
|
position:absolute;
|
||||||
|
top:0;
|
||||||
|
left:0;
|
||||||
|
z-index:10;
|
||||||
|
background-image:url('img/twittermask.png');
|
||||||
|
background-position:top left;
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*************************FOOTER****************************/
|
||||||
|
|
||||||
|
|
||||||
|
footer {
|
||||||
|
position:fixed;
|
||||||
|
bottom:0;
|
||||||
|
text-align:center;
|
||||||
|
width:100%;
|
||||||
|
background-image:url('img/fondfooter.png');
|
||||||
|
background-repeat:repeat-x;
|
||||||
|
background-position:top left;
|
||||||
|
padding-top:20px;
|
||||||
|
color:#adadad;
|
||||||
|
font-size:12px;
|
||||||
|
z-index:11;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer_wrapper {
|
||||||
|
height:28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer a{
|
||||||
|
color:#adadad;
|
||||||
|
-webkit-transition: all 0.1s ease-in;
|
||||||
|
-moz-transition: all 0.1s ease-in;
|
||||||
|
-o-transition: all 0.1s ease-in;
|
||||||
|
text-decoration:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer a:focus,
|
||||||
|
footer a:hover
|
||||||
|
{
|
||||||
|
outline:none;
|
||||||
|
color:#f2084a;
|
||||||
|
-webkit-transition: all 0.1s ease-in;
|
||||||
|
-moz-transition: all 0.1s ease-in;
|
||||||
|
-o-transition: all 0.1s ease-in;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*************************CONTENT ACCUEIL****************************/
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
padding-bottom:55px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.labelurl
|
||||||
|
{
|
||||||
|
position:relative;
|
||||||
|
color:#3f3f3f;
|
||||||
|
font-size:19px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.champs
|
||||||
|
{
|
||||||
|
position:relative;
|
||||||
|
margin-bottom:70px;
|
||||||
|
margin-top:8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.downloadBtn {
|
||||||
|
position:relative;
|
||||||
|
background-color:#3A3A3A;
|
||||||
|
border: 3px solid #a5a5a5;
|
||||||
|
color:#dedede;
|
||||||
|
border-radius:10px;
|
||||||
|
padding: 12px 14px;
|
||||||
|
font-size:24px;
|
||||||
|
font-weight:800;
|
||||||
|
cursor:pointer;
|
||||||
|
-webkit-transition: all 0.1s ease-in;
|
||||||
|
-moz-transition: all 0.1s ease-in;
|
||||||
|
-o-transition: all 0.1s ease-in;
|
||||||
|
}
|
||||||
|
|
||||||
|
.downloadBtn:focus,
|
||||||
|
.downloadBtn:hover
|
||||||
|
{
|
||||||
|
outline:none;
|
||||||
|
background-color:#f2084a;
|
||||||
|
-webkit-transition: all 0.1s ease-in;
|
||||||
|
-moz-transition: all 0.1s ease-in;
|
||||||
|
-o-transition: all 0.1s ease-in;
|
||||||
|
}
|
||||||
|
|
||||||
|
.downloadBtn::-moz-focus-inner {
|
||||||
|
border:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.URLinput{
|
||||||
|
position:relative;
|
||||||
|
background-color:#fff;
|
||||||
|
border: 3px solid #a5a5a5;
|
||||||
|
color:#3F3F3F;
|
||||||
|
border-radius:10px;
|
||||||
|
padding: 12px 12px 12px 12px;
|
||||||
|
min-width:426px;
|
||||||
|
font-size:24px;
|
||||||
|
font-weight:800;
|
||||||
|
margin-right:8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.URLinput:focus {
|
||||||
|
outline: none;
|
||||||
|
border-color:#3A3A3A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.URLinput:-webkit-input-placeholder{
|
||||||
|
color:#c1cfcf;
|
||||||
|
}
|
||||||
|
.URLinput:-moz-placeholder {
|
||||||
|
color:#c1cfcf;
|
||||||
|
}
|
||||||
|
|
||||||
|
.combatiblelink {
|
||||||
|
position:relative;
|
||||||
|
color:#a5a5a5;
|
||||||
|
font-size:13px;
|
||||||
|
z-index:10;
|
||||||
|
text-decoration:none;
|
||||||
|
background-image:url('img/compatiblerouage.png');
|
||||||
|
background-position:0 100%;
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
padding-left:41px;
|
||||||
|
padding-top:10px;
|
||||||
|
padding-bottom:10px;
|
||||||
|
-webkit-transition: all 0.1s ease-in;
|
||||||
|
-moz-transition: all 0.1s ease-in;
|
||||||
|
-o-transition: all 0.1s ease-in;
|
||||||
|
}
|
||||||
|
|
||||||
|
.combatiblelink:focus,
|
||||||
|
.combatiblelink:hover
|
||||||
|
{
|
||||||
|
outline:none;
|
||||||
|
background-position:0 0;
|
||||||
|
color:#f2084a;
|
||||||
|
-webkit-transition: all 0.1s ease-in;
|
||||||
|
-moz-transition: all 0.1s ease-in;
|
||||||
|
-o-transition: all 0.1s ease-in;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mp3
|
||||||
|
{
|
||||||
|
position:relative;
|
||||||
|
background-color:#cecece;
|
||||||
|
color:#696969;
|
||||||
|
border-radius:6px;
|
||||||
|
width:622px;
|
||||||
|
font-size:14px;
|
||||||
|
height:26px;
|
||||||
|
margin-top:12px;
|
||||||
|
text-align:left;
|
||||||
|
font-weight:300;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mp3 p
|
||||||
|
{
|
||||||
|
padding:3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
Demo CSS code
|
||||||
|
*/
|
||||||
|
|
||||||
|
.audio:not(:checked),
|
||||||
|
.audio:checked {
|
||||||
|
position: absolute;
|
||||||
|
left: -9999px;
|
||||||
|
}
|
||||||
|
.audio:not(:checked) + label,
|
||||||
|
.audio:checked + label {
|
||||||
|
position: relative;
|
||||||
|
padding-left: 82px;
|
||||||
|
cursor: pointer;
|
||||||
|
line-height:22px;
|
||||||
|
}
|
||||||
|
.audio:not(:checked) + label:before,
|
||||||
|
.audio:checked + label:before,
|
||||||
|
.audio:not(:checked) + label:after,
|
||||||
|
.audio:checked + label:after {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
.audio:not(:checked) + label:before,
|
||||||
|
.audio:checked + label:before {
|
||||||
|
left:0; top: -1px;
|
||||||
|
width: 45px; height: 20px;
|
||||||
|
background: #ffffff;
|
||||||
|
border-radius: 6px;
|
||||||
|
-webkit-transition: background-color .2s;
|
||||||
|
-moz-transition: background-color .2s;
|
||||||
|
-ms-transition: background-color .2s;
|
||||||
|
-o-transition: background-color .2s;
|
||||||
|
transition: background-color .2s;
|
||||||
|
}
|
||||||
|
.audio:not(:checked) + label:after,
|
||||||
|
.audio:checked + label:after {
|
||||||
|
width: 16px; height: 16px;
|
||||||
|
-webkit-transition: all .2s;
|
||||||
|
-moz-transition: all .2s;
|
||||||
|
-ms-transition: all .2s;
|
||||||
|
-o-transition: all .2s;
|
||||||
|
transition: all .2s;
|
||||||
|
border-radius: 6px;
|
||||||
|
background: #3a3a3a;
|
||||||
|
top: 1px; left: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.audio:focus + label {
|
||||||
|
color:black;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* on checked */
|
||||||
|
.audio:checked + label:before {
|
||||||
|
background:#f2084a;
|
||||||
|
}
|
||||||
|
.audio:checked + label:after {
|
||||||
|
background: #fff;
|
||||||
|
top: 1px; left: 27px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.audio:checked + label .ui,
|
||||||
|
.audio:not(:checked) + label .ui:before,
|
||||||
|
.audio:checked + label .ui:after {
|
||||||
|
position: absolute;
|
||||||
|
left: 3px;
|
||||||
|
width: 45px;
|
||||||
|
border-radius: 15px;
|
||||||
|
font-size: 11px;
|
||||||
|
font-weight: bold;
|
||||||
|
line-height: 17px;
|
||||||
|
height:20px;
|
||||||
|
-webkit-transition: all .2s;
|
||||||
|
-moz-transition: all .2s;
|
||||||
|
-ms-transition: all .2s;
|
||||||
|
-o-transition: all .2s;
|
||||||
|
transition: all .2s;
|
||||||
|
}
|
||||||
|
.audio:not(:checked) + label .ui:before {
|
||||||
|
content: "no";
|
||||||
|
left: 0;
|
||||||
|
padding-left:23px;
|
||||||
|
padding-top:2px;
|
||||||
|
background-image:url('img/mp3hover.png');
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
background-position:right top;
|
||||||
|
width:56px;
|
||||||
|
-webkit-transition: all .2s;
|
||||||
|
-moz-transition: all .2s;
|
||||||
|
-ms-transition: all .2s;
|
||||||
|
-o-transition: all .2s;
|
||||||
|
transition: all .2s;
|
||||||
|
}
|
||||||
|
.audio:checked + label .ui:after {
|
||||||
|
content: "yes";
|
||||||
|
color: #fff;
|
||||||
|
background-image:url('img/mp3.png');
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
background-position:right top;
|
||||||
|
width:73px;
|
||||||
|
-webkit-transition: all .2s;
|
||||||
|
-moz-transition: all .2s;
|
||||||
|
-ms-transition: all .2s;
|
||||||
|
-o-transition: all .2s;
|
||||||
|
transition: all .2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*************************CONTENT COMPATIBLES****************************/
|
||||||
|
|
||||||
|
.logobis
|
||||||
|
{
|
||||||
|
width:447px;
|
||||||
|
height:107px;
|
||||||
|
position:relative;
|
||||||
|
margin:0 auto 10px auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.logocompatible
|
||||||
|
{
|
||||||
|
width:447px;
|
||||||
|
height:107px;
|
||||||
|
background-image:url('img/logocompatible.png');
|
||||||
|
background-repeat:repeat-y;
|
||||||
|
background-position:0 0;
|
||||||
|
-webkit-transition: all 0.1s ease-in;
|
||||||
|
-moz-transition: all 0.1s ease-in;
|
||||||
|
-o-transition: all 0.1s ease-in;
|
||||||
|
display:block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logocompatible:focus,
|
||||||
|
.logocompatible:hover {
|
||||||
|
outline:none;
|
||||||
|
background-position:0 100%;
|
||||||
|
-webkit-transition: all 0.1s ease-in;
|
||||||
|
-moz-transition: all 0.1s ease-in;
|
||||||
|
-o-transition: all 0.1s ease-in;}
|
||||||
|
|
||||||
|
|
||||||
|
.logocompatiblemask
|
||||||
|
{
|
||||||
|
z-index:10;
|
||||||
|
position:absolute;
|
||||||
|
top:0;
|
||||||
|
left:0;
|
||||||
|
width:447px;
|
||||||
|
height:107px;
|
||||||
|
background-image:url('img/logocompatiblemask.png');
|
||||||
|
background-position:0 100%;
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.titre
|
||||||
|
{
|
||||||
|
font-family: 'Open Sans', sans-serif;
|
||||||
|
font-weight:300;
|
||||||
|
color:#383838;
|
||||||
|
font-size:48px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tripleliste
|
||||||
|
{
|
||||||
|
margin-top:80px;
|
||||||
|
width:800px;
|
||||||
|
position:relative;
|
||||||
|
margin-left:auto;
|
||||||
|
margin-right:auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.tripleliste ul
|
||||||
|
{
|
||||||
|
margin-bottom:1em;
|
||||||
|
width:600px;
|
||||||
|
margin-left:120px;}
|
||||||
|
|
||||||
|
.tripleliste ul li
|
||||||
|
{text-align:left;
|
||||||
|
List-Style-Type:none;
|
||||||
|
color:#383838;
|
||||||
|
font-size:16px;
|
||||||
|
|
||||||
|
width:200px;
|
||||||
|
float:left;
|
||||||
|
position:relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
html,
|
||||||
|
body {
|
||||||
|
margin:0;
|
||||||
|
height:100%;
|
||||||
|
}
|
||||||
|
.wrapper {
|
||||||
|
height:100%;
|
||||||
|
display:table;
|
||||||
|
margin:auto;
|
||||||
|
padding-bottom:110px;
|
||||||
|
-moz-box-sizing: border-box;
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.main {
|
||||||
|
display:table-cell;
|
||||||
|
vertical-align:middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.extractors {
|
||||||
|
padding-top:60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.extractors .wrapper {
|
||||||
|
padding-bottom:5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logocompatible,
|
||||||
|
.social a {
|
||||||
|
font-size:0;
|
||||||
|
text-decoration:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.social a {
|
||||||
|
color:#D1D1D1;
|
||||||
|
}
|
||||||
|
.logocompatible {
|
||||||
|
color: #4F4F4F
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
margin:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.error {
|
||||||
|
max-width: 100ex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.error p {
|
||||||
|
text-align:justify;
|
||||||
|
}
|
||||||
|
|
||||||
|
.smaller {
|
||||||
|
font-size:smaller;
|
||||||
|
}
|
||||||
|
|
||||||
|
.thumb {
|
||||||
|
max-width:700px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 640px) {
|
||||||
|
.thumb {
|
||||||
|
width:90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.URLinput{
|
||||||
|
min-width:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
max-width:330px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logocompatible,
|
||||||
|
.logocompatible img {
|
||||||
|
max-width:447px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logocompatible,
|
||||||
|
.logo,
|
||||||
|
.champs,
|
||||||
|
.URLinput,
|
||||||
|
.mp3 {
|
||||||
|
width:90%;
|
||||||
|
margin:auto;
|
||||||
|
height:auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
margin-top:50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logocompatible img {
|
||||||
|
width:100%;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.downloadBtn {
|
||||||
|
margin-top: 0.3em;
|
||||||
|
}
|
||||||
|
.mp3 {
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tripleliste ul,
|
||||||
|
.tripleliste {
|
||||||
|
width:auto;
|
||||||
|
margin-left:auto;
|
||||||
|
margin-top:auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logocompatiblemask {
|
||||||
|
background:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logocompatible {
|
||||||
|
height:auto;
|
||||||
|
background-image:none;
|
||||||
|
background-color:#4F4F4F;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logocompatiblemask,
|
||||||
|
.logobis {
|
||||||
|
width:auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logocompatiblemask {
|
||||||
|
position:static;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logobis {
|
||||||
|
height:auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.titre {
|
||||||
|
margin:auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.error p {
|
||||||
|
padding:0.5em;
|
||||||
|
text-align:left;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
15
youtoubeur.php
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* PHP web interface for youtube-dl (http://rg3.github.com/youtube-dl/)
|
||||||
|
* Old index file, now redirects to index.php
|
||||||
|
*
|
||||||
|
* PHP Version 5.3.10
|
||||||
|
*
|
||||||
|
* @category Youtube-dl
|
||||||
|
* @package Youtubedl
|
||||||
|
* @author Pierre Rudloff <rudloff@strasweb.fr>
|
||||||
|
* @license GNU General Public License http://www.gnu.org/licenses/gpl.html
|
||||||
|
* @link http://rudloff.pro
|
||||||
|
* */
|
||||||
|
header('Location: index.php');
|
||||||
|
?>
|